- /// 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 makeSolids(const ListOfShape& theFaces,
- ListOfShape& theResults,
- std::list<std::shared_ptr<GeomAPI_Interface>>& theAlgos) = 0;
-
- void loadNamingDS(std::shared_ptr<ModelAPI_ResultBody> theResultBody,
- const std::shared_ptr<GeomAPI_Shape>& theBaseShape,
- const ListOfShape& theShells,
- const std::list<std::shared_ptr<GeomAPI_Interface>>& theAlgos,
- const ListOfShape& theTools,
- const GeomAlgoAPI_Boolean& theAlgo);
+ /// Initializes boolean attributes.
+ void initBooleanAttributes();
+
+ /// This function need to be defined for extrusion/revolution generation.
+ virtual bool makeGeneration(ListOfShape& theBaseShapes,
+ ListOfMakeShape& theMakeShapes) = 0;
+
+ /// Makes boolean operation.
+ /// \param[in] theTools list of tools.
+ /// \param[out] theObjects list of objects.
+ /// \param[out] theMakeShapes list of according algos.
+ /// \return false in failed.
+ bool makeBoolean(const ListOfShape& theTools,
+ ListOfShape& theObjects,
+ ListOfMakeShape& theMakeShapes);
+
+ /// Stores generation history.
+ virtual void storeGenerationHistory(ResultBodyPtr theResultBody,
+ const GeomShapePtr theBaseShape,
+ const std::shared_ptr<GeomAlgoAPI_MakeShape> theMakeShape,
+ int& theTag) = 0;
+
+ /// Stores modification history.
+ void storeModificationHistory(ResultBodyPtr theResultBody,
+ const GeomShapePtr theObject,
+ const ListOfShape& theTools,
+ const std::shared_ptr<GeomAlgoAPI_MakeShape> theMakeShape,
+ int& theTag);