45 #include <visp3/core/vpPlane.h>
80 : A(a), B(b), C(c), D(d) {}
86 : A(0), B(0), C(0), D(0)
113 : A(0), B(0), C(0), D(0)
158 D=-(
A*P[0]+
B*P[1]+
C*P[2]);
212 double norm = sqrt(
A*
A+
B*
B+
C*
C) ;
233 : A(0), B(0), C(0), D(0)
235 init(P, Q, R, frame) ;
294 Pproj.
set_Z(z0+C*rho) ;
308 if(std::fabs(M0.
get_X()) > std::numeric_limits<double>::epsilon()
309 || std::fabs(M0.
get_Y()) > std::numeric_limits<double>::epsilon()
310 || std::fabs(M0.
get_Z()) > std::numeric_limits<double>::epsilon())
319 if (std::fabs(scal) > std::numeric_limits<double>::epsilon())
324 H[0] = M0.
get_X()+ k*R[0];
325 H[1] = M0.
get_Y()+ k*R[1];
326 H[2] = M0.
get_Z()+ k*R[2];
332 if (std::fabs(scal) > std::numeric_limits<double>::epsilon())
350 scal =
A*M1[0] +
B*M1[1] +
C*M1[2];
352 if (std::fabs(scal) > std::numeric_limits<double>::epsilon())
375 double Ao =
A, Bo =
B, Co =
C, Do =
D ;
376 A = cMo[0][0]*Ao + cMo[0][1]*Bo + cMo[0][2]*Co;
377 B = cMo[1][0]*Ao + cMo[1][1]*Bo + cMo[1][2]*Co;
378 C = cMo[2][0]*Ao + cMo[2][1]*Bo + cMo[2][2]*Co;
379 D = Do - (cMo[0][3]*
A + cMo[1][3]*
B + cMo[2][3]*
C);
390 return (os <<
"("<<p.
getA() <<
","<<p.
getB()
391 <<
","<<p.
getC()<<
","<<p.
getD() <<
") ") ;
void setD(const double d)
vpPlane & operator=(const vpPlane &f)
static vpColVector cross(const vpColVector &a, const vpColVector &b)
Implementation of an homogeneous matrix and operations on such kind of matrices.
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)
friend std::ostream & operator<<(std::ostream &s, const vpArray2D< Type > &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.
Implementation of column vector and the associated operations.
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)