]> SALOME platform Git repositories - modules/shaper.git/blob - src/GeomAlgoAPI/GeomAlgoAPI_MakeShape.h
Salome HOME
27.10.2014. Naming data structure for Extrusion feature.
[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_EXPORT GeomAlgoAPI_MakeShape
16 {
17  public:
18    /// Constructor
19   GeomAlgoAPI_MakeShape(BRepBuilderAPI_MakeShape * theBuilder);
20   /// Returns a shape built by the shape construction algorithm
21   const boost::shared_ptr<GeomAPI_Shape>  shape() const;
22
23   /// Returns the  list   of shapes generated   from the shape <theShape>
24   virtual const ListOfShape& generated(const boost::shared_ptr<GeomAPI_Shape> theShape);
25
26   /// Returns the  list   of shapes modified   from the shape <theShape>
27   virtual const ListOfShape& modified(const boost::shared_ptr<GeomAPI_Shape> theShape);
28
29   /// Returns whether the shape is an edge
30   virtual bool isDeleted(const boost::shared_ptr<GeomAPI_Shape> theShape);
31
32   protected:
33         boost::shared_ptr<GeomAPI_Shape> myShape;
34         ListOfShape myHistory;
35         BRepBuilderAPI_MakeShape * myBuilder;
36 };
37
38 #endif