ViSP  2.9.0

#include <vpCircle.h>

+ Inheritance diagram for vpCircle:

Public Types

enum  vpLineCircleType { line1, line2 }
 
enum  vpForwardProjectionDeallocatorType { user, vpDisplayForwardProjection }
 

Public Member Functions

void init ()
 
 vpCircle ()
 
virtual ~vpCircle ()
 
 vpCircle (const vpColVector &oP)
 
 vpCircle (const double A, const double B1, const double C, const double X0, const double Y0, const double Z0, const double R)
 
void setWorldCoordinates (const vpColVector &oP)
 
void setWorldCoordinates (const double A, const double B1, const double C, const double X0, const double Y0, const double Z0, const double R)
 
double getA () const
 
double getB () const
 
double getC () const
 
double getX () const
 
double getY () const
 
double getZ () const
 
double getR () const
 
void projection ()
 
void projection (const vpColVector &cP, vpColVector &p)
 
void changeFrame (const vpHomogeneousMatrix &cMo, vpColVector &cP)
 
void changeFrame (const vpHomogeneousMatrix &cMo)
 
void display (const vpImage< unsigned char > &I, const vpCameraParameters &cam, const vpColor &color=vpColor::green, const unsigned int thickness=1)
 
void display (const vpImage< unsigned char > &I, const vpHomogeneousMatrix &cMo, const vpCameraParameters &cam, const vpColor &color=vpColor::green, const unsigned int thickness=1)
 
vpCircleduplicate () const
 
void project ()
 
void project (const vpHomogeneousMatrix &cMo)
 
void track (const vpHomogeneousMatrix &cMo)
 
virtual void print () const
 
void setDeallocate (vpForwardProjectionDeallocatorType d)
 
vpForwardProjectionDeallocatorType getDeallocate ()
 

Public Attributes

vpColVector oP
 
vpColVector p
 
vpColVector cP
 
bool cPAvailable
 

Detailed Description

Member Enumeration Documentation

Used for memory issue especially in the vpServo class.

Enumerator
user 
vpDisplayForwardProjection 

Definition at line 219 of file vpForwardProjection.h.

Enumerator
line1 
line2 

Definition at line 69 of file vpCircle.h.

Constructor & Destructor Documentation

vpCircle::vpCircle ( )

Definition at line 101 of file vpCircle.cpp.

References init().

Referenced by duplicate().

vpCircle::~vpCircle ( )
virtual

Definition at line 146 of file vpCircle.cpp.

vpCircle::vpCircle ( const vpColVector oP_)

Construct the circle from the intersection of a plane and a sphere.

Parameters
oP_: oP[0], oP[1], oP[2] correspond to A, B, C from the plane equation Ax + By + Cz = 0. oP[3], oP[4], oP[5] correspond to X, Y, Z the coordinates of the center of the sphere. oP[6] corresponds to the radius of the sphere.
See also
setWorldCoordinates()

Definition at line 115 of file vpCircle.cpp.

References init(), and setWorldCoordinates().

vpCircle::vpCircle ( const double  A,
const double  B,
const double  C,
const double  X0,
const double  Y0,
const double  Z0,
const double  R 
)

Construct the circle from the intersection of a plane and a sphere.

Parameters
A: A from the plane equation Ax + By + Cz = 0.
B: A from the plane equation Ax + By + Cz = 0.
C: A from the plane equation Ax + By + Cz = 0.
X0: X Coordinate of the center of the sphere.
Y0: Y Coordinate of the center of the sphere.
Z0: Z Coordinate of the center of the sphere.
R: Radius of the sphere.
See also
setWorldCoordinates()

Definition at line 134 of file vpCircle.cpp.

References init(), and setWorldCoordinates().

Member Function Documentation

void vpCircle::changeFrame ( const vpHomogeneousMatrix cMo,
vpColVector cP 
)
virtual
void vpCircle::changeFrame ( const vpHomogeneousMatrix cMo)
virtual

perspective projection of the circle

Implements vpForwardProjection.

Definition at line 281 of file vpCircle.cpp.

References vpTracker::cP, and vpForwardProjection::oP.

void vpCircle::display ( const vpImage< unsigned char > &  I,
const vpCameraParameters cam,
const vpColor color = vpColor::green,
const unsigned int  thickness = 1 
)
virtual

Displays the feature in the image I thanks to the 2D feature parameters in the image plane (vpTracker::p) and the camera parameters which enable to convert the features from meter to pixel.

Parameters
I: The image where the feature must be displayed in overlay.
cam: The camera parameters to enable the conversion from meter to pixel.
color: The desired color to display the line in the image.
thickness: Thickness of the feature representation.

Implements vpForwardProjection.

Examples:
manGeometricFeatures.cpp.

Definition at line 309 of file vpCircle.cpp.

References vpFeatureDisplay::displayEllipse(), and vpTracker::p.

void vpCircle::display ( const vpImage< unsigned char > &  I,
const vpHomogeneousMatrix cMo,
const vpCameraParameters cam,
const vpColor color = vpColor::green,
const unsigned int  thickness = 1 
)
virtual

Displays the feature in the image I thanks to the features in the object frame (vpForwardProjection::oP), the homogeneous matrix relative to the pose between the object frame and the camera frame and the camera parameters which enable to convert the features from meter to pixel.

Parameters
I: The image where the line must be displayed in overlay.
cMo: The homogeneous matrix corresponding to the pose between the camera frame and the object frame.
cam: The camera parameters to enable the conversion from meter to pixel.
color: The desired color to display the line in the image.
thickness: Thickness of the feature representation.

Implements vpForwardProjection.

Definition at line 319 of file vpCircle.cpp.

References changeFrame(), vpFeatureDisplay::displayEllipse(), and projection().

vpCircle * vpCircle::duplicate ( ) const
virtual

for memory issue (used by the vpServo class only)

Implements vpForwardProjection.

Definition at line 333 of file vpCircle.cpp.

References vpCircle().

double vpCircle::getA ( ) const
inline

Definition at line 91 of file vpCircle.h.

double vpCircle::getB ( ) const
inline

Definition at line 92 of file vpCircle.h.

double vpCircle::getC ( ) const
inline

Definition at line 93 of file vpCircle.h.

vpForwardProjectionDeallocatorType vpForwardProjection::getDeallocate ( )
inlineinherited

Definition at line 231 of file vpForwardProjection.h.

double vpCircle::getR ( ) const
inline

Definition at line 99 of file vpCircle.h.

double vpCircle::getX ( ) const
inline

Definition at line 95 of file vpCircle.h.

double vpCircle::getY ( ) const
inline

Definition at line 96 of file vpCircle.h.

double vpCircle::getZ ( ) const
inline

Definition at line 97 of file vpCircle.h.

void vpCircle::init ( )
virtual

Default initialisation of the feature parameters:

  • in the object frame: oP
  • in the camera frame: cP
  • in the image plane: p.

Implements vpForwardProjection.

Definition at line 48 of file vpCircle.cpp.

References vpTracker::cP, vpForwardProjection::oP, vpTracker::p, and vpColVector::resize().

Referenced by vpCircle().

void vpForwardProjection::print ( ) const
virtualinherited

Print to stdout the feature parameters in:

  • the object frame
  • the camera frame
  • the image plane.
Examples:
servoSimuCircle2DCamVelocityDisplay.cpp, servoSimuLine2DCamVelocityDisplay.cpp, servoSimuSquareLine2DCamVelocityDisplay.cpp, and testPoseRansac.cpp.

Definition at line 63 of file vpForwardProjection.cpp.

References vpTracker::cP, vpForwardProjection::oP, vpTracker::p, and vpColVector::t().

void vpForwardProjection::project ( const vpHomogeneousMatrix cMo)
inherited

Compute the feature parameters in the camera frame (vpTracker::cP) and than compute the projection of these parameters in the image plane (vpTracker::p).

Warning
The feature parameters in the object frame (vpForwardProjection:oP) need to be set prior the use of this method. To initialize these parameters see setWorldCoordinates().
Parameters
cMo: The homogeneous matrix corresponding to the pose between the camera frame and the object frame.

Definition at line 99 of file vpForwardProjection.cpp.

References vpForwardProjection::changeFrame(), vpForwardProjection::projection(), and vpERROR_TRACE.

void vpCircle::projection ( )
virtual
void vpCircle::projection ( const vpColVector cP,
vpColVector p 
)
virtual

Perspective projection of the circle.

Implements vpForwardProjection.

Definition at line 162 of file vpCircle.cpp.

References vpException::divideByZeroError, vpMath::sqr(), and vpERROR_TRACE.

void vpForwardProjection::setDeallocate ( vpForwardProjectionDeallocatorType  d)
inlineinherited

Definition at line 230 of file vpForwardProjection.h.

void vpCircle::setWorldCoordinates ( const vpColVector oP_)
virtual

Set the world coordinates of the circle from the intersection of a plane and a sphere. We mean here the coordinates of the circle in the object frame

Parameters
oP_: oP[0], oP[1], oP[2] correspond to A, B, C from the plane equation Ax + By + Cz = 0. oP[3], oP[4], oP[5] correspond to X, Y, Z the coordinates of the center of the sphere. oP[6] corresponds to the radius of the sphere.

Implements vpForwardProjection.

Examples:
manGeometricFeatures.cpp, servoSimuCircle2DCamVelocity.cpp, servoSimuCircle2DCamVelocityDisplay.cpp, simulateCircle2DCamVelocity.cpp, and testPoseFeatures.cpp.

Definition at line 66 of file vpCircle.cpp.

References vpForwardProjection::oP.

Referenced by vpMbtDistanceCylinder::buildFrom(), and vpCircle().

void vpCircle::setWorldCoordinates ( const double  A,
const double  B,
const double  C,
const double  X0,
const double  Y0,
const double  Z0,
const double  R 
)

Set the world coordinates of the circle from the intersection of a plane and a sphere. We mean here the coordinates of the circle in the object frame

Parameters
A: A from the plane equation Ax + By + Cz = 0.
B: A from the plane equation Ax + By + Cz = 0.
C: A from the plane equation Ax + By + Cz = 0.
X0: X Coordinate of the center of the sphere.
Y0: Y Coordinate of the center of the sphere.
Z0: Z Coordinate of the center of the sphere.
R: Radius of the sphere.

Definition at line 84 of file vpCircle.cpp.

References vpForwardProjection::oP.

void vpForwardProjection::track ( const vpHomogeneousMatrix cMo)
inherited

Track the feature parameters in the camera frame (vpTracker::cP) and than compute the projection of these parameters in the image plane (vpTracker::p).

This method is similar to project(const vpHomogeneousMatrix &).

Warning
The feature parameters in the object frame (vpForwardProjection:oP) need to be set prior the use of this method. To initialize these parameters see setWorldCoordinates().
Parameters
cMo: The homogeneous matrix corresponding to the pose between the camera frame and the object frame.
Examples:
manServoMomentsSimple.cpp, servoMomentPoints.cpp, servoMomentPolygon.cpp, servoSimu4Points.cpp, servoSimuAfma6FourPoints2DCamVelocity.cpp, servoSimuCircle2DCamVelocity.cpp, servoSimuCircle2DCamVelocityDisplay.cpp, servoSimuFourPoints2DCamVelocity.cpp, servoSimuFourPoints2DCamVelocityDisplay.cpp, servoSimuFourPoints2DPolarCamVelocityDisplay.cpp, servoSimuLine2DCamVelocityDisplay.cpp, servoSimuPoint2DCamVelocity1.cpp, servoSimuPoint2DCamVelocity2.cpp, servoSimuPoint2DCamVelocity3.cpp, servoSimuPoint2DhalfCamVelocity1.cpp, servoSimuPoint2DhalfCamVelocity2.cpp, servoSimuPoint2DhalfCamVelocity3.cpp, servoSimuPoint3DCamVelocity.cpp, servoSimuSphere.cpp, servoSimuSphere2DCamVelocity.cpp, servoSimuSphere2DCamVelocitySecondaryTask.cpp, servoSimuSquareLine2DCamVelocityDisplay.cpp, servoSimuViper850FourPoints2DCamVelocity.cpp, simulateCircle2DCamVelocity.cpp, simulateFourPoints2DCartesianCamVelocity.cpp, simulateFourPoints2DPolarCamVelocity.cpp, tutorial-ibvs-4pts-ogre.cpp, tutorial-ibvs-4pts-plotter-continuous-gain-adaptive.cpp, tutorial-ibvs-4pts-plotter-gain-adaptive.cpp, tutorial-ibvs-4pts-plotter.cpp, tutorial-ibvs-4pts.cpp, tutorial-simu-pioneer-continuous-gain-adaptive.cpp, tutorial-simu-pioneer-continuous-gain-constant.cpp, tutorial-simu-pioneer-pan.cpp, and tutorial-simu-pioneer.cpp.

Definition at line 130 of file vpForwardProjection.cpp.

References vpForwardProjection::project(), and vpERROR_TRACE.

Referenced by vpPose::computeResidual(), vpProjectionDisplay::displayCamera(), vpDisplay::displayFrame(), vpPose::poseRansac(), vpPose::poseVirtualVS(), vpPose::poseVirtualVSrobust(), vpWireFrameSimulator::projectCameraTrajectory(), vpImageSimulator::setCameraPosition(), vpSimulatorAfma6::updateArticularPosition(), and vpSimulatorViper850::updateArticularPosition().

Member Data Documentation

bool vpTracker::cPAvailable
inherited

Flag used to indicate if the feature parameters cP expressed in the camera frame are available.

Definition at line 88 of file vpTracker.h.

Referenced by vpTracker::init(), vpTracker::operator=(), and vpPoint::operator=().