Salome HOME
Issue #273: Add copyright string
[modules/shaper.git] / src / GeomAPI / GeomAPI_PlanarEdges.h
1 // Copyright (C) 2014-20xx CEA/DEN, EDF R&D
2
3 // File:        GeomAPI_PlanarEdges.hxx
4 // Created:     24 Jul 2014
5 // Author:      Artem ZHIDKOV
6
7 #ifndef GEOMAPI_WIRE_H_
8 #define GEOMAPI_WIRE_H_
9
10 #include "GeomAPI.h"
11 #include "GeomAPI_Edge.h"
12 #include "GeomAPI_Pnt.h"
13 #include "GeomAPI_Dir.h"
14
15 #include <memory>
16
17 #include <list>
18
19 /**\class GeomAPI_PlanarEdges
20  * \ingroup DataModel
21  * \brief Interface to the edge object
22  */
23
24 class GeomAPI_PlanarEdges : public GeomAPI_Shape
25 {
26  public:
27   /// Creation of empty (null) shape
28   GEOMAPI_EXPORT GeomAPI_PlanarEdges();
29
30   GEOMAPI_EXPORT virtual bool isVertex() const;
31
32   /// Returns whether the shape is an edge
33   GEOMAPI_EXPORT virtual bool isEdge() const;
34
35   GEOMAPI_EXPORT void addEdge(std::shared_ptr<GeomAPI_Shape> theEdge);
36   GEOMAPI_EXPORT std::list<std::shared_ptr<GeomAPI_Shape> > getEdges();
37
38   /// Returns True if the wire is defined in a plane
39   GEOMAPI_EXPORT bool hasPlane() const;
40
41   /// Set/Get origin point
42   GEOMAPI_EXPORT void setOrigin(const std::shared_ptr<GeomAPI_Pnt>& theOrigin);
43
44   GEOMAPI_EXPORT std::shared_ptr<GeomAPI_Pnt> origin() const;
45
46   /// Set/Get X direction vector
47   GEOMAPI_EXPORT void setDirX(const std::shared_ptr<GeomAPI_Dir>& theDirX);
48   GEOMAPI_EXPORT std::shared_ptr<GeomAPI_Dir> dirX() const;
49
50   /// Set/Get Y direction vector
51   GEOMAPI_EXPORT void setDirY(const std::shared_ptr<GeomAPI_Dir>& theDirY);
52   GEOMAPI_EXPORT std::shared_ptr<GeomAPI_Dir> dirY() const;
53
54   /// Set/Get Normal direction vector
55   GEOMAPI_EXPORT void setNorm(const std::shared_ptr<GeomAPI_Dir>& theNorm);
56   GEOMAPI_EXPORT std::shared_ptr<GeomAPI_Dir> norm() const;
57
58 private:
59   std::shared_ptr<GeomAPI_Pnt> myOrigin;
60   std::shared_ptr<GeomAPI_Dir> myDirX;
61   std::shared_ptr<GeomAPI_Dir> myDirY;
62   std::shared_ptr<GeomAPI_Dir> myNorm;
63 };
64
65 #endif
66