54 OPlan(
double a,
double b,
double c,
double d);
121 void set(
double a,
double b,
double c,
double d);
All base classes related to 3D manipulation.
std::vector< OPoint3D > TabPoint3D
std::pair< unsigned int, unsigned int > segment
Plan defined by its equation : ax+by+cz+d=0.
int intersectsSegment(const OPoint3D &pt1, const OPoint3D &pt2, OPoint3D &ptIntersec) const
Calculate the intersection of this plane with a segment defined by two points.
double _a
The a parameter in the equation ax+by+cz+d=0.
double distance(const OPoint3D &pt)
Calculation of the minimal distance between a point and this plane.
double _c
The c parameter in the equation ax+by+cz+d=0.
bool operator!=(const OPlan &plan) const
The inequality operator.
double _d
The d parameter in the equation ax+by+cz+d=0.
bool isInPlan(const OPoint3D &pt)
Check if a point belongs to a plane.
virtual ~OPlan()
Destructor.
bool operator==(const OPlan &plan) const
The equality operator.
void update_explicit_repr(OVector3D hint=OVector3D(1, 1, 1))
updates the implicit representation of the plane
bool isOrthogonal(const OPlan &plan)
Check if this plan is perpendicular to another plan.
OPlan()
Default constructor With a=b=c=d=0.
double _b
The b parameter in the equation ax+by+cz+d=0.
double angle(const OPlan &plan)
Calculation of the angle between this plane and another plane.
OPoint3D projPtPlan(const OPoint3D &pt)
Calculate the projection of a point on the plane.
bool isParallel(const OPlan &plan)
Check if this plane is parallel with another plane.
void set(double a, double b, double c, double d)
Sets a, b, c and d parameters directly.
bool distancePlanParallel(const OPlan &plan, double &distance)
Calculate the distance between this plan and another parallel plane.
int intersectsSurface(const TabPoint3D &contour, OSegment3D &segment) const
Compute intersection between a plan and a surface defined by his bounds.
int intersectsPlan(const OPlan &plan, OVector3D &vectorIntersec)
Calculate the intersection of this plane with another plane.
int intersectsDroite(const OPoint3D &pt, const OVector3D &vector, OPoint3D &ptIntersec)
Calculate the intersection of this plane with a line defined by a point and a vector.
bool is_valid()
Check whether the plane is valid.
OPlan & operator=(const OPlan &plan)
Assignment operator.
OPoint3D symPtPlan(const OPoint3D &pt)
Calculate the symmetrical of a point relative to the plane.
3D frame with a point and 3 vectors.
Class to define a segment.
::std::ostream & operator<<(::std::ostream &os, const OPlan &p)