Salome HOME
Geom attribute: Point
[modules/shaper.git] / src / GeomAPI / GeomAPI_Pln.h
1 // File:        GeomAPI_Pln.hxx
2 // Created:     23 Apr 2014
3 // Author:      Mikhail PONIKAROV
4
5 #ifndef GeomAPI_Pln_HeaderFile
6 #define GeomAPI_Pln_HeaderFile
7
8 #include <boost/shared_ptr.hpp>
9 #include <GeomAPI_Interface.h>
10
11 class GeomAPI_Pnt;
12 class GeomAPI_Dir;
13
14 /**\class GeomAPI_Pln
15  * \ingroup DataModel
16  * \brief 3D point defined by three coordinates
17  */
18
19 class GEOMAPI_EXPORT GeomAPI_Pln: public GeomAPI_Interface
20 {
21 public:
22   /// Creation of plane by the point and normal
23   GeomAPI_Pln(const boost::shared_ptr<GeomAPI_Pnt>& thePoint,
24               const boost::shared_ptr<GeomAPI_Dir>& theNormal);
25
26   /// Creation of plane by coefficients (Ax+By+Cz+D=0)
27   GeomAPI_Pln(const double theA, const double theB, const double theC, const double theD);
28
29   /// Returns a point of this plane
30   boost::shared_ptr<GeomAPI_Pnt> location();
31
32   /// Returns a plane normal
33   boost::shared_ptr<GeomAPI_Dir> direction();
34
35   /// Returns the plane coefficients (Ax+By+Cz+D=0)
36   void coefficients(double& theA, double& theB, double& theC, double& theD);
37 };
38
39 #endif
40