88 Pout<<
"Dumping bounding box " << bb <<
" as lines to obj file "
89 << str.name() <<
endl;
103 str<<
"l " << e[0]+1 <<
' ' << e[1]+1 <<
nl;
113 const bool removeInside,
124 || (!removeInside && !bb.
contains(eMid))
135 int main(
int argc,
char *argv[])
152 Pout<<
"Feature line extraction is only valid on closed manifold surfaces."
159 Pout<<
"Surface : " << surfFileName <<
nl
160 <<
"Output feature set : " << outFileName <<
nl
185 Pout<<
"Reading existing feature set from file " << setName <<
endl;
193 Pout<<
"Constructing feature set from included angle " << includedAngle
198 Pout<< endl <<
"Writing initial features" <<
endl;
199 set.
write(
"initial.fSet");
200 set.writeObj(
"initial");
205 <<
"No initial feature set. Provide either one"
206 <<
" of -set (to read existing set)" <<
nl
207 <<
" or -includedAngle (to new set construct from angle)"
213 <<
"Initial feature set:" <<
nl
214 <<
" feature points : " <<
set.featurePoints().size() <<
nl
215 <<
" feature edges : " <<
set.featureEdges().size() <<
nl
217 <<
" region edges : " <<
set.nRegionEdges() <<
nl
218 <<
" external edges : " <<
set.nExternalEdges() <<
nl
219 <<
" internal edges : " <<
set.nInternalEdges() <<
nl
228 scalar minLen = -GREAT;
231 Pout<<
"Removing features of length < " << minLen <<
endl;
237 Pout<<
"Removing features with number of edges < " << minElem <<
endl;
241 if (minLen > 0 || minLen > 0)
243 set.trimFeatures(minLen, minElem);
244 Pout<< endl <<
"Removed small features" <<
endl;
259 Pout<<
"Removing all edges outside bb " << bb <<
endl;
260 dumpBox(bb,
"subsetBox.obj");
274 Pout<<
"Removing all edges inside bb " << bb <<
endl;
275 dumpBox(bb,
"deleteBox.obj");
287 newSet.setFromStatus(edgeStat);
289 Pout<< endl <<
"Writing trimmed features to " << outFileName <<
endl;
290 newSet.
write(outFileName);
292 Pout<< endl <<
"Writing edge objs." <<
endl;
293 newSet.writeObj(
"final");
297 <<
"Final feature set:" <<
nl
298 <<
" feature points : " << newSet.featurePoints().size() <<
nl
299 <<
" feature edges : " << newSet.featureEdges().size() <<
nl
301 <<
" region edges : " << newSet.nRegionEdges() <<
nl
302 <<
" external edges : " << newSet.nExternalEdges() <<
nl
303 <<
" internal edges : " << newSet.nInternalEdges() <<
nl