@@ -111,8 +111,7 @@ bool preparePart( const Mesh& origin, std::vector<EdgePath>& cutPaths, Mesh& out
111111 auto compsMap = MeshComponents::getAllComponentsMap ( origin );
112112 leftPart = preparePart ( origin, compsMap, leftPart, otherMesh, needInsidePart, originIsA, rigidB2A, mergeAllNonIntersectingComponents, intParams );
113113
114- outMesh.addMeshPart ( { origin, &leftPart }, needFlip, {}, {},
115- HashToVectorMappingConverter ( origin.topology , fMapPtr , vMapPtr, eMapPtr ).getPartMapping () );
114+ outMesh.addMeshPart ( { origin, &leftPart }, needFlip, {}, {}, Src2TgtMaps ( fMapPtr , vMapPtr, eMapPtr ) );
116115
117116 for ( auto & path : cutPaths )
118117 for ( auto & e : path )
@@ -145,11 +144,9 @@ void connectPreparedParts( Mesh& partA, Mesh& partB, bool pathsHaveLeftHole,
145144 else
146145 {
147146 if ( !pathsHaveLeftHole )
148- partA.addMeshPart ( partB, false , pathsA, pathsB,
149- HashToVectorMappingConverter ( partB.topology , fMapNewPtr , vMapNewPtr, eMapNewPtr ).getPartMapping () );
147+ partA.addMeshPart ( partB, false , pathsA, pathsB, Src2TgtMaps ( fMapNewPtr , vMapNewPtr, eMapNewPtr ) );
150148 else
151- partB.addMeshPart ( partA, false , pathsB, pathsA,
152- HashToVectorMappingConverter ( partA.topology , fMapNewPtr , vMapNewPtr, eMapNewPtr ).getPartMapping () );
149+ partB.addMeshPart ( partA, false , pathsB, pathsA, Src2TgtMaps ( fMapNewPtr , vMapNewPtr, eMapNewPtr ) );
153150 }
154151
155152 if ( mapper )
@@ -197,24 +194,24 @@ Mesh doTrivialBooleanOperation( Mesh&& meshACut, Mesh&& meshBCut, BooleanOperati
197194 bPartFbs = preparePart ( meshBCut, bComponentsMap, {}, meshACut, true , false , rigidB2A, mergeAllNonIntersectingComponents, intParams );
198195 taskGroup.wait ();
199196
200- if ( aPartFbs.count () != 0 )
197+ if ( aPartFbs.any () )
201198 {
202199 FaceMap* fMapPtr = mapper ? &mapper->maps [int ( BooleanResultMapper::MapObject::A )].cut2newFaces : nullptr ;
203200 WholeEdgeMap* eMapPtr = mapper ? &mapper->maps [int ( BooleanResultMapper::MapObject::A )].old2newEdges : nullptr ;
204201 VertMap* vMapPtr = mapper ? &mapper->maps [int ( BooleanResultMapper::MapObject::A )].old2newVerts : nullptr ;
205202
206203 aPart.addMeshPart ( { meshACut, &aPartFbs }, operation == BooleanOperation::DifferenceBA,
207- {}, {}, HashToVectorMappingConverter ( meshACut. topology , fMapPtr , vMapPtr, eMapPtr ). getPartMapping ( ) );
204+ {}, {}, Src2TgtMaps ( fMapPtr , vMapPtr, eMapPtr ) );
208205 }
209206
210- if ( bPartFbs.count () != 0 )
207+ if ( bPartFbs.any () )
211208 {
212209 FaceMap* fMapPtr = mapper ? &mapper->maps [int ( BooleanResultMapper::MapObject::B )].cut2newFaces : nullptr ;
213210 WholeEdgeMap* eMapPtr = mapper ? &mapper->maps [int ( BooleanResultMapper::MapObject::B )].old2newEdges : nullptr ;
214211 VertMap* vMapPtr = mapper ? &mapper->maps [int ( BooleanResultMapper::MapObject::B )].old2newVerts : nullptr ;
215212
216213 bPart.addMeshPart ( { meshBCut, &bPartFbs }, operation == BooleanOperation::DifferenceAB,
217- {}, {}, HashToVectorMappingConverter ( meshBCut. topology , fMapPtr , vMapPtr, eMapPtr ). getPartMapping ( ) );
214+ {}, {}, Src2TgtMaps ( fMapPtr , vMapPtr, eMapPtr ) );
218215 }
219216
220217 connectPreparedParts ( aPart, bPart, false , {}, {}, rigidB2A, mapper );
0 commit comments