Salome HOME
Fix for the issue #593: do not remove naming attribute, but use TNaming_Builder for...
[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 theNorm direction of normal vector
29   GeomAPI_Ax3(std::shared_ptr<GeomAPI_Pnt> theOrigin,
30               std::shared_ptr<GeomAPI_Dir> theDirX,
31               std::shared_ptr<GeomAPI_Dir> theNorm);
32
33   /// Sets origin point
34   void setOrigin(const std::shared_ptr<GeomAPI_Pnt>& theOrigin);
35
36   /// Returns the plane origin point
37   std::shared_ptr<GeomAPI_Pnt> origin() const;
38
39   /// Sets X direction vector
40   void setDirX(const std::shared_ptr<GeomAPI_Dir>& theDirX);
41
42   /// Returns X direction vector
43   std::shared_ptr<GeomAPI_Dir> dirX() const;
44
45   /// Sets Y direction vector
46   void setDirY(const std::shared_ptr<GeomAPI_Dir>& theDirY);
47
48   /// Returns Y direction vector
49   std::shared_ptr<GeomAPI_Dir> dirY() const;
50
51   /// Sets Z direction vector
52   void setNorm(const std::shared_ptr<GeomAPI_Dir>& theNorm);
53
54   /// Returns Z direction vector
55   std::shared_ptr<GeomAPI_Dir> norm() const;
56
57   /// Converts 2d coordinates from the plane to 3d space point
58   /// \param theX X coordinate
59   /// \param theY Y coordinate
60   std::shared_ptr<GeomAPI_Pnt> to3D(double theX, double theY) const;
61
62   /// Converts 3d  to 2d coordinates of the plane
63   /// \param theX X coordinate
64   /// \param theY Y coordinate
65   /// \param theZ Z coordinate
66   std::shared_ptr<GeomAPI_Pnt2d> to2D(double theX, double theY, double theZ) const;
67
68 };
69
70
71 #endif