1 // Copyright (C) 2014-20xx CEA/DEN, EDF R&D
3 // File: GeomAPI_Pln.hxx
4 // Created: 23 Apr 2014
5 // Author: Mikhail PONIKAROV
11 #include <GeomAPI_Interface.h>
20 * \brief 3D point defined by three coordinates
23 class GeomAPI_Pln : public GeomAPI_Interface
26 /// Creation of plane by the axis placement
28 GeomAPI_Pln(const std::shared_ptr<GeomAPI_Ax3>& theAxis);
30 /// Creation of plane by the point and normal
32 GeomAPI_Pln(const std::shared_ptr<GeomAPI_Pnt>& thePoint,
33 const std::shared_ptr<GeomAPI_Dir>& theNormal);
35 /// Creation of plane by coefficients (Ax+By+Cz+D=0)
37 GeomAPI_Pln(const double theA, const double theB, const double theC, const double theD);
39 /// Returns a point of this plane
41 std::shared_ptr<GeomAPI_Pnt> location() const;
43 /// Returns a plane normal
45 std::shared_ptr<GeomAPI_Dir> direction() const;
47 /// Returns a plane x direction
49 std::shared_ptr<GeomAPI_Dir> xDirection() const;
51 /// Returns the plane coefficients (Ax+By+Cz+D=0)
53 void coefficients(double& theA, double& theB, double& theC, double& theD);
55 /// Returns true if planes are coincident.
57 bool isCoincident(const std::shared_ptr<GeomAPI_Pln> thePlane, const double theTolerance = 1.e-7);
59 /// Returns intersection point or empty if no intersections
61 std::shared_ptr<GeomAPI_Pnt> intersect(const std::shared_ptr<GeomAPI_Lin>& theLine) const;
63 /// Returns projection of the given point onto the plane
65 std::shared_ptr<GeomAPI_Pnt> project(const std::shared_ptr<GeomAPI_Pnt>& thePoint) const;