49 #include <visp/vpPlane.h>
84 : A(a), B(b), C(c), D(d) {}
90 : A(0), B(0), C(0), D(0)
117 : A(0), B(0), C(0), D(0)
162 D=-(
A*P[0]+
B*P[1]+
C*P[2]);
216 double norm = sqrt(
A*
A+
B*
B+
C*
C) ;
237 : A(0), B(0), C(0), D(0)
239 init(P, Q, R, frame) ;
298 Pproj.
set_Z(z0+C*rho) ;
313 if(std::fabs(M0.
get_X()) > std::numeric_limits<double>::epsilon()
314 || std::fabs(M0.
get_Y()) > std::numeric_limits<double>::epsilon()
315 || std::fabs(M0.
get_Z()) > std::numeric_limits<double>::epsilon())
323 if (std::fabs(scal) > std::numeric_limits<double>::epsilon())
328 H[0] = M0.
get_X()+ k*R[0];
329 H[1] = M0.
get_Y()+ k*R[1];
330 H[2] = M0.
get_Z()+ k*R[2];
336 if (std::fabs(scal) > std::numeric_limits<double>::epsilon())
354 scal =
A*M1[0] +
B*M1[1] +
C*M1[2];
356 if (std::fabs(scal) > std::numeric_limits<double>::epsilon())
379 double Ao =
A, Bo =
B, Co =
C, Do =
D ;
380 A = cMo[0][0]*Ao + cMo[0][1]*Bo + cMo[0][2]*Co;
381 B = cMo[1][0]*Ao + cMo[1][1]*Bo + cMo[1][2]*Co;
382 C = cMo[2][0]*Ao + cMo[2][1]*Bo + cMo[2][2]*Co;
383 D = Do - (cMo[0][3]*
A + cMo[1][3]*
B + cMo[2][3]*
C);
392 VISP_EXPORT std::ostream& operator<< (std::ostream& os,
vpPlane& p)
394 return (os <<
"("<<p.
getA() <<
","<<p.
getB()
395 <<
","<<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...
double get_oY() const
Get the point Y coordinate in the object frame.
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 init(const vpPoint &P, const vpPoint &Q, const vpPoint &R, vpPlaneFrame frame=camera_frame)
void changeFrame(const vpHomogeneousMatrix &cMo)
double get_oZ() const
Get the point Z coordinate in the object frame.
void set_Y(const double Y)
Set the point Y coordinate in the camera frame.
void setA(const double a)
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.
double get_oX() const
Get the point X coordinate in the object 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)