- std::string aModName = "Modified";
- theResultBody->loadAndOrientModifiedShapes(&theTransformAlgo,
- theSlaveObject, _FACE,
- _MODIFIEDF_TAG, aModName, *aSubShapes.get());
+ int aPlacedTag = 1;
+ std::string aPlacedName = "Placed";
+
+ switch(theBaseShape->shapeType()) {
+ case GeomAPI_Shape::COMPOUND:
+ case GeomAPI_Shape::COMPSOLID:
+ case GeomAPI_Shape::SOLID:
+ case GeomAPI_Shape::SHELL:
+ theResultBody->loadAndOrientModifiedShapes(&theTransformAlgo,
+ theBaseShape, GeomAPI_Shape::FACE,
+ aPlacedTag, aPlacedName + "_Face", *aSubShapes.get());
+ case GeomAPI_Shape::FACE:
+ case GeomAPI_Shape::WIRE:
+ theResultBody->loadAndOrientModifiedShapes(&theTransformAlgo,
+ theBaseShape, GeomAPI_Shape::EDGE,
+ ++aPlacedTag, aPlacedName + "_Edge", *aSubShapes.get());
+ case GeomAPI_Shape::EDGE:
+ theResultBody->loadAndOrientModifiedShapes(&theTransformAlgo,
+ theBaseShape, GeomAPI_Shape::VERTEX,
+ ++aPlacedTag, aPlacedName + "_Vertex", *aSubShapes.get());
+ }