- /// Define this function to init attributes for extrusion/revolution.
- virtual void initMakeSolidsAttributes() = 0;
-
- /// Define this function to create solids from faces with extrusion/revolution.
- virtual void makeSolid(const std::shared_ptr<GeomAPI_Shape> theFace,
- std::shared_ptr<GeomAPI_Shape>& theResult,
- ListOfShape& theFromFaces,
- ListOfShape& theToFaces,
- std::shared_ptr<GeomAlgoAPI_MakeShape>& theMakeShape,
- std::shared_ptr<GeomAPI_DataMapOfShapeShape>& theDataMap) = 0;
-
- /// Results naming.
- void loadNamingDS(std::shared_ptr<ModelAPI_ResultBody> theResultBody,
- const std::shared_ptr<GeomAPI_Shape>& theBaseShape,
- const std::shared_ptr<GeomAPI_Shape>& theResult,
- const ListOfShape& theFromFaces,
- const ListOfShape& theToFaces,
- const std::shared_ptr<GeomAlgoAPI_MakeShape>& theMakeShape,
- const std::shared_ptr<GeomAPI_DataMapOfShapeShape>& theDataMap);
+ /// Initializes composite sketch attributes.
+ void initCompositeSketchAttribtues(const int theInitFlags);
+
+ /// \brief Returns list of base shapes.
+ /// \param[out] theBaseShapesList list of base shapes (warning: list not cleared).
+ /// \param[in] theIsMakeShells if true make shells from faces with shared edges.
+ void getBaseShapes(ListOfShape& theBaseShapesList, const bool theIsMakeShells = true);
+
+ /// Stores result of generation.
+ void storeResult(const GeomShapePtr theBaseShape,
+ const std::shared_ptr<GeomAlgoAPI_MakeShape> theMakeShape,
+ const int theIndex = 0);
+
+ /// Stores generation history.
+ void storeGenerationHistory(ResultBodyPtr theResultBody,
+ const GeomShapePtr theBaseShape,
+ const std::shared_ptr<GeomAlgoAPI_MakeShape> theMakeShape);
+
+ /// Used to store from and to shapes: generated, or in common modified tag
+ void storeShapes(const std::shared_ptr<GeomAlgoAPI_MakeShape> theMakeShape,
+ ResultBodyPtr theResultBody,
+ const GeomAPI_Shape::ShapeType theBaseShapeType,
+ const ListOfShape& theShapes,
+ const std::string theName);
+
+private:
+ std::string myCurrentSelectionType; //< type of selection (vertex, edge or face)