Visual Servoing Platform
version 3.2.0 under development (2019-01-22)
|
#include <visp3/mbt/vpMbHiddenFaces.h>
Public Member Functions | |
vpMbHiddenFaces () | |
virtual | ~vpMbHiddenFaces () |
vpMbHiddenFaces (const vpMbHiddenFaces ©) | |
vpMbHiddenFaces & | operator= (vpMbHiddenFaces other) |
void | addPolygon (PolygonType *p) |
bool | computeVisibility (const vpHomogeneousMatrix &cMo, const double &angleAppears, const double &angleDisappears, bool &changed, bool useOgre, bool not_used, const vpImage< unsigned char > &I, const vpCameraParameters &cam, const vpTranslationVector &cameraPos, unsigned int index) |
void | computeClippedPolygons (const vpHomogeneousMatrix &cMo, const vpCameraParameters &cam) |
void | computeScanLineRender (const vpCameraParameters &cam, const unsigned int &w, const unsigned int &h) |
void | computeScanLineQuery (const vpPoint &a, const vpPoint &b, std::vector< std::pair< vpPoint, vpPoint > > &lines, const bool &displayResults=false) |
vpMbScanLine & | getMbScanLineRenderer () |
void | displayOgre (const vpHomogeneousMatrix &cMo) |
std::vector< PolygonType * > & | getPolygon () |
void | initOgre (const vpCameraParameters &cam=vpCameraParameters()) |
unsigned int | getNbVisiblePolygon () const |
unsigned int | getNbRayCastingAttemptsForVisibility () |
vpAROgre * | getOgreContext () |
double | getGoodNbRayCastingAttemptsRatio () |
bool | isAppearing (const unsigned int i) |
bool | isOgreInitialised () |
bool | isVisible (const unsigned int i) |
bool | isVisibleOgre (const vpTranslationVector &cameraPos, const unsigned int &index) |
PolygonType * | operator[] (const unsigned int i) |
const PolygonType * | operator[] (const unsigned int i) const |
void | reset () |
void | setBackgroundSizeOgre (const unsigned int &h, const unsigned int &w) |
void | setNbRayCastingAttemptsForVisibility (const unsigned int &attempts) |
void | setGoodNbRayCastingAttemptsRatio (const double &ratio) |
void | setOgreShowConfigDialog (const bool showConfigDialog) |
unsigned int | setVisible (const vpImage< unsigned char > &I, const vpCameraParameters &cam, const vpHomogeneousMatrix &cMo, const double &angle, bool &changed) |
unsigned int | setVisible (const vpImage< unsigned char > &I, const vpCameraParameters &cam, const vpHomogeneousMatrix &cMo, const double &angleAppears, const double &angleDisappears, bool &changed) |
unsigned int | setVisible (const vpHomogeneousMatrix &cMo, const double &angleAppears, const double &angleDisappears, bool &changed) |
unsigned int | setVisibleOgre (const vpImage< unsigned char > &I, const vpCameraParameters &cam, const vpHomogeneousMatrix &cMo, const double &angleAppears, const double &angleDisappears, bool &changed) |
unsigned int | setVisibleOgre (const vpHomogeneousMatrix &cMo, const double &angleAppears, const double &angleDisappears, bool &changed) |
unsigned int | size () const |
Friends | |
void | swap (vpMbHiddenFaces &first, vpMbHiddenFaces &second) |
Implementation of the polygons management for the model-based trackers.
Definition at line 58 of file vpMbHiddenFaces.h.
vpMbHiddenFaces< PolygonType >::vpMbHiddenFaces | ( | ) |
Basic constructor.
Definition at line 284 of file vpMbHiddenFaces.h.
|
virtual |
Basic destructor.
Definition at line 299 of file vpMbHiddenFaces.h.
vpMbHiddenFaces< PolygonType >::vpMbHiddenFaces | ( | const vpMbHiddenFaces< PolygonType > & | copy | ) |
Copy constructor.
Definition at line 331 of file vpMbHiddenFaces.h.
void vpMbHiddenFaces< PolygonType >::addPolygon | ( | PolygonType * | p | ) |
Add a polygon to the list of polygons.
p | : The polygon to add. |
Definition at line 378 of file vpMbHiddenFaces.h.
Referenced by vpMbTracker::addPolygon(), and vpMbTracker::addProjectionErrorPolygon().
void vpMbHiddenFaces< PolygonType >::computeClippedPolygons | ( | const vpHomogeneousMatrix & | cMo, |
const vpCameraParameters & | cam | ||
) |
Compute the clipped points of the polygons that have been added via addPolygon().
cMo | : Pose that will be used to clip the polygons. |
cam | : Camera parameters that will be used to clip the polygons. |
Definition at line 441 of file vpMbHiddenFaces.h.
Referenced by vpMbTracker::computeProjectionErrorImpl(), vpMbDepthDenseTracker::computeVisibility(), vpMbDepthNormalTracker::computeVisibility(), vpMbDepthDenseTracker::display(), vpMbDepthNormalTracker::display(), vpMbKltTracker::display(), vpMbEdgeTracker::init(), vpMbEdgeKltTracker::postTracking(), vpMbEdgeKltMultiTracker::postTracking(), vpMbKltTracker::reinit(), vpMbEdgeKltTracker::setPose(), vpMbKltTracker::setPose(), vpMbGenericTracker::track(), and vpMbEdgeTracker::track().
void vpMbHiddenFaces< PolygonType >::computeScanLineQuery | ( | const vpPoint & | a, |
const vpPoint & | b, | ||
std::vector< std::pair< vpPoint, vpPoint > > & | lines, | ||
const bool & | displayResults = false |
||
) |
Compute Scanline visibility results for a line.
a | : First point of the line. |
b | : Second point of the line. |
lines | : Result of the scanline visibility. List of the visible parts of the line. |
displayResults | : True if the results have to be displayed. False otherwise |
Definition at line 501 of file vpMbHiddenFaces.h.
References vpMbHiddenFaces< PolygonType >::computeVisibility(), vpHomogeneousMatrix::extract(), vpHomogeneousMatrix::inverse(), vpAROgre::renderOneFrame(), and vpTRACE.
Referenced by vpMbtFaceDepthDense::computeROI(), vpMbtFaceDepthNormal::computeROI(), vpMbtDistanceLine::display(), vpMbtDistanceKltPoints::display(), vpMbtDistanceLine::initMovingEdge(), and vpMbtDistanceLine::updateMovingEdge().
void vpMbHiddenFaces< PolygonType >::computeScanLineRender | ( | const vpCameraParameters & | cam, |
const unsigned int & | w, | ||
const unsigned int & | h | ||
) |
Render the scene in order to perform, later via computeScanLineQuery(), visibility tests.
cam | : Camera parameters that will be used to render the scene. |
w | : Width of the render window. |
h | : Height of the render window. |
Definition at line 464 of file vpMbHiddenFaces.h.
References vpMbHiddenFaces< PolygonType >::size().
Referenced by vpMbTracker::computeProjectionErrorImpl(), vpMbDepthDenseTracker::computeVisibility(), vpMbDepthNormalTracker::computeVisibility(), vpMbDepthDenseTracker::display(), vpMbDepthNormalTracker::display(), vpMbKltTracker::display(), vpMbEdgeTracker::init(), vpMbEdgeKltTracker::postTracking(), vpMbEdgeKltMultiTracker::postTracking(), vpMbKltTracker::reinit(), vpMbEdgeKltTracker::setPose(), vpMbKltTracker::setPose(), vpMbGenericTracker::track(), and vpMbEdgeTracker::track().
bool vpMbHiddenFaces< PolygonType >::computeVisibility | ( | const vpHomogeneousMatrix & | cMo, |
const double & | angleAppears, | ||
const double & | angleDisappears, | ||
bool & | changed, | ||
bool | useOgre, | ||
bool | not_used, | ||
const vpImage< unsigned char > & | I, | ||
const vpCameraParameters & | cam, | ||
const vpTranslationVector & | cameraPos, | ||
unsigned int | index | ||
) |
Compute the visibility of a given face index.
cMo | : The pose of the camera |
angleAppears | : Angle used to test the appearance of a face |
angleDisappears | : Angle used to test the disappearance of a face |
changed | : True if a face appeared, disappeared or too many points have been lost. False otherwise |
useOgre | : True if a Ogre is used to test the visibility, False otherwise. |
not_used | : Unused parameter. |
I | : Image used to test if a face is entirely projected in the image. |
cam | : Camera parameters. |
cameraPos | : Position of the camera. Used only when Ogre is used as 3rd party. |
index | : Index of the face to consider. |
Definition at line 569 of file vpMbHiddenFaces.h.
References vpMbHiddenFaces< PolygonType >::isVisible(), and vpMbHiddenFaces< PolygonType >::isVisibleOgre().
Referenced by vpMbHiddenFaces< PolygonType >::computeScanLineQuery().
void vpMbHiddenFaces< PolygonType >::displayOgre | ( | const vpHomogeneousMatrix & | cMo | ) |
Update the display in Ogre Window.
cMo | : Pose used to display. |
Definition at line 743 of file vpMbHiddenFaces.h.
References vpAROgre::display(), vpMbHiddenFaces< PolygonType >::isVisible(), and vpAROgre::isWindowHidden().
Referenced by vpMbEdgeKltTracker::display(), vpMbKltTracker::display(), vpMbEdgeTracker::display(), vpMbHiddenFaces< vpMbtPolygon >::getMbScanLineRenderer(), and vpMbGenericTracker::track().
|
inline |
Get the ratio of visibility attempts that has to be successful to consider a polygon as visible.
Definition at line 166 of file vpMbHiddenFaces.h.
|
inline |
Definition at line 114 of file vpMbHiddenFaces.h.
Referenced by vpMbtFaceDepthDense::computeDesiredFeatures(), vpMbtFaceDepthNormal::computeDesiredFeatures(), vpMbtDistanceKltPoints::init(), vpMbtDistanceKltCylinder::init(), vpMbEdgeKltTracker::loadConfigFile(), vpMbKltTracker::loadConfigFile(), vpMbKltTracker::reinit(), vpMbKltTracker::setKltMaskBorder(), vpMbKltTracker::setMaskBorder(), and vpMbGenericTracker::track().
|
inline |
Get the number of rays that will be sent toward each polygon for visibility test. Each ray will go from the optic center of the camera to a random point inside the considered polygon.
Definition at line 148 of file vpMbHiddenFaces.h.
|
inline |
get the number of visible polygons.
Definition at line 136 of file vpMbHiddenFaces.h.
|
inline |
Get the Ogre3D Context.
Definition at line 155 of file vpMbHiddenFaces.h.
Referenced by vpMbTracker::setFarClippingDistance(), vpMbTracker::setNearClippingDistance(), vpMbDepthDenseTracker::setOgreVisibilityTest(), vpMbDepthNormalTracker::setOgreVisibilityTest(), vpMbKltTracker::setOgreVisibilityTest(), vpMbEdgeTracker::setOgreVisibilityTest(), vpMbGenericTracker::track(), vpMbDepthDenseTracker::vpMbDepthDenseTracker(), vpMbDepthNormalTracker::vpMbDepthNormalTracker(), vpMbEdgeKltTracker::vpMbEdgeKltTracker(), vpMbEdgeTracker::vpMbEdgeTracker(), and vpMbKltTracker::vpMbKltTracker().
|
inline |
Get the list of polygons.
Definition at line 125 of file vpMbHiddenFaces.h.
Referenced by vpMbTracker::addPolygon(), vpMbTracker::addProjectionErrorPolygon(), vpMbTracker::extractFaces(), vpMbTracker::extractLines(), vpMbTracker::getPolygonFaces(), vpMbtDistanceKltCylinder::init(), and vpMbTracker::loadCAOModel().
void vpMbHiddenFaces< PolygonType >::initOgre | ( | const vpCameraParameters & | cam = vpCameraParameters() | ) |
Initialise the ogre context for face visibility tests.
cam | : Camera parameters. |
Definition at line 711 of file vpMbHiddenFaces.h.
References vpAROgre::getSceneManager(), vpAROgre::init(), vpAROgre::setCameraParameters(), and vpAROgre::setShowConfigDialog().
Referenced by vpMbTracker::computeProjectionErrorImpl(), vpMbHiddenFaces< vpMbtPolygon >::getPolygon(), vpMbDepthDenseTracker::init(), vpMbDepthNormalTracker::init(), vpMbKltTracker::init(), vpMbEdgeTracker::init(), and vpMbGenericTracker::track().
|
inline |
Definition at line 169 of file vpMbHiddenFaces.h.
Referenced by vpMbEdgeTracker::computeVVSFirstPhase(), vpMbEdgeTracker::computeVVSFirstPhaseFactor(), and vpMbEdgeKltTracker::trackFirstLoop().
|
inline |
Tell whether if Ogre Context is initialised or not.
Definition at line 177 of file vpMbHiddenFaces.h.
Referenced by vpMbTracker::computeProjectionErrorImpl(), vpMbDepthDenseTracker::init(), vpMbDepthNormalTracker::init(), vpMbKltTracker::init(), vpMbEdgeTracker::init(), and vpMbGenericTracker::track().
|
inline |
Check if the polygon at position i in the list is visible.
i | : TPosition in the list. |
Definition at line 187 of file vpMbHiddenFaces.h.
Referenced by vpMbHiddenFaces< PolygonType >::computeVisibility(), vpMbtFaceDepthDense::computeVisibilityDisplay(), vpMbtFaceDepthNormal::computeVisibilityDisplay(), vpMbHiddenFaces< PolygonType >::displayOgre(), vpMbEdgeTracker::initMovingEdge(), and vpMbTracker::projectionErrorInitMovingEdge().
bool vpMbHiddenFaces< PolygonType >::isVisibleOgre | ( | const vpTranslationVector & | cameraPos, |
const unsigned int & | index | ||
) |
Test the visibility of a polygon through Ogre3D via RayCasting.
cameraPos | : Position of the camera in the 3D world. |
index | : Index of the polygon. |
Definition at line 804 of file vpMbHiddenFaces.h.
References vpAROgre::getCamera(), and vpAROgre::getSceneManager().
Referenced by vpMbHiddenFaces< PolygonType >::computeVisibility(), and vpMbHiddenFaces< vpMbtPolygon >::isVisible().
vpMbHiddenFaces< PolygonType > & vpMbHiddenFaces< PolygonType >::operator= | ( | vpMbHiddenFaces< PolygonType > | other | ) |
Copy assignment operator.
Definition at line 366 of file vpMbHiddenFaces.h.
References vpMbHiddenFaces< PolygonType >::swap.
|
inline |
operator[] as modifier.
Definition at line 194 of file vpMbHiddenFaces.h.
|
inline |
operator[] as reader.
Definition at line 196 of file vpMbHiddenFaces.h.
void vpMbHiddenFaces< PolygonType >::reset | ( | ) |
Reset the Hidden faces (remove the list of PolygonType)
Definition at line 398 of file vpMbHiddenFaces.h.
Referenced by vpMbHiddenFaces< vpMbtPolygon >::operator[](), vpMbEdgeKltTracker::reInitModel(), vpMbKltTracker::reInitModel(), vpMbEdgeTracker::reInitModel(), vpMbDepthDenseTracker::resetTracker(), vpMbDepthNormalTracker::resetTracker(), vpMbKltTracker::resetTracker(), vpMbEdgeTracker::resetTracker(), and vpMbGenericTracker::track().
|
inline |
Set the background size (by default it is 640x480). The background size has to match with the size of the image that you are using for the traking.
h | : Height of the background |
w | : Width of the background |
Definition at line 211 of file vpMbHiddenFaces.h.
Referenced by vpMbTracker::computeProjectionErrorImpl(), vpMbDepthDenseTracker::init(), vpMbDepthNormalTracker::init(), vpMbKltTracker::init(), vpMbEdgeTracker::init(), and vpMbGenericTracker::track().
|
inline |
Set the ratio of visibility attempts that has to be successful to consider a polygon as visible.
ratio | : Ratio of succesful attempts that has to be considered. Value has to be between 0.0 (0%) and 1.0 (100%). |
Definition at line 236 of file vpMbHiddenFaces.h.
Referenced by vpMbTracker::setGoodNbRayCastingAttemptsRatio().
|
inline |
Set the number of rays that will be sent toward each polygon for visibility test. Each ray will go from the optic center of the camera to a random point inside the considered polygon.
attempts | Number of rays to be sent. |
Definition at line 225 of file vpMbHiddenFaces.h.
Referenced by vpMbTracker::setNbRayCastingAttemptsForVisibility().
|
inline |
Enable/Disable the appearance of Ogre config dialog on startup.
showConfigDialog | : if true, shows Ogre dialog window (used to set Ogre rendering options) when Ogre visibility is enabled. By default, this functionality is turned off. |
Definition at line 254 of file vpMbHiddenFaces.h.
Referenced by vpMbTracker::computeProjectionErrorImpl(), vpMbDepthDenseTracker::init(), vpMbDepthNormalTracker::init(), vpMbKltTracker::init(), vpMbEdgeTracker::init(), and vpMbGenericTracker::track().
unsigned int vpMbHiddenFaces< PolygonType >::setVisible | ( | const vpImage< unsigned char > & | I, |
const vpCameraParameters & | cam, | ||
const vpHomogeneousMatrix & | cMo, | ||
const double & | angle, | ||
bool & | changed | ||
) |
Compute the number of visible polygons.
I | : Image used to check if the region of interest is inside the image. |
cam | : Camera parameters. |
cMo | : The pose of the camera. |
angle | : Angle used to test the appearance and disappearance of a face. |
changed | : True if a face appeared, disappeared or too many points have been lost. False otherwise |
Definition at line 660 of file vpMbHiddenFaces.h.
Referenced by vpMbDepthDenseTracker::computeVisibility(), vpMbDepthNormalTracker::computeVisibility(), vpMbDepthDenseTracker::display(), vpMbDepthNormalTracker::display(), vpMbDepthDenseTracker::init(), vpMbDepthNormalTracker::init(), vpMbKltTracker::init(), vpMbKltTracker::postTracking(), vpMbTracker::projectionErrorVisibleFace(), vpMbHiddenFaces< vpMbtPolygon >::setOgreShowConfigDialog(), vpMbKltTracker::setPose(), vpMbGenericTracker::track(), and vpMbEdgeTracker::visibleFace().
unsigned int vpMbHiddenFaces< PolygonType >::setVisible | ( | const vpImage< unsigned char > & | I, |
const vpCameraParameters & | cam, | ||
const vpHomogeneousMatrix & | cMo, | ||
const double & | angleAppears, | ||
const double & | angleDisappears, | ||
bool & | changed | ||
) |
Compute the number of visible polygons.
I | : Image used to check if the region of interest is inside the image. |
cam | : Camera parameters. |
cMo | : The pose of the camera |
changed | : True if a face appeared, disappeared or too many points have been lost. False otherwise |
angleAppears | : Angle used to test the appearance of a face |
angleDisappears | : Angle used to test the disappearance of a face |
Definition at line 680 of file vpMbHiddenFaces.h.
unsigned int vpMbHiddenFaces< PolygonType >::setVisible | ( | const vpHomogeneousMatrix & | cMo, |
const double & | angleAppears, | ||
const double & | angleDisappears, | ||
bool & | changed | ||
) |
Compute the number of visible polygons.
cMo | : The pose of the camera |
angleAppears | : Angle used to test the appearance of a face |
angleDisappears | : Angle used to test the disappearance of a face |
changed | : True if a face appeared, disappeared or too many points have been lost. False otherwise |
Definition at line 699 of file vpMbHiddenFaces.h.
unsigned int vpMbHiddenFaces< PolygonType >::setVisibleOgre | ( | const vpImage< unsigned char > & | I, |
const vpCameraParameters & | cam, | ||
const vpHomogeneousMatrix & | cMo, | ||
const double & | angleAppears, | ||
const double & | angleDisappears, | ||
bool & | changed | ||
) |
Compute the number of visible polygons through Ogre3D.
I | : Image used to check if the region of interest is inside the image. |
cam | : Camera parameters. |
cMo | : The pose of the camera |
changed | : True if a face appeared, disappeared or too many points have been lost. False otherwise |
angleAppears | : Angle used to test the appearance of a face |
angleDisappears | : Angle used to test the disappearance of a face |
Definition at line 769 of file vpMbHiddenFaces.h.
Referenced by vpMbDepthDenseTracker::init(), vpMbDepthNormalTracker::init(), vpMbKltTracker::init(), vpMbKltTracker::postTracking(), vpMbTracker::projectionErrorVisibleFace(), vpMbHiddenFaces< vpMbtPolygon >::setOgreShowConfigDialog(), vpMbKltTracker::setPose(), vpMbGenericTracker::track(), and vpMbEdgeTracker::visibleFace().
unsigned int vpMbHiddenFaces< PolygonType >::setVisibleOgre | ( | const vpHomogeneousMatrix & | cMo, |
const double & | angleAppears, | ||
const double & | angleDisappears, | ||
bool & | changed | ||
) |
Compute the number of visible polygons through Ogre3D.
cMo | : The pose of the camera |
angleAppears | : Angle used to test the appearance of a face |
angleDisappears | : Angle used to test the disappearance of a face |
changed | : True if a face appeared, disappeared or too many points have been lost. False otherwise |
Definition at line 789 of file vpMbHiddenFaces.h.
|
inline |
Get the number of polygons.
Definition at line 277 of file vpMbHiddenFaces.h.
Referenced by vpMbHiddenFaces< PolygonType >::computeScanLineRender(), vpMbTracker::getNbPolygon(), vpMbTracker::getPolygon(), vpMbTracker::loadModel(), vpMbTracker::loadVRMLModel(), vpMbTracker::setClipping(), vpMbTracker::setFarClippingDistance(), vpMbTracker::setLod(), vpMbTracker::setMinLineLengthThresh(), vpMbTracker::setMinPolygonAreaThresh(), and vpMbTracker::setNearClippingDistance().
|
friend |
Definition at line 346 of file vpMbHiddenFaces.h.
Referenced by vpMbHiddenFaces< PolygonType >::operator=().