MCPcopy Create free account
hub / github.com/MeshInspector/MeshLib / detectLoneContours

Function detectLoneContours

source/MRMesh/MRIntersectionContour.cpp:315–338  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

313}
314
315std::vector<int> detectLoneContours( const ContinuousContours& contours, bool ignoreOpen )
316{
317 MR_TIMER;
318 std::vector<int> res;
319 for ( int i = 0; i < contours.size(); ++i )
320 {
321 auto& contour = contours[i];
322 if ( contour.empty() || ( ignoreOpen && !isClosed( contour ) ) )
323 continue;
324 bool first = contour[0].isEdgeATriB();
325 bool isLone = true;
326 for ( const auto& vet : contour )
327 {
328 if ( vet.isEdgeATriB() != first )
329 {
330 isLone = false;
331 break;
332 }
333 }
334 if ( isLone )
335 res.push_back( i );
336 }
337 return res;
338}
339
340void removeLoneDegeneratedContours( const MeshTopology& edgesTopology, OneMeshContours& faceContours, OneMeshContours& edgeContours )
341{

Callers 3

removeLoneContoursFunction · 0.85
subdivideSelfLoneFunction · 0.85
booleanImplFunction · 0.85

Calls 5

isEdgeATriBMethod · 0.80
push_backMethod · 0.80
isClosedFunction · 0.70
sizeMethod · 0.45
emptyMethod · 0.45

Tested by

no test coverage detected