- for(GeomAPI_ShapeExplorer anOrigShapeExp(aShape, aShapeTypes[anIndex]);
- anOrigShapeExp.more();
- anOrigShapeExp.next()) {
- ListOfShape aHistory;
- const GeomShapePtr aSubShape = anOrigShapeExp.current();
- theMakeShape.modified(aSubShape, aHistory);
- for(ListOfShape::const_iterator aHistoryIt = aHistory.cbegin();
- aHistoryIt != aHistory.cend();
- ++aHistoryIt) {
- aShapesMap.bind(*aHistoryIt, aSubShape);
- }
- }
- }
- }
-
- int aModifiedVertexIndex(1),
- aGeneratedVertexIndex(1),
- aModifiedEdgeIndex(1),
- aGeneratedEdgeIndex(1);
- int aTag = 4;
- GeomAPI_DataMapOfShapeShape aStoredShapes;
- for(int anIndex = 0; anIndex < aShapeTypesNb; ++anIndex) {
- for(GeomAPI_ShapeExplorer aShapeExp(aResultShape, aShapeTypes[anIndex]);
- aShapeExp.more();
- aShapeExp.next()) {
- const GeomShapePtr aSubShape = aShapeExp.current();
- if(aStoredShapes.isBound(aSubShape)) {
- continue;
- }
- if(aShapesMap.isBound(aSubShape)) {
- theResultBody->modified(aShapesMap.find(aSubShape), aSubShape);
- } else {
- theResultBody->generated(
- aSubShape,
- std::string("Generated_")
- + (anIndex == 0 ? "Vertex_" : "Edge_")
- + std::to_string((long long)(anIndex == 0 ? aGeneratedVertexIndex++
- : aGeneratedEdgeIndex++)));
- }
- aStoredShapes.bind(aSubShape, aSubShape);
+ theResultBody->loadModifiedShapes(theMakeShape, aShape, aShapeTypes[anIndex]);
+ theResultBody->loadGeneratedShapes(theMakeShape, aShape, aShapeTypes[anIndex]);