49 #include <visp/vpPlane.h>
84 : A(a), B(b), C(c), D(d) {}
90 : A(0), B(0), C(0), D(0)
113 : A(0), B(0), C(0), D(0)
153 D=-(
A*P[0]+
B*P[1]+
C*P[2]);
188 double norm = sqrt(
A*
A+
B*
B+
C*
C) ;
205 : A(0), B(0), C(0), D(0)
266 Pproj.
set_Z(z0+C*rho) ;
281 if(std::fabs(M0.
get_X()) > std::numeric_limits<double>::epsilon()
282 || std::fabs(M0.
get_Y()) > std::numeric_limits<double>::epsilon()
283 || std::fabs(M0.
get_Z()) > std::numeric_limits<double>::epsilon())
291 if (std::fabs(scal) > std::numeric_limits<double>::epsilon())
296 H[0] = M0.
get_X()+ k*R[0];
297 H[1] = M0.
get_Y()+ k*R[1];
298 H[2] = M0.
get_Z()+ k*R[2];
304 if (std::fabs(scal) > std::numeric_limits<double>::epsilon())
322 scal =
A*M1[0] +
B*M1[1] +
C*M1[2];
324 if (std::fabs(scal) > std::numeric_limits<double>::epsilon())
347 double Ao =
A, Bo =
B, Co =
C, Do =
D ;
348 A = cMo[0][0]*Ao + cMo[0][1]*Bo + cMo[0][2]*Co;
349 B = cMo[1][0]*Ao + cMo[1][1]*Bo + cMo[1][2]*Co;
350 C = cMo[2][0]*Ao + cMo[2][1]*Bo + cMo[2][2]*Co;
351 D = Do - (cMo[0][3]*
A + cMo[1][3]*
B + cMo[2][3]*
C);
360 VISP_EXPORT std::ostream& operator<< (std::ostream& os,
vpPlane& p)
362 return (os <<
"("<<p.
getA() <<
","<<p.
getB()
363 <<
","<<p.
getC()<<
","<<p.
getD() <<
") ") ;
void setD(const double d)
vpPlane & operator=(const vpPlane &f)
static vpColVector cross(const vpColVector &a, const vpColVector &b)
The class provides a data structure for the homogeneous matrices as well as a set of operations on th...
void set_X(const double X)
Set the point X coordinate in the camera frame.
double get_W() const
Get the point W coordinate in the camera frame.
Class that defines what is a point.
double rayIntersection(const vpPoint &M0, const vpPoint &M1, vpColVector &H) const
void set_Z(const double Z)
Set the point Z coordinate in the camera frame.
void set_W(const double W)
Set the point W coordinate in the camera frame.
void changeFrame(const vpHomogeneousMatrix &cMo)
void set_Y(const double Y)
Set the point Y coordinate in the camera frame.
void setA(const double a)
void init(const vpPoint &P, const vpPoint &Q, const vpPoint &R)
void projectionPointOnPlan(const vpPoint &P, vpPoint &Pproj) const
vpColVector getNormal() const
double get_Y() const
Get the point Y coordinate in the camera frame.
double getIntersection(const vpColVector &M1, vpColVector &H) const
void setC(const double c)
double get_Z() const
Get the point Z coordinate in the camera frame.
Class that provides a data structure for the column vectors as well as a set of operations on these v...
void setB(const double b)
This class defines the container for a plane geometrical structure.
double get_X() const
Get the point X coordinate in the camera frame.
void resize(const unsigned int i, const bool flagNullify=true)