Visual Servoing Platform  version 3.3.0 under development (2020-02-17)
vpSphere Class Reference

#include <visp3/core/vpSphere.h>

+ Inheritance diagram for vpSphere:

Public Types

enum  vpForwardProjectionDeallocatorType { user, vpDisplayForwardProjection }
 

Public Member Functions

void init ()
 
 vpSphere ()
 
virtual ~vpSphere ()
 
 vpSphere (const vpColVector &oP)
 
 vpSphere (double X0, double Y0, double Z0, double R)
 
void setWorldCoordinates (const vpColVector &oP)
 
void setWorldCoordinates (double X0, double Y0, double Z0, double R)
 
double get_x () const
 
double get_y () const
 
double get_mu20 () const
 
double get_mu11 () const
 
double get_mu02 () 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, unsigned int thickness=1)
 
void display (const vpImage< unsigned char > &I, const vpHomogeneousMatrix &cMo, const vpCameraParameters &cam, const vpColor &color=vpColor::green, unsigned int thickness=1)
 
vpSphereduplicate () 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

Class that defines what is a sphere.

Forward projection of a sphere.

Examples:
manGeometricFeatures.cpp, servoSimuSphere.cpp, servoSimuSphere2DCamVelocity.cpp, servoSimuSphere2DCamVelocityDisplay.cpp, and servoSimuSphere2DCamVelocityDisplaySecondaryTask.cpp.

Definition at line 60 of file vpSphere.h.

Member Enumeration Documentation

◆ vpForwardProjectionDeallocatorType

Used for memory issue especially in the vpServo class.

Enumerator
user 
vpDisplayForwardProjection 

Definition at line 211 of file vpForwardProjection.h.

Constructor & Destructor Documentation

◆ vpSphere() [1/3]

vpSphere::vpSphere ( )

Definition at line 61 of file vpSphere.cpp.

References init().

Referenced by duplicate().

◆ ~vpSphere()

vpSphere::~vpSphere ( )
virtual

Definition at line 75 of file vpSphere.cpp.

◆ vpSphere() [2/3]

vpSphere::vpSphere ( const vpColVector oP)
explicit

Definition at line 63 of file vpSphere.cpp.

References init(), and setWorldCoordinates().

◆ vpSphere() [3/3]

vpSphere::vpSphere ( double  X0,
double  Y0,
double  Z0,
double  R 
)

Definition at line 69 of file vpSphere.cpp.

References init(), and setWorldCoordinates().

Member Function Documentation

◆ changeFrame() [1/2]

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

Perspective projection of the circle.

Implements vpForwardProjection.

Definition at line 147 of file vpSphere.cpp.

References vpForwardProjection::oP.

Referenced by changeFrame(), and display().

◆ changeFrame() [2/2]

void vpSphere::changeFrame ( const vpHomogeneousMatrix cMo)
virtual

perspective projection of the circle

Implements vpForwardProjection.

Definition at line 144 of file vpSphere.cpp.

References changeFrame(), and vpTracker::cP.

◆ display() [1/2]

void vpSphere::display ( const vpImage< unsigned char > &  I,
const vpCameraParameters cam,
const vpColor color = vpColor::green,
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 179 of file vpSphere.cpp.

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

◆ display() [2/2]

void vpSphere::display ( const vpImage< unsigned char > &  I,
const vpHomogeneousMatrix cMo,
const vpCameraParameters cam,
const vpColor color = vpColor::green,
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 170 of file vpSphere.cpp.

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

◆ duplicate()

vpSphere * vpSphere::duplicate ( ) const
virtual

for memory issue (used by the vpServo class only)

Implements vpForwardProjection.

Definition at line 163 of file vpSphere.cpp.

References vpSphere().

◆ get_mu02()

double vpSphere::get_mu02 ( ) const
inline
Examples:
servoSimuSphere.cpp.

Definition at line 78 of file vpSphere.h.

◆ get_mu11()

double vpSphere::get_mu11 ( ) const
inline
Examples:
servoSimuSphere.cpp.

Definition at line 77 of file vpSphere.h.

◆ get_mu20()

double vpSphere::get_mu20 ( ) const
inline
Examples:
servoSimuSphere.cpp.

Definition at line 76 of file vpSphere.h.

◆ get_x()

double vpSphere::get_x ( ) const
inline
Examples:
servoSimuSphere.cpp.

Definition at line 74 of file vpSphere.h.

◆ get_y()

double vpSphere::get_y ( ) const
inline
Examples:
servoSimuSphere.cpp.

Definition at line 75 of file vpSphere.h.

◆ getDeallocate()

vpForwardProjectionDeallocatorType vpForwardProjection::getDeallocate ( )
inlineinherited

Definition at line 220 of file vpForwardProjection.h.

◆ getR()

◆ getX()

double vpSphere::getX ( ) const
inline

Definition at line 80 of file vpSphere.h.

◆ getY()

double vpSphere::getY ( ) const
inline

Definition at line 81 of file vpSphere.h.

◆ getZ()

double vpSphere::getZ ( ) const
inline

Definition at line 82 of file vpSphere.h.

◆ init()

void vpSphere::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 42 of file vpSphere.cpp.

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

Referenced by vpSphere().

◆ print()

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, and servoSimuSquareLine2DCamVelocityDisplay.cpp.

Definition at line 53 of file vpForwardProjection.cpp.

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

◆ project() [1/2]

◆ project() [2/2]

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 84 of file vpForwardProjection.cpp.

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

◆ projection() [1/2]

void vpSphere::projection ( )
virtual

perspective projection of the sphere

Implements vpForwardProjection.

Definition at line 78 of file vpSphere.cpp.

References vpTracker::cP, and vpTracker::p.

Referenced by display().

◆ projection() [2/2]

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

Perspective projection of the circle.

Implements vpForwardProjection.

Definition at line 81 of file vpSphere.cpp.

References vpERROR_TRACE.

◆ setDeallocate()

void vpForwardProjection::setDeallocate ( vpForwardProjectionDeallocatorType  d)
inlineinherited

Definition at line 219 of file vpForwardProjection.h.

◆ setWorldCoordinates() [1/2]

void vpSphere::setWorldCoordinates ( const vpColVector oP)
virtual

Sets the parameters which define the feature in the object frame.

Parameters
oP: Feature parameters expressed in the object frame used to set the vpForwardProjection::oP public attribute.

Implements vpForwardProjection.

Examples:
manGeometricFeatures.cpp, servoSimuSphere2DCamVelocity.cpp, servoSimuSphere2DCamVelocityDisplay.cpp, and servoSimuSphere2DCamVelocityDisplaySecondaryTask.cpp.

Definition at line 51 of file vpSphere.cpp.

References vpForwardProjection::oP.

Referenced by vpSphere().

◆ setWorldCoordinates() [2/2]

void vpSphere::setWorldCoordinates ( double  X0,
double  Y0,
double  Z0,
double  R 
)

Definition at line 53 of file vpSphere.cpp.

References vpForwardProjection::oP.

◆ track()

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:
mbot-apriltag-ibvs.cpp, servoBebop2.cpp, servoMomentPoints.cpp, servoMomentPolygon.cpp, servoSimu4Points.cpp, servoSimuAfma6FourPoints2DCamVelocity.cpp, servoSimuCircle2DCamVelocity.cpp, servoSimuCircle2DCamVelocityDisplay.cpp, servoSimuFourPoints2DCamVelocity.cpp, servoSimuFourPoints2DCamVelocityDisplay.cpp, servoSimuFourPoints2DPolarCamVelocityDisplay.cpp, servoSimuLine2DCamVelocityDisplay.cpp, servoSimuSphere.cpp, servoSimuSphere2DCamVelocity.cpp, servoSimuSphere2DCamVelocityDisplay.cpp, servoSimuSphere2DCamVelocityDisplaySecondaryTask.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 111 of file vpForwardProjection.cpp.

References vpForwardProjection::project(), and vpERROR_TRACE.

Referenced by vpPoseFeatures::addFeatureSegment(), vpPose::computeResidual(), vpProjectionDisplay::displayCamera(), ImageDisplay(withContext)::displayFrameWithContext:::::, vpImageDraw::drawFrame(), vpPose::poseVirtualVS(), vpPose::poseVirtualVSrobust(), vpWireFrameSimulator::projectCameraTrajectory(), vpSimulatorAfma6::updateArticularPosition(), and vpSimulatorViper850::updateArticularPosition().

Member Data Documentation

◆ cP

◆ cPAvailable

bool vpTracker::cPAvailable
inherited

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

Definition at line 81 of file vpTracker.h.

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

◆ oP

◆ p