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

Method hasAnyLine

source/MRMesh/MRExtractIsolines.cpp:283–305  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

281}
282
283bool Isoliner::hasAnyLine( const UndirectedEdgeBitSet * potentiallyCrossedEdges ) const
284{
285 std::atomic<bool> res{ false };
286 ParallelFor( 0_ue, UndirectedEdgeId( topology_.undirectedEdgeSize() ), [&] ( UndirectedEdgeId ue )
287 {
288 if ( res.load( std::memory_order_relaxed ) )
289 return;
290 if ( potentiallyCrossedEdges && !potentiallyCrossedEdges->test( ue ) )
291 return;
292 VertId o = topology_.org( ue );
293 if ( !o )
294 return;
295 VertId d = topology_.dest( ue );
296 if ( !d )
297 return;
298 auto no = negativeVerts_.test( o );
299 auto nd = negativeVerts_.test( d );
300 if ( no != nd )
301 if ( !region_ || contains( *region_, topology_.left( ue ) ) || contains( *region_, topology_.right( ue ) ) )
302 res = true;
303 } );
304 return res;
305}
306
307void Isoliner::computePointOnEachEdge_( IsoLine & line ) const
308{

Callers 3

hasAnyIsolineFunction · 0.80
hasAnyPlaneSectionFunction · 0.80
hasAnyXYPlaneSectionFunction · 0.80

Calls 9

ParallelForFunction · 0.85
leftMethod · 0.80
rightMethod · 0.80
containsFunction · 0.70
undirectedEdgeSizeMethod · 0.45
loadMethod · 0.45
testMethod · 0.45
orgMethod · 0.45
destMethod · 0.45

Tested by

no test coverage detected