Visual Servoing Platform
version 3.2.0 under development (2019-01-22)
|
#include <visp3/core/vpPlane.h>
Public Types | |
enum | vpPlaneFrame { object_frame, camera_frame } |
Public Member Functions | |
vpPlane () | |
vpPlane (const vpPlane &P) | |
vpPlane (const double A, const double B, const double C, const double D) | |
vpPlane (const vpPoint &P, const vpColVector &n, vpPlaneFrame frame=camera_frame) | |
vpPlane (const vpPoint &P, const vpPoint &Q, const vpPoint &R, vpPlaneFrame frame=camera_frame) | |
void | init (const vpPoint &P, const vpPoint &Q, const vpPoint &R, vpPlaneFrame frame=camera_frame) |
void | init (const vpColVector &P, const vpColVector &n) |
void | init (const vpPlane &P) |
void | setA (const double a) |
void | setB (const double b) |
void | setC (const double c) |
void | setD (const double d) |
void | setABCD (const double a, const double b, const double c, const double d) |
vpPlane & | operator= (const vpPlane &f) |
double | getA () const |
double | getB () const |
double | getC () const |
double | getD () const |
vpColVector | getABCD () const |
vpColVector | abcd () const |
vpColVector | getNormal () const |
void | getNormal (vpColVector &n) const |
void | projectionPointOnPlan (const vpPoint &P, vpPoint &Pproj) const |
double | rayIntersection (const vpPoint &M0, const vpPoint &M1, vpColVector &H) const |
double | getIntersection (const vpColVector &M1, vpColVector &H) const |
void | changeFrame (const vpHomogeneousMatrix &cMo) |
Public Attributes | |
double | A |
double | B |
double | C |
double | D |
Friends | |
VISP_EXPORT std::ostream & | operator<< (std::ostream &os, vpPlane &p) |
This class defines the container for a plane geometrical structure.
A plane is given by the equation where (x,y,z) are the coordinates of a point and where is a normal vector of the plane.
vpPlane::vpPlane | ( | ) |
Basic constructor that set the plane parameters A, B, C, D to zero.
Definition at line 66 of file vpPlane.cpp.
vpPlane::vpPlane | ( | const vpPlane & | P | ) |
vpPlane::vpPlane | ( | const double | a, |
const double | b, | ||
const double | c, | ||
const double | d | ||
) |
Plane constructor from A, B, C, D parameters.
A plane is given by the equation where (x,y,z) are the coordinates of a point and is the normal vector of the plane.
a,b,c,d | : Parameters of the plane. |
Definition at line 78 of file vpPlane.cpp.
vpPlane::vpPlane | ( | const vpPoint & | P, |
const vpColVector & | n, | ||
vpPlaneFrame | frame = camera_frame |
||
) |
Plane constructor from a point P on the plane and the normal n to the plane.
A plane is given by the equation where (x,y,z) are the coordinates of a point and is the normal vector of the plane.
P | : A point with coordinates (x,y,z) on the plane. The frame parameter indicates if the coordinates of this points that are used are expressed in the camera of object frame. |
n | : The normal to the plane. |
frame | Indicates if the plane should be initialized from the point P coordinates expressed in the camera or object frame. |
Definition at line 110 of file vpPlane.cpp.
References A, B, C, camera_frame, D, vpPoint::get_oX(), vpPoint::get_oY(), vpPoint::get_oZ(), vpPoint::get_X(), vpPoint::get_Y(), and vpPoint::get_Z().
vpPlane::vpPlane | ( | const vpPoint & | P, |
const vpPoint & | Q, | ||
const vpPoint & | R, | ||
vpPlaneFrame | frame = camera_frame |
||
) |
Compute the equation of a plane given three point P, Q, R.
The normal to the plane is given by: n = PQ x PR
P,Q,R | Three points on the plane. |
frame | Indicates if the plane should be initialized from the points coordinates expressed in the camera or object frame. |
Definition at line 225 of file vpPlane.cpp.
References init().
|
inline |
void vpPlane::changeFrame | ( | const vpHomogeneousMatrix & | cMo | ) |
Considering the plane in the Ro frame computes the equation of the plane in the Rc frame.
cMo | : Homogeneous transformation from Rc to Ro frames. |
Definition at line 354 of file vpPlane.cpp.
Referenced by vpMbtFaceDepthNormal::computeInteractionMatrix(), vpMbtFaceDepthDense::computeInteractionMatrixAndResidu(), vpMbtFaceDepthNormal::displayFeature(), vpMbtFaceDepthNormal::estimateFeatures(), vpMbtFaceDepthNormal::estimatePlaneEquationSVD(), and vpMbKltTracker::setPose().
|
inline |
Definition at line 102 of file vpPlane.h.
Referenced by vpMbTracker::addPolygon(), vpMbTracker::addProjectionErrorPolygon(), vpMbtDistanceCircle::buildFrom(), vpKeyPoint::compute3D(), vpMbtFaceDepthNormal::computeInteractionMatrix(), vpMbtFaceDepthDense::computeInteractionMatrixAndResidu(), vpMbtFaceDepthNormal::displayFeature(), vpMbtFaceDepthNormal::estimateFeatures(), vpMbtFaceDepthNormal::estimatePlaneEquationSVD(), init(), rayIntersection(), vpPlane(), and vpMbtDistanceLine::~vpMbtDistanceLine().
|
inline |
|
inline |
Definition at line 104 of file vpPlane.h.
Referenced by vpMbTracker::addPolygon(), vpMbTracker::addProjectionErrorPolygon(), vpMbtDistanceCircle::buildFrom(), vpKeyPoint::compute3D(), vpMbtFaceDepthNormal::computeInteractionMatrix(), vpMbtFaceDepthDense::computeInteractionMatrixAndResidu(), vpMbtFaceDepthNormal::displayFeature(), vpMbtFaceDepthNormal::estimateFeatures(), vpMbtFaceDepthNormal::estimatePlaneEquationSVD(), init(), rayIntersection(), vpPlane(), and vpMbtDistanceLine::~vpMbtDistanceLine().
|
inline |
Definition at line 106 of file vpPlane.h.
Referenced by vpMbTracker::addPolygon(), vpMbTracker::addProjectionErrorPolygon(), vpMbtDistanceCircle::buildFrom(), vpKeyPoint::compute3D(), vpMbtFaceDepthNormal::computeInteractionMatrix(), vpMbtFaceDepthDense::computeInteractionMatrixAndResidu(), vpMbtFaceDepthNormal::displayFeature(), vpMbtFaceDepthNormal::estimateFeatures(), vpMbtFaceDepthNormal::estimatePlaneEquationSVD(), init(), rayIntersection(), vpPlane(), and vpMbtDistanceLine::~vpMbtDistanceLine().
|
inline |
Definition at line 108 of file vpPlane.h.
Referenced by vpKeyPoint::compute3D(), vpMbtFaceDepthNormal::computeInteractionMatrix(), vpMbtFaceDepthDense::computeInteractionMatrixAndResidu(), vpMbtFaceDepthNormal::estimateFeatures(), vpMbtFaceDepthNormal::estimatePlaneEquationSVD(), getIntersection(), init(), vpHomography::load(), rayIntersection(), vpMbKltTracker::setPose(), vpPlane(), and vpMbtDistanceLine::~vpMbtDistanceLine().
double vpPlane::getIntersection | ( | const vpColVector & | M1, |
vpColVector & | H | ||
) | const |
vpColVector vpPlane::getNormal | ( | ) | const |
Return the normal to the plane.
A plane is given by the equation where (x,y,z) is a point of R^3 and (A,B,C) are the coordinates of the normal.
Definition at line 238 of file vpPlane.cpp.
Referenced by vpHomography::load(), and vpMbKltTracker::setPose().
void vpPlane::getNormal | ( | vpColVector & | n | ) | const |
Return the normal to the plane.
A plane is given by the equation where (x,y,z) are the coordinates of a point and is normal vector of the plane.
Definition at line 258 of file vpPlane.cpp.
References A, B, C, and vpColVector::resize().
void vpPlane::init | ( | const vpPoint & | P, |
const vpPoint & | Q, | ||
const vpPoint & | R, | ||
vpPlaneFrame | frame = camera_frame |
||
) |
Compute the equation of a plane given three point P, Q, R.
The normal to the plane is given by: n = PQ x PR
P,Q,R | Three points on the plane. |
frame | Indicates if the plane should be initialized from the points coordinates expressed in the camera or object frame. |
Definition at line 168 of file vpPlane.cpp.
References A, B, C, camera_frame, vpColVector::cross(), D, vpPoint::get_oX(), vpPoint::get_oY(), vpPoint::get_oZ(), vpPoint::get_X(), vpPoint::get_Y(), and vpPoint::get_Z().
Referenced by vpPlane().
void vpPlane::init | ( | const vpColVector & | P, |
const vpColVector & | n | ||
) |
Initialize the plane from a point P on the plane and the normal n to the plane.
P | : A point with coordinates (x,y,z) on the plane. The size of the vector should be 3, with P[0]=x, with P[1]=y, with P[2]=z. |
n | : The normal to the plane. |
Definition at line 147 of file vpPlane.cpp.
void vpPlane::init | ( | const vpPlane & | P | ) |
Compute the coordinates of the projection of a point on the plane.
P | : point to be projected on the plane |
Pproj | : result of the projection (pproj belongs to the plane) |
Definition at line 272 of file vpPlane.cpp.
References A, B, C, D, vpPoint::get_W(), vpPoint::get_X(), vpPoint::get_Y(), vpPoint::get_Z(), vpPoint::set_W(), vpPoint::set_X(), vpPoint::set_Y(), and vpPoint::set_Z().
double vpPlane::rayIntersection | ( | const vpPoint & | M0, |
const vpPoint & | M1, | ||
vpColVector & | H | ||
) | const |
Definition at line 289 of file vpPlane.cpp.
References vpPoint::get_X(), vpPoint::get_Y(), vpPoint::get_Z(), getA(), getB(), getC(), and getD().
|
inline |
Set plane parameter A.
Definition at line 82 of file vpPlane.h.
Referenced by init(), vpPlane(), and vpMbtDistanceLine::~vpMbtDistanceLine().
|
inline |
Set plane parameters A, B, C, D.
|
inline |
Set plane parameter B.
Definition at line 84 of file vpPlane.h.
Referenced by init(), vpPlane(), and vpMbtDistanceLine::~vpMbtDistanceLine().
|
inline |
Set plane parameter C.
Definition at line 86 of file vpPlane.h.
Referenced by init(), vpPlane(), and vpMbtDistanceLine::~vpMbtDistanceLine().
|
inline |
Set plane parameter D.
Definition at line 88 of file vpPlane.h.
Referenced by init(), vpPlane(), and vpMbtDistanceLine::~vpMbtDistanceLine().
|
friend |
Print the plane parameters as a stream like "(A,B,C,D) " where A,B,C and D correspond to the parameters of the plane.
Definition at line 370 of file vpPlane.cpp.
double vpPlane::A |
Definition at line 67 of file vpPlane.h.
Referenced by changeFrame(), getIntersection(), getNormal(), init(), operator=(), projectionPointOnPlan(), and vpPlane().
double vpPlane::B |
Definition at line 67 of file vpPlane.h.
Referenced by changeFrame(), getIntersection(), getNormal(), init(), operator=(), projectionPointOnPlan(), and vpPlane().
double vpPlane::C |
Definition at line 67 of file vpPlane.h.
Referenced by changeFrame(), getIntersection(), getNormal(), init(), operator=(), projectionPointOnPlan(), and vpPlane().
double vpPlane::D |
Definition at line 67 of file vpPlane.h.
Referenced by changeFrame(), init(), operator=(), projectionPointOnPlan(), and vpPlane().