Salome HOME
Merge branch 'master' of newgeom:newgeom
[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 : public GeomAPI_Interface
16 {
17  public:
18    /// Constructor
19   GEOMALGOAPI_EXPORT GeomAlgoAPI_MakeShape();
20
21   GEOMALGOAPI_EXPORT GeomAlgoAPI_MakeShape(void* theBuilder);
22
23   /// Returns a shape built by the shape construction algorithm
24   GEOMALGOAPI_EXPORT const boost::shared_ptr<GeomAPI_Shape>  shape() const;
25
26   /// Returns the  list   of shapes generated   from the shape <theShape>
27   GEOMALGOAPI_EXPORT virtual void generated(
28     const boost::shared_ptr<GeomAPI_Shape> theShape, ListOfShape& theHistory);
29
30   /// Returns the  list   of shapes modified   from the shape <theShape>
31   GEOMALGOAPI_EXPORT virtual void modified(
32     const boost::shared_ptr<GeomAPI_Shape> theShape, ListOfShape& theHistory);
33
34   /// Returns whether the shape is an edge
35   GEOMALGOAPI_EXPORT virtual bool isDeleted(const boost::shared_ptr<GeomAPI_Shape> theShape);
36
37   GEOMALGOAPI_EXPORT void init(void* theMkShape);
38
39   protected:
40         boost::shared_ptr<GeomAPI_Shape> myShape;
41 };
42
43 #endif