ViSP  2.10.0
vpMbHiddenFaces< PolygonType > Class Template Reference

#include <vpMbHiddenFaces.h>

Public Member Functions

 vpMbHiddenFaces ()
 
 ~vpMbHiddenFaces ()
 
void addPolygon (PolygonType *p)
 
bool computeVisibility (const vpHomogeneousMatrix &cMo, const double &angleAppears, const double &angleDisappears, bool &changed, bool useOgre, bool testRoi, const vpImage< unsigned char > &I, const vpCameraParameters &cam, const vpTranslationVector &cameraPos, unsigned int index)
 
void displayOgre (const vpHomogeneousMatrix &cMo)
 
std::vector< PolygonType * > & getPolygon ()
 
void initOgre (const vpCameraParameters &cam=vpCameraParameters())
 
unsigned int getNbVisiblePolygon () const
 
vpAROgregetOgreContext ()
 
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)
 
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
 
Deprecated functions
vp_deprecated bool getDepthTest ()
 
vp_deprecated void setDepthTest (const bool &d)
 
unsigned int setVisible (const vpHomogeneousMatrix &cMo)
 

Public Attributes

bool depthTest
 

Detailed Description

template<class PolygonType = vpMbtPolygon>
class vpMbHiddenFaces< PolygonType >

Implementation of the polygons management for the model-based trackers.

Definition at line 68 of file vpMbHiddenFaces.h.

Constructor & Destructor Documentation

template<class PolygonType >
vpMbHiddenFaces< PolygonType >::vpMbHiddenFaces ( )

Basic constructor.

Definition at line 224 of file vpMbHiddenFaces.h.

References vpAROgre::setShowConfigDialog().

template<class PolygonType >
vpMbHiddenFaces< PolygonType >::~vpMbHiddenFaces ( )

Basic destructor.

Definition at line 243 of file vpMbHiddenFaces.h.

Member Function Documentation

template<class PolygonType>
void vpMbHiddenFaces< PolygonType >::addPolygon ( PolygonType *  p)

Add a polygon to the list of polygons.

Parameters
p: The polygon to add.

Definition at line 278 of file vpMbHiddenFaces.h.

Referenced by vpMbTracker::addPolygon().

template<class PolygonType >
bool vpMbHiddenFaces< PolygonType >::computeVisibility ( const vpHomogeneousMatrix cMo,
const double &  angleAppears,
const double &  angleDisappears,
bool &  changed,
bool  useOgre,
bool  testRoi,
const vpImage< unsigned char > &  I,
const vpCameraParameters cam,
const vpTranslationVector cameraPos,
unsigned int  index 
)

Compute the visibility of a given face index.

Parameters
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
testRoi: True if a face have to be entirely in the image False otherwise
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.
Returns
Return true if the face is visible.

Definition at line 394 of file vpMbHiddenFaces.h.

template<class PolygonType >
void vpMbHiddenFaces< PolygonType >::displayOgre ( const vpHomogeneousMatrix cMo)

Update the display in Ogre Window.

Parameters
cMo: Pose used to display.

Definition at line 581 of file vpMbHiddenFaces.h.

References vpAROgre::display(), and vpAROgre::isWindowHidden().

Referenced by vpMbEdgeKltTracker::display(), vpMbKltTracker::display(), and vpMbEdgeTracker::display().

template<class PolygonType = vpMbtPolygon>
vp_deprecated bool vpMbHiddenFaces< PolygonType >::getDepthTest ( )
inline
Deprecated:
This method is deprecated since it is no more used since ViSP 2.7.2.

Get the depthTest value.

Returns
true if all the points of a polygon has to be in front of the camera, false otherwise.

Definition at line 207 of file vpMbHiddenFaces.h.

template<class PolygonType = vpMbtPolygon>
unsigned int vpMbHiddenFaces< PolygonType >::getNbVisiblePolygon ( ) const
inline

get the number of visible polygons.

Returns
number of visible polygons.

Definition at line 122 of file vpMbHiddenFaces.h.

template<class PolygonType = vpMbtPolygon>
vpAROgre* vpMbHiddenFaces< PolygonType >::getOgreContext ( )
inline
template<class PolygonType = vpMbtPolygon>
std::vector<PolygonType*>& vpMbHiddenFaces< PolygonType >::getPolygon ( )
inline

Get the list of polygons.

Returns
Mbt Klt polygons list.

Definition at line 111 of file vpMbHiddenFaces.h.

Referenced by vpMbTracker::addPolygon(), vpMbTracker::extractFaces(), vpMbTracker::extractLines(), and vpMbTracker::loadCAOModel().

template<class PolygonType >
void vpMbHiddenFaces< PolygonType >::initOgre ( const vpCameraParameters cam = vpCameraParameters())

Initialise the ogre context for face visibility tests.

Parameters
cam: Camera parameters.

Definition at line 549 of file vpMbHiddenFaces.h.

References vpAROgre::getSceneManager(), vpAROgre::init(), and vpAROgre::setCameraParameters().

Referenced by vpMbKltTracker::init(), and vpMbEdgeTracker::init().

template<class PolygonType = vpMbtPolygon>
bool vpMbHiddenFaces< PolygonType >::isAppearing ( const unsigned int  i)
inline
template<class PolygonType = vpMbtPolygon>
bool vpMbHiddenFaces< PolygonType >::isOgreInitialised ( )
inline

Tell whether if Ogre Context is initialised or not.

Returns
True if it does, false otherwise.

Definition at line 142 of file vpMbHiddenFaces.h.

Referenced by vpMbKltTracker::init(), and vpMbEdgeTracker::init().

template<class PolygonType = vpMbtPolygon>
bool vpMbHiddenFaces< PolygonType >::isVisible ( const unsigned int  i)
inline

Check if the polygon at position i in the list is visible.

Parameters
i: TPosition in the list.
Returns
Return true if the polygon is visible.

Definition at line 152 of file vpMbHiddenFaces.h.

Referenced by vpMbEdgeTracker::initMovingEdge().

template<class PolygonType >
bool vpMbHiddenFaces< PolygonType >::isVisibleOgre ( const vpTranslationVector cameraPos,
const unsigned int &  index 
)

Test the visibility of a polygon through Ogre3D via RayCasting.

Parameters
cameraPos: Position of the camera in the 3D world.
index: Index of the polygon.
Returns
Return true if the polygon is visible, False otherwise.

Definition at line 641 of file vpMbHiddenFaces.h.

References vpAROgre::getCamera(), and vpAROgre::getSceneManager().

template<class PolygonType = vpMbtPolygon>
PolygonType* vpMbHiddenFaces< PolygonType >::operator[] ( const unsigned int  i)
inline

operator[] as modifier.

Definition at line 159 of file vpMbHiddenFaces.h.

template<class PolygonType = vpMbtPolygon>
const PolygonType* vpMbHiddenFaces< PolygonType >::operator[] ( const unsigned int  i) const
inline

operator[] as reader.

Definition at line 161 of file vpMbHiddenFaces.h.

template<class PolygonType >
void vpMbHiddenFaces< PolygonType >::reset ( )

Reset the Hidden faces (remove the list of PolygonType)

Definition at line 299 of file vpMbHiddenFaces.h.

References vpAROgre::setShowConfigDialog().

Referenced by vpMbKltTracker::reInitModel(), vpMbEdgeTracker::reInitModel(), vpMbKltTracker::resetTracker(), and vpMbEdgeTracker::resetTracker().

template<class PolygonType = vpMbtPolygon>
void vpMbHiddenFaces< PolygonType >::setBackgroundSizeOgre ( const unsigned int &  h,
const unsigned int &  w 
)
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.

Warning
This function has to be called before initOgre().
Parameters
h: Height of the background
w: Width of the background

Definition at line 175 of file vpMbHiddenFaces.h.

Referenced by vpMbKltTracker::init(), and vpMbEdgeTracker::init().

template<class PolygonType = vpMbtPolygon>
vp_deprecated void vpMbHiddenFaces< PolygonType >::setDepthTest ( const bool &  d)
inline
Deprecated:
This method is deprecated since it is no more used since ViSP 2.7.2.

Set the depthTest value.

Parameters
d: New value.

Definition at line 215 of file vpMbHiddenFaces.h.

template<class PolygonType >
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.

Parameters
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
Returns
Return the number of visible polygons

Definition at line 500 of file vpMbHiddenFaces.h.

Referenced by vpMbKltTracker::init(), vpMbKltTracker::postTracking(), vpMbKltTracker::setPose(), and vpMbEdgeTracker::visibleFace().

template<class PolygonType >
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.

Parameters
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
Returns
Return the number of visible polygons

Definition at line 519 of file vpMbHiddenFaces.h.

template<class PolygonType >
unsigned int vpMbHiddenFaces< PolygonType >::setVisible ( const vpHomogeneousMatrix cMo,
const double &  angleAppears,
const double &  angleDisappears,
bool &  changed 
)

Compute the number of visible polygons.

Parameters
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
Returns
Return the number of visible polygons

Definition at line 536 of file vpMbHiddenFaces.h.

template<class PolygonType >
unsigned int vpMbHiddenFaces< PolygonType >::setVisible ( const vpHomogeneousMatrix cMo)
Deprecated:
This method is deprecated since it is no more used since ViSP 2.7.2.

Compute the number of visible polygons.

Parameters
cMo: The pose of the camera
Returns
Return the number of visible polygons

Definition at line 732 of file vpMbHiddenFaces.h.

template<class PolygonType >
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.

Parameters
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
Returns
Return the number of visible polygons

Definition at line 609 of file vpMbHiddenFaces.h.

Referenced by vpMbKltTracker::init(), vpMbKltTracker::postTracking(), vpMbKltTracker::setPose(), and vpMbEdgeTracker::visibleFace().

template<class PolygonType >
unsigned int vpMbHiddenFaces< PolygonType >::setVisibleOgre ( const vpHomogeneousMatrix cMo,
const double &  angleAppears,
const double &  angleDisappears,
bool &  changed 
)

Compute the number of visible polygons through Ogre3D.

Parameters
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
Returns
Return the number of visible polygons

Definition at line 626 of file vpMbHiddenFaces.h.

template<class PolygonType = vpMbtPolygon>
unsigned int vpMbHiddenFaces< PolygonType >::size ( ) const
inline

Member Data Documentation

template<class PolygonType = vpMbtPolygon>
bool vpMbHiddenFaces< PolygonType >::depthTest

Boolean specifying if a polygon has to be entirely in front of the camera or not.

Definition at line 195 of file vpMbHiddenFaces.h.

Referenced by vpMbHiddenFaces< vpMbtPolygon >::getDepthTest().