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

Function findInnerShellVerts

source/MRMesh/MRInnerShell.cpp:40–63  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

38}
39
40VertBitSet findInnerShellVerts( const MeshPart & mp, const Mesh & shell, const FindInnerShellSettings & settings )
41{
42 MR_TIMER;
43 VertBitSet mySide( shell.topology.vertSize() ), notBd( shell.topology.vertSize() );
44 BitSetParallelFor( shell.topology.getValidVerts(), [&]( VertId v )
45 {
46 const auto info = classifyShellVert( mp, shell.points[v], settings );
47 if ( info.inRange && !info.projOnBd )
48 {
49 notBd.set( v );
50 if ( info.rightSide )
51 mySide.set( v );
52 }
53 } );
54
55 const auto largeComps = MeshComponents::getLargeComponentVerts( shell, settings.minVertsInComp, &notBd );
56 mySide &= largeComps;
57 const auto largeMySide = MeshComponents::getLargeComponentVerts( shell, settings.minVertsInComp, &mySide );
58 const auto otherSide = largeComps - mySide;
59 const auto largeOtherSide = MeshComponents::getLargeComponentVerts( shell, settings.minVertsInComp, &otherSide );
60
61 auto res = largeMySide | ( otherSide - largeOtherSide );
62 return res;
63}
64
65FaceBitSet findInnerShellFacesWithSplits( const MeshPart & mp, Mesh & shell, const FindInnerShellSettings & settings )
66{

Callers 2

constantCuspToolPathFunction · 0.85

Calls 5

BitSetParallelForFunction · 0.85
classifyShellVertFunction · 0.85
getLargeComponentVertsFunction · 0.85
vertSizeMethod · 0.45
setMethod · 0.45

Tested by

no test coverage detected