1 // Copyright (C) 2014-20xx CEA/DEN, EDF R&D
3 // File: GeomAlgoAPI_MakeShapeList.h
4 // Created: 27 May 2015
5 // Author: Dmitry Bobylev
6 #ifndef GeomAlgoAPI_MakeShapeList_H_
7 #define GeomAlgoAPI_MakeShapeList_H_
9 #include <GeomAPI_Shape.h>
10 #include <GeomAlgoAPI.h>
11 #include <GeomAlgoAPI_MakeShape.h>
15 /// \class GeomAlgoAPI_MakeShapeList
17 /// \brief List of topological shapes constructions
18 class GeomAlgoAPI_MakeShapeList : public GeomAlgoAPI_MakeShape
26 /// Default constructor
27 GEOMALGOAPI_EXPORT GeomAlgoAPI_MakeShapeList();
29 /// \brief Constructor
30 /// \param[in] theMakeShapeList list of algorithms.
31 GEOMALGOAPI_EXPORT GeomAlgoAPI_MakeShapeList(const ListOfMakeShape& theMakeShapeList);
33 /// \brief Initializes a class with new list of algorithms.
34 /// \param[in] theMakeShapeList list of algorithms.
35 GEOMALGOAPI_EXPORT void init(const ListOfMakeShape& theMakeShapeList);
37 /// \brief Adds algo to the end of list.
38 /// \param[in] theMakeShape algo to be added.
39 GEOMALGOAPI_EXPORT void appendAlgo(const std::shared_ptr<GeomAlgoAPI_MakeShape> theMakeShape);
41 /// \return a shape built by the shape construction algorithms
42 GEOMALGOAPI_EXPORT virtual const std::shared_ptr<GeomAPI_Shape> shape() const;
44 /// \return the list of shapes generated from the shape \a theShape
45 GEOMALGOAPI_EXPORT virtual void generated(const std::shared_ptr<GeomAPI_Shape> theShape,
46 ListOfShape& theHistory);
48 /// \return the list of shapes modified from the shape \a theShape
49 GEOMALGOAPI_EXPORT virtual void modified(const std::shared_ptr<GeomAPI_Shape> theShape,
50 ListOfShape& theHistory);
52 /// \return whether the shape is deleted
53 GEOMALGOAPI_EXPORT virtual bool isDeleted(const std::shared_ptr<GeomAPI_Shape> theShape);
56 void result(const std::shared_ptr<GeomAPI_Shape> theShape,
57 OperationType theOperationType,
58 ListOfShape& theHistory);
61 ListOfMakeShape myListOfMakeShape; ///< List of make shape algos.