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
19 class GeomAlgoAPI_MakeShapeList : public GeomAlgoAPI_MakeShape
27 /// Default constructor
28 GEOMALGOAPI_EXPORT GeomAlgoAPI_MakeShapeList();
30 /** \brief Constructor
31 * \param[in] theMakeShapeList list of algorithms.
33 GEOMALGOAPI_EXPORT GeomAlgoAPI_MakeShapeList(const ListOfMakeShape& theMakeShapeList);
35 /** \brief Initializes a class with new list of algorithms.
36 * \param[in] theMakeShapeList list of algorithms.
38 GEOMALGOAPI_EXPORT void init(const ListOfMakeShape& theMakeShapeList);
40 /** \brief Adds algo to the end of list.
41 * \param[in] theMakeShape algo to be added.
43 GEOMALGOAPI_EXPORT void append(const std::shared_ptr<GeomAlgoAPI_MakeShape> theMakeShape);
45 /** \brief Adds another one list of algos to the end of list.
46 * \param[in] theMakeShapeList algo list to be added.
48 GEOMALGOAPI_EXPORT void append(const GeomAlgoAPI_MakeShapeList& theMakeShapeList);
50 /// \return a shape built by the shape construction algorithms
51 GEOMALGOAPI_EXPORT virtual const std::shared_ptr<GeomAPI_Shape> shape() const;
53 /// \return the list of shapes generated from the shape \a theShape
54 GEOMALGOAPI_EXPORT virtual void generated(const std::shared_ptr<GeomAPI_Shape> theShape,
55 ListOfShape& theHistory);
57 /// \return the list of shapes modified from the shape \a theShape
58 GEOMALGOAPI_EXPORT virtual void modified(const std::shared_ptr<GeomAPI_Shape> theShape,
59 ListOfShape& theHistory);
61 /// \return whether the shape is deleted
62 GEOMALGOAPI_EXPORT virtual bool isDeleted(const std::shared_ptr<GeomAPI_Shape> theShape);
65 void result(const std::shared_ptr<GeomAPI_Shape> theShape,
66 ListOfShape& theHistory,
67 OperationType theOperationType);
71 ListOfMakeShape myListOfMakeShape; ///< List of make shape algos.