1 // Copyright (C) 2014-20xx CEA/DEN, EDF R&D
3 // File: GeomAPI_Ax3.hxx
4 // Created: 16 February 2015
5 // Author: Vitaly SMETANNIKOV
11 #include "GeomAPI_Pnt.h"
12 #include "GeomAPI_Dir.h"
16 * \brief The class represents a coordinate plane which is 2d plane with X and Y directions
19 class GEOMAPI_EXPORT GeomAPI_Ax3 : public GeomAPI_Interface
22 /// Default constructor
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> theNorm);
35 void setOrigin(const std::shared_ptr<GeomAPI_Pnt>& theOrigin);
37 /// Returns the plane origin point
38 std::shared_ptr<GeomAPI_Pnt> origin() const;
40 /// Sets X direction vector
41 void setDirX(const std::shared_ptr<GeomAPI_Dir>& theDirX);
43 /// Returns X direction vector
44 std::shared_ptr<GeomAPI_Dir> dirX() const;
46 /// Sets Y direction vector
47 void setDirY(const std::shared_ptr<GeomAPI_Dir>& theDirY);
49 /// Returns Y direction vector
50 std::shared_ptr<GeomAPI_Dir> dirY() const;
52 /// Sets Z direction vector
53 void setNorm(const std::shared_ptr<GeomAPI_Dir>& theNorm);
55 /// Returns Z direction vector
56 std::shared_ptr<GeomAPI_Dir> norm() const;
58 /// Converts 2d coordinates from the plane to 3d space point
59 /// \param theX X coordinate
60 /// \param theY Y coordinate
61 std::shared_ptr<GeomAPI_Pnt> to3D(double theX, double theY) const;
63 /// Converts 3d to 2d coordinates of the plane
64 /// \param theX X coordinate
65 /// \param theY Y coordinate
66 /// \param theZ Z coordinate
67 std::shared_ptr<GeomAPI_Pnt2d> to2D(double theX, double theY, double theZ) const;