Salome HOME
89dae08a5458671271e8a58f8afb2bf445230a40
[modules/shaper.git] / src / GeomAlgoAPI / GeomAlgoAPI_MakeShape.h
1 // File:        GeomAlgoAPI_MakeShape.h
2 // Created:     17 Oct 2014
3 // Author:      Sergey ZARITCHNY
4 #ifndef GeomAlgoAPI_MakeShape_H_
5 #define GeomAlgoAPI_MakeShape_H_
6
7 #include <GeomAPI_Shape.h>
8 #include <boost/shared_ptr.hpp>
9 #include <GeomAlgoAPI.h>
10 #include <BRepBuilderAPI_MakeShape.hxx>
11 /**\class GeomAlgoAPI_MakeShape
12  * \ingroup DataModel
13  * \Interface to the root class of all topological shapes constructions
14  */
15 class GeomAlgoAPI_MakeShape : GeomAPI_Interface
16 {
17  public:
18    /// Constructor
19   GEOMALGOAPI_EXPORT GeomAlgoAPI_MakeShape(void* theBuilder);
20   /// Returns a shape built by the shape construction algorithm
21   GEOMALGOAPI_EXPORT const boost::shared_ptr<GeomAPI_Shape>  shape() const;
22
23   /// Returns the  list   of shapes generated   from the shape <theShape>
24   GEOMALGOAPI_EXPORT virtual void generated(
25     const boost::shared_ptr<GeomAPI_Shape> theShape, ListOfShape& theHistory);
26
27   /// Returns the  list   of shapes modified   from the shape <theShape>
28   GEOMALGOAPI_EXPORT virtual void modified(
29     const boost::shared_ptr<GeomAPI_Shape> theShape, ListOfShape& theHistory);
30
31   /// Returns whether the shape is an edge
32   GEOMALGOAPI_EXPORT virtual bool isDeleted(const boost::shared_ptr<GeomAPI_Shape> theShape);
33
34   protected:
35         boost::shared_ptr<GeomAPI_Shape> myShape;
36 };
37
38 #endif