![]() |
Visual Servoing Platform version 3.5.0
|
#include <vpPolygon3D.h>
Inheritance diagram for vpPolygon3D:Public Types | |
| enum | vpPolygon3DClippingType { NO_CLIPPING = 0 , NEAR_CLIPPING = 1 , FAR_CLIPPING = 2 , LEFT_CLIPPING = 4 , RIGHT_CLIPPING = 8 , UP_CLIPPING = 16 , DOWN_CLIPPING = 32 , FOV_CLIPPING = 60 , ALL_CLIPPING = 63 } |
Public Member Functions | |
| vpPolygon3D () | |
| vpPolygon3D (const vpPolygon3D &mbtp) | |
| virtual | ~vpPolygon3D () |
| void | addPoint (unsigned int n, const vpPoint &P) |
| void | changeFrame (const vpHomogeneousMatrix &cMo) |
| void | computePolygonClipped (const vpCameraParameters &cam=vpCameraParameters()) |
| unsigned int | getClipping () const |
| double | getFarClippingDistance () const |
| unsigned int | getNbPoint () const |
| unsigned int | getNbCornerInsidePrevImage () const |
| unsigned int | getNbCornerInsideImage (const vpImage< unsigned char > &I, const vpCameraParameters &cam) |
| double | getNearClippingDistance () const |
| vpPoint & | getPoint (const unsigned int _index) |
| std::vector< vpImagePoint > | getRoi (const vpCameraParameters &cam) |
| std::vector< vpImagePoint > | getRoi (const vpCameraParameters &cam, const vpHomogeneousMatrix &cMo) |
| void | getRoiClipped (const vpCameraParameters &cam, std::vector< vpImagePoint > &roi) |
| void | getRoiClipped (const vpCameraParameters &cam, std::vector< vpImagePoint > &roi, const vpHomogeneousMatrix &cMo) |
| void | getRoiClipped (const vpCameraParameters &cam, std::vector< std::pair< vpImagePoint, unsigned int > > &roi) |
| void | getRoiClipped (const vpCameraParameters &cam, std::vector< std::pair< vpImagePoint, unsigned int > > &roi, const vpHomogeneousMatrix &cMo) |
Public Attributes | |
| unsigned int | nbpt |
| unsigned int | nbCornersInsidePrev |
| vpPoint * | p |
| std::vector< std::pair< vpPoint, unsigned int > > | polyClipped |
| unsigned int | clippingFlag |
| double | distNearClip |
| double | distFarClip |
Deprecated functions | |
| vp_deprecated void | getRoiClipped (std::vector< vpPoint > &points) |
| void | getPolygonClipped (std::vector< std::pair< vpPoint, unsigned int > > &poly) |
| void | getPolygonClipped (std::vector< vpPoint > &poly) |
| vpPolygon3D & | operator= (const vpPolygon3D &mbtp) |
| void | setClipping (const unsigned int &flags) |
| void | setFarClippingDistance (const double &dist) |
| virtual void | setNbPoint (unsigned int nb) |
| void | setNearClippingDistance (const double &dist) |
| static void | getClippedPolygon (const std::vector< vpPoint > &ptIn, std::vector< vpPoint > &ptOut, const vpHomogeneousMatrix &cMo, const unsigned int &clippingFlags, const vpCameraParameters &cam=vpCameraParameters(), const double &znear=0.001, const double &zfar=100) |
| static void | getMinMaxRoi (const std::vector< vpImagePoint > &roi, int &i_min, int &i_max, int &j_min, int &j_max) |
| static bool | roiInsideImage (const vpImage< unsigned char > &I, const std::vector< vpImagePoint > &corners) |
Implements a 3D polygon with render functionnalities like clipping.
Definition at line 59 of file vpPolygon3D.h.
| Enumerator | |
|---|---|
| NO_CLIPPING | |
| NEAR_CLIPPING | |
| FAR_CLIPPING | |
| LEFT_CLIPPING | |
| RIGHT_CLIPPING | |
| UP_CLIPPING | |
| DOWN_CLIPPING | |
| FOV_CLIPPING | |
| ALL_CLIPPING | |
Definition at line 62 of file vpPolygon3D.h.
| vpPolygon3D::vpPolygon3D | ( | ) |
Basic constructor.
Definition at line 53 of file vpPolygon3D.cpp.
| vpPolygon3D::vpPolygon3D | ( | const vpPolygon3D & | mbtp | ) |
Definition at line 59 of file vpPolygon3D.cpp.
|
virtual |
| void vpPolygon3D::addPoint | ( | unsigned int | n, |
| const vpPoint & | P | ||
| ) |
Add a corner point to the list of polygon's corners.
| n | : The index of the corner. |
| P | : The point to add. |
Definition at line 133 of file vpPolygon3D.cpp.
References p.
Referenced by vpMbTracker::addPolygon(), vpMbTracker::addProjectionErrorPolygon(), vpMbtDistanceLine::buildFrom(), and getClippedPolygon().
| void vpPolygon3D::changeFrame | ( | const vpHomogeneousMatrix & | cMo | ) |
Project the 3D corner points into the image thanks to the pose of the camera.
| cMo | : The pose of the camera. |
Definition at line 145 of file vpPolygon3D.cpp.
References vpPoint::changeFrame(), nbpt, p, and vpPoint::projection().
Referenced by getClippedPolygon(), getRoi(), getRoiClipped(), vpMbtPolygon::isVisible(), vpMbKltTracker::reinit(), and vpMbKltTracker::setPose().
| void vpPolygon3D::computePolygonClipped | ( | const vpCameraParameters & | cam = vpCameraParameters() | ) |
Compute the region of interest in the image according to the used clipping.
| cam | : camera parameters used to compute the field of view. |
Definition at line 160 of file vpPolygon3D.cpp.
References clippingFlag, distFarClip, distNearClip, DOWN_CLIPPING, FAR_CLIPPING, vpCameraParameters::getFovNormals(), vpCameraParameters::isFovComputed(), LEFT_CLIPPING, nbpt, NO_CLIPPING, p, polyClipped, vpPoint::projection(), RIGHT_CLIPPING, and UP_CLIPPING.
Referenced by getClippedPolygon(), vpMbtDistanceLine::getModelForDisplay(), getRoiClipped(), vpMbtDistanceLine::initMovingEdge(), vpMbtPolygon::isVisible(), vpMbKltTracker::reinit(), vpMbKltTracker::setPose(), and vpMbtDistanceLine::updateMovingEdge().
|
static |
Static method to compute the clipped points from a set of initial points.
| ptIn | : Input points |
| ptOut | : Output points (result of the clipping). |
| cMo | : Pose considered for the clipping. |
| clippingFlags | Clipping flag (see vpPolygon3D::vpPolygon3DClippingType). |
| cam | : Camera parameters (Only used if clipping flags contain FOV clipping). |
| znear | : Near clipping distance value (Only used if clipping flags contain Near clipping). |
| zfar | : Far clipping distance value (Only used if clipping flags contain Far clipping). |
Definition at line 569 of file vpPolygon3D.cpp.
References addPoint(), changeFrame(), computePolygonClipped(), FAR_CLIPPING, getPolygonClipped(), NEAR_CLIPPING, setClipping(), setFarClippingDistance(), setNbPoint(), and setNearClippingDistance().
Referenced by vpImageSimulator::setCameraPosition().
|
inline |
Get the clipping used.
Definition at line 118 of file vpPolygon3D.h.
Referenced by vpMbtDistanceLine::getModelForDisplay(), vpMbtDistanceLine::initMovingEdge(), and vpMbtDistanceLine::updateMovingEdge().
|
inline |
Get the far distance for clipping.
Definition at line 125 of file vpPolygon3D.h.
|
static |
Definition at line 592 of file vpPolygon3D.cpp.
Referenced by vpMbtDistanceKltCylinder::updateMask(), and vpMbtDistanceKltPoints::updateMask().
| unsigned int vpPolygon3D::getNbCornerInsideImage | ( | const vpImage< unsigned char > & | I, |
| const vpCameraParameters & | cam | ||
| ) |
Static method to check the number of points of a region defined by the vector of image point that are inside the image.
| I | : The image used for its size. |
| cam | : The camera parameters. |
Definition at line 532 of file vpPolygon3D.cpp.
References vpMeterPixelConversion::convertPoint(), vpImagePoint::get_i(), vpImagePoint::get_j(), vpImage< Type >::getHeight(), vpImage< Type >::getWidth(), nbCornersInsidePrev, nbpt, and p.
|
inline |
Return the number of corners at the previous computation.
Definition at line 139 of file vpPolygon3D.h.
|
inline |
Return the number of corners.
Definition at line 132 of file vpPolygon3D.h.
Referenced by vpMbDepthDenseTracker::addFace(), vpMbDepthNormalTracker::addFace(), vpMbEdgeTracker::addPolygon(), vpMbKltTracker::computeVVSInteractionMatrixAndResidu(), vpMbEdgeTracker::initFaceFromCorners(), vpMbEdgeTracker::initFaceFromLines(), vpMbTracker::initProjectionErrorFaceFromCorners(), vpMbTracker::initProjectionErrorFaceFromLines(), vpMbKltTracker::postTracking(), vpMbKltTracker::preTracking(), vpMbKltTracker::reinit(), vpMbKltTracker::setPose(), and vpMbKltTracker::testTracking().
|
inline |
Get the near distance for clipping.
Definition at line 148 of file vpPolygon3D.h.
| vpPoint & vpPolygon3D::getPoint | ( | const unsigned int | _index | ) |
Get a reference to a corner.
| vpException::dimensionError | if the _index is out of range. |
| _index | : the index of the corner |
Definition at line 106 of file vpPolygon3D.cpp.
References vpException::dimensionError, nbpt, and p.
Referenced by vpMbtDistanceKltPoints::init().
| void vpPolygon3D::getPolygonClipped | ( | std::vector< std::pair< vpPoint, unsigned int > > & | poly | ) |
Get the 3D clipped points and their clipping information.
| poly | : resulting points plus clipping information. |
Definition at line 436 of file vpPolygon3D.cpp.
References polyClipped.
Referenced by vpMbtFaceDepthNormal::computeNormalVisibility(), vpMbtFaceDepthDense::computeROI(), getClippedPolygon(), and vpMbtDistanceKltPoints::getModelForDisplay().
| void vpPolygon3D::getPolygonClipped | ( | std::vector< vpPoint > & | poly | ) |
Get the 3D clipped points.
| poly | : resulting points. |
Definition at line 446 of file vpPolygon3D.cpp.
References polyClipped.
| std::vector< vpImagePoint > vpPolygon3D::getRoi | ( | const vpCameraParameters & | cam | ) |
Get the region of interest in the image.
| cam | : camera parameters. |
Definition at line 385 of file vpPolygon3D.cpp.
References vpMeterPixelConversion::convertPoint(), nbpt, and p.
Referenced by getRoi().
| std::vector< vpImagePoint > vpPolygon3D::getRoi | ( | const vpCameraParameters & | cam, |
| const vpHomogeneousMatrix & | cMo | ||
| ) |
Get the region of interest in the image.
| cam | : camera parameters. |
| cMo | : pose. |
Definition at line 405 of file vpPolygon3D.cpp.
References changeFrame(), and getRoi().
| void vpPolygon3D::getRoiClipped | ( | const vpCameraParameters & | cam, |
| std::vector< std::pair< vpImagePoint, unsigned int > > & | roi | ||
| ) |
Get the region of interest clipped in the image and the information to know if it's a clipped point.
| cam | : camera parameters. |
| roi | : image point corresponding to the region of interest with clipping information. |
Definition at line 499 of file vpPolygon3D.cpp.
References vpMeterPixelConversion::convertPoint(), and polyClipped.
| void vpPolygon3D::getRoiClipped | ( | const vpCameraParameters & | cam, |
| std::vector< std::pair< vpImagePoint, unsigned int > > & | roi, | ||
| const vpHomogeneousMatrix & | cMo | ||
| ) |
Get the region of interest clipped in the image and the information to know if it's a clipped point.
| cam | : camera parameters. |
| roi | : image point corresponding to the region of interest with clipping information. |
| cMo | : pose. |
Definition at line 517 of file vpPolygon3D.cpp.
References changeFrame(), computePolygonClipped(), and getRoiClipped().
| void vpPolygon3D::getRoiClipped | ( | const vpCameraParameters & | cam, |
| std::vector< vpImagePoint > & | roi | ||
| ) |
Get the region of interest clipped in the image.
| cam | : camera parameters. |
| roi | : image point corresponding to the region of interest. |
Definition at line 462 of file vpPolygon3D.cpp.
References vpMeterPixelConversion::convertPoint(), and polyClipped.
Referenced by vpMbtFaceDepthNormal::computeNormalVisibility(), vpMbtFaceDepthNormal::computeROI(), vpMbtFaceDepthDense::computeROI(), getRoiClipped(), vpMbtDistanceKltPoints::init(), vpMbtPolygon::isVisible(), and vpMbtDistanceKltPoints::updateMask().
| void vpPolygon3D::getRoiClipped | ( | const vpCameraParameters & | cam, |
| std::vector< vpImagePoint > & | roi, | ||
| const vpHomogeneousMatrix & | cMo | ||
| ) |
Get the region of interest clipped in the image.
| cam | : camera parameters. |
| cMo | : pose. |
| roi | : image point corresponding to the region of interest. |
Definition at line 480 of file vpPolygon3D.cpp.
References changeFrame(), computePolygonClipped(), and getRoiClipped().
| void vpPolygon3D::getRoiClipped | ( | std::vector< vpPoint > & | points | ) |
Get the 3D points of the clipped region of interest.
| points | : resulting points. |
Definition at line 420 of file vpPolygon3D.cpp.
References polyClipped.
| vpPolygon3D & vpPolygon3D::operator= | ( | const vpPolygon3D & | mbtp | ) |
Definition at line 70 of file vpPolygon3D.cpp.
References clippingFlag, distFarClip, distNearClip, nbCornersInsidePrev, nbpt, p, and polyClipped.
Referenced by vpMbtPolygon::operator=().
|
static |
Static method to check whether the region defined by the vector of image point is contained entirely in the image.
| I | : The image used for its size. |
| corners | : The vector of points defining a region |
Definition at line 633 of file vpPolygon3D.cpp.
References vpImage< Type >::getHeight(), and vpImage< Type >::getWidth().
|
inline |
Specify which clipping to use.
| flags | : New clipping flags. |
Definition at line 187 of file vpPolygon3D.h.
Referenced by vpMbEdgeTracker::addLine(), vpMbtFaceDepthDense::addLine(), vpMbtFaceDepthNormal::addLine(), vpMbTracker::addProjectionErrorLine(), getClippedPolygon(), and vpMbEdgeTracker::setClipping().
|
inline |
Set the far distance for clipping.
| dist | : Far clipping value. |
Definition at line 194 of file vpPolygon3D.h.
References FAR_CLIPPING.
Referenced by vpMbEdgeTracker::addLine(), vpMbtFaceDepthDense::addLine(), vpMbtFaceDepthNormal::addLine(), vpMbTracker::addProjectionErrorLine(), getClippedPolygon(), and vpMbEdgeTracker::setFarClippingDistance().
|
virtual |
Set the number of points which are the corners of the polygon.
| nb | : The number of corners. |
Definition at line 119 of file vpPolygon3D.cpp.
Referenced by vpMbTracker::addPolygon(), vpMbTracker::addProjectionErrorPolygon(), vpMbtDistanceLine::buildFrom(), and getClippedPolygon().
|
inline |
Set the near distance for clipping.
| dist | : Near clipping value. |
Definition at line 207 of file vpPolygon3D.h.
References NEAR_CLIPPING.
Referenced by vpMbEdgeTracker::addLine(), vpMbtFaceDepthDense::addLine(), vpMbtFaceDepthNormal::addLine(), vpMbTracker::addProjectionErrorLine(), getClippedPolygon(), and vpMbEdgeTracker::setNearClippingDistance().
| unsigned int vpPolygon3D::clippingFlag |
Clipping flag.
Definition at line 85 of file vpPolygon3D.h.
Referenced by computePolygonClipped(), vpMbtPolygon::isVisible(), and operator=().
| double vpPolygon3D::distFarClip |
Distance for near clipping.
Definition at line 89 of file vpPolygon3D.h.
Referenced by computePolygonClipped(), and operator=().
| double vpPolygon3D::distNearClip |
Distance for near clipping.
Definition at line 87 of file vpPolygon3D.h.
Referenced by computePolygonClipped(), and operator=().
| unsigned int vpPolygon3D::nbCornersInsidePrev |
Number of corners inside the image during the last call to getNbCornerInsideImage
Definition at line 79 of file vpPolygon3D.h.
Referenced by getNbCornerInsideImage(), and operator=().
| unsigned int vpPolygon3D::nbpt |
Number of points used to define the polygon.
Definition at line 76 of file vpPolygon3D.h.
Referenced by vpMbDepthDenseTracker::addFace(), vpMbDepthNormalTracker::addFace(), changeFrame(), computePolygonClipped(), getNbCornerInsideImage(), getPoint(), getRoi(), vpMbtPolygon::isVisible(), operator=(), setNbPoint(), and vpPolygon3D().
| vpPoint* vpPolygon3D::p |
corners in the object frame
Definition at line 81 of file vpPolygon3D.h.
Referenced by vpMbDepthDenseTracker::addFace(), vpMbDepthNormalTracker::addFace(), addPoint(), vpMbEdgeTracker::addPolygon(), vpMbtDistanceLine::buildFrom(), changeFrame(), computePolygonClipped(), getNbCornerInsideImage(), getPoint(), getRoi(), vpMbEdgeTracker::initFaceFromCorners(), vpMbEdgeTracker::initFaceFromLines(), vpMbTracker::initProjectionErrorFaceFromCorners(), vpMbTracker::initProjectionErrorFaceFromLines(), vpMbtPolygon::isVisible(), operator=(), setNbPoint(), vpMbKltTracker::setPose(), vpPolygon3D(), and ~vpPolygon3D().
| std::vector<std::pair<vpPoint, unsigned int> > vpPolygon3D::polyClipped |
Region of interest clipped.
Definition at line 83 of file vpPolygon3D.h.
Referenced by computePolygonClipped(), vpMbtDistanceLine::getModelForDisplay(), getPolygonClipped(), getRoiClipped(), vpMbtDistanceLine::initMovingEdge(), operator=(), and vpMbtDistanceLine::updateMovingEdge().