ViSP
2.9.0
|
#include <vpCircle.h>
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) |
vpCircle * | duplicate () 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 |
Class that defines what is a circle.
Definition at line 61 of file vpCircle.h.
|
inherited |
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.
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.
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. |
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.
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 134 of file vpCircle.cpp.
References init(), and setWorldCoordinates().
|
virtual |
perspective projection of the circle
Implements vpForwardProjection.
Definition at line 251 of file vpCircle.cpp.
References vpForwardProjection::oP.
Referenced by vpMbtDistanceCylinder::computeInteractionMatrixError(), display(), vpMbtDistanceCylinder::display(), vpMbtDistanceCylinder::initMovingEdge(), and vpMbtDistanceCylinder::updateMovingEdge().
|
virtual |
perspective projection of the circle
Implements vpForwardProjection.
Definition at line 281 of file vpCircle.cpp.
References vpTracker::cP, and vpForwardProjection::oP.
|
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.
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.
Definition at line 309 of file vpCircle.cpp.
References vpFeatureDisplay::displayEllipse(), and vpTracker::p.
|
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.
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().
|
virtual |
for memory issue (used by the vpServo class only)
Implements vpForwardProjection.
Definition at line 333 of file vpCircle.cpp.
References vpCircle().
|
inline |
Definition at line 91 of file vpCircle.h.
|
inline |
Definition at line 92 of file vpCircle.h.
|
inline |
Definition at line 93 of file vpCircle.h.
|
inlineinherited |
Definition at line 231 of file vpForwardProjection.h.
|
inline |
Definition at line 99 of file vpCircle.h.
|
inline |
Definition at line 95 of file vpCircle.h.
|
inline |
Definition at line 96 of file vpCircle.h.
|
inline |
Definition at line 97 of file vpCircle.h.
|
virtual |
Default initialisation of the feature parameters:
Implements vpForwardProjection.
Definition at line 48 of file vpCircle.cpp.
References vpTracker::cP, vpForwardProjection::oP, vpTracker::p, and vpColVector::resize().
Referenced by vpCircle().
|
virtualinherited |
Print to stdout the feature parameters in:
Definition at line 63 of file vpForwardProjection.cpp.
References vpTracker::cP, vpForwardProjection::oP, vpTracker::p, and vpColVector::t().
|
inherited |
Compute the feature parameters in the image plane (vpTracker::p) from the parameters in the camera frame (vpTracker::cP).
Definition at line 79 of file vpForwardProjection.cpp.
References vpTracker::cP, vpTracker::p, and vpForwardProjection::projection().
Referenced by vpForwardProjection::track().
|
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).
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.
|
virtual |
perspective projection of the circle
Implements vpForwardProjection.
Definition at line 155 of file vpCircle.cpp.
References vpTracker::cP, and vpTracker::p.
Referenced by vpMbtDistanceCylinder::computeInteractionMatrixError(), display(), vpMbtDistanceCylinder::display(), vpMbtDistanceCylinder::initMovingEdge(), and vpMbtDistanceCylinder::updateMovingEdge().
|
virtual |
Perspective projection of the circle.
Implements vpForwardProjection.
Definition at line 162 of file vpCircle.cpp.
References vpException::divideByZeroError, vpMath::sqr(), and vpERROR_TRACE.
|
inlineinherited |
Definition at line 230 of file vpForwardProjection.h.
|
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
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.
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
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.
|
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 &).
cMo | : The homogeneous matrix corresponding to the pose between the camera frame and the object frame. |
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().
|
inherited |
Feature coordinates expressed in the camera frame cP.
Definition at line 82 of file vpTracker.h.
Referenced by vpFeaturePoint3D::buildFrom(), vpSphere::changeFrame(), changeFrame(), vpCylinder::changeFrame(), vpLine::changeFrame(), vpFeatureBuilder::create(), init(), vpSphere::init(), vpLine::init(), vpPoint::init(), vpCylinder::init(), vpTracker::operator=(), vpPoint::operator=(), vpForwardProjection::print(), vpPose::printPoint(), vpForwardProjection::project(), vpSphere::projection(), projection(), vpCylinder::projection(), and vpLine::projection().
|
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=().
|
inherited |
Feature coordinates expressed in the object frame, also called world frame.
Definition at line 77 of file vpForwardProjection.h.
Referenced by vpPoint::changeFrame(), vpSphere::changeFrame(), changeFrame(), vpCylinder::changeFrame(), vpLine::changeFrame(), vpPoint::getWorldCoordinates(), init(), vpSphere::init(), vpLine::init(), vpPoint::init(), vpCylinder::init(), vpPoint::operator=(), vpForwardProjection::print(), vpPose::printPoint(), vpSphere::setWorldCoordinates(), setWorldCoordinates(), vpLine::setWorldCoordinates(), vpCylinder::setWorldCoordinates(), and vpPoint::setWorldCoordinates().
|
inherited |
Feature coordinates expressed in the image plane p. They correspond to 2D normalized coordinates expressed in meters.
Definition at line 78 of file vpTracker.h.
Referenced by vpFeatureBuilder::create(), vpPoint::display(), vpSphere::display(), display(), vpCylinder::display(), vpProjectionDisplay::display(), vpLine::display(), vpProjectionDisplay::displayCamera(), vpDisplay::displayFrame(), vpPose::displayModel(), init(), vpSphere::init(), vpMeTracker::init(), vpLine::init(), vpPoint::init(), vpCylinder::init(), vpTracker::operator=(), vpPoint::operator=(), vpForwardProjection::print(), vpPose::printPoint(), vpForwardProjection::project(), vpSphere::projection(), projection(), vpCylinder::projection(), and vpLine::projection().