Salome HOME
67bde43efd50a2b1e331ffe33202901c295e5df9
[modules/shaper.git] / src / GeomAPI / GeomAPI_Ax3.h
1 // Copyright (C) 2014-20xx CEA/DEN, EDF R&D
2
3 // File:        GeomAPI_Ax3.hxx
4 // Created:     16 February 2015
5 // Author:      Vitaly SMETANNIKOV
6
7 #ifndef GEOMAPI_AX3_H_
8 #define GEOMAPI_AX3_H_
9
10 #include "GeomAPI.h"
11 #include "GeomAPI_Pnt.h"
12 #include "GeomAPI_Dir.h"
13
14 /**
15  * \ingroup DataModel
16  * \brief The class represents a coordinate plane which is 2d plane with X and Y directions
17  * and origin
18  */ 
19 class GEOMAPI_EXPORT GeomAPI_Ax3 : public GeomAPI_Interface
20 {
21 public:
22   /// Default constructor
23   GeomAPI_Ax3();
24
25   /// Ñonstructor
26   /// \param theOrigin point of origin
27   /// \param theDirX direction of X axis
28   /// \param theDirY direction of Y axis
29   /// \param theNorm direction of normal vector
30   GeomAPI_Ax3(std::shared_ptr<GeomAPI_Pnt> theOrigin,
31               std::shared_ptr<GeomAPI_Dir> theDirX,
32               std::shared_ptr<GeomAPI_Dir> theDirY,
33               std::shared_ptr<GeomAPI_Dir> theNorm);
34
35   /// Sets origin point
36   void setOrigin(const std::shared_ptr<GeomAPI_Pnt>& theOrigin);
37
38   /// Returns the plane origin point
39   std::shared_ptr<GeomAPI_Pnt> origin() const;
40
41   /// Sets X direction vector
42   void setDirX(const std::shared_ptr<GeomAPI_Dir>& theDirX);
43
44   /// Returns X direction vector
45   std::shared_ptr<GeomAPI_Dir> dirX() const;
46
47   /// Sets Y direction vector
48   void setDirY(const std::shared_ptr<GeomAPI_Dir>& theDirY);
49
50   /// Returns Y direction vector
51   std::shared_ptr<GeomAPI_Dir> dirY() const;
52
53   /// Sets Z direction vector
54   void setNorm(const std::shared_ptr<GeomAPI_Dir>& theNorm);
55
56   /// Returns Z direction vector
57   std::shared_ptr<GeomAPI_Dir> norm() const;
58
59   /// Converts 2d coordinates from the plane to 3d space point
60   /// \param theX X coordinate
61   /// \param theY Y coordinate
62   std::shared_ptr<GeomAPI_Pnt> to3D(double theX, double theY) const;
63
64   /// Converts 3d  to 2d coordinates of the plane
65   /// \param theX X coordinate
66   /// \param theY Y coordinate
67   /// \param theZ Z coordinate
68   std::shared_ptr<GeomAPI_Pnt2d> to2D(double theX, double theY, double theZ) const;
69
70 };
71
72
73 #endif