Salome HOME
Merge branch 'master' of newgeom:newgeom
[modules/shaper.git] / src / GeomAPI / GeomAPI_Shape.h
1 // File:        GeomAPI_Shape.hxx
2 // Created:     23 Apr 2014
3 // Author:      Mikhail PONIKAROV
4
5 #ifndef GeomAPI_Shape_H_
6 #define GeomAPI_Shape_H_
7
8 #include <GeomAPI_Interface.h>
9 #include <boost/shared_ptr.hpp>
10 #include <list>
11
12 /**\class GeomAPI_Shape
13  * \ingroup DataModel
14  * \brief Interface to the topological shape object
15  */
16 class GEOMAPI_EXPORT GeomAPI_Shape : public GeomAPI_Interface
17 {
18  public:
19   /// Creation of empty (null) shape
20   GeomAPI_Shape();
21
22   bool isNull() const;
23
24   /// Returns whether the shapes are equal
25   virtual bool isEqual(const boost::shared_ptr<GeomAPI_Shape> theShape) const;
26
27   /// Returns whether the shape is a vertex
28   virtual bool isVertex() const;
29
30   /// Returns whether the shape is an edge
31   virtual bool isEdge() const;
32
33 };
34
35 //! Pointer on list of shapes
36 typedef std::list<boost::shared_ptr<GeomAPI_Shape> > ListOfShape;
37
38 //! Pointer on attribute object
39 typedef boost::shared_ptr<GeomAPI_Shape> GeomShapePtr;
40
41 #endif