Visual Servoing Platform  version 3.4.0
vpGenericFeature Class Reference

#include <vpGenericFeature.h>

+ Inheritance diagram for vpGenericFeature:

Public Types

enum  { FEATURE_ALL = 0xffff }
 
enum  vpBasicFeatureDeallocatorType { user, vpServo }
 

Public Member Functions

 vpGenericFeature (unsigned int dim)
 
virtual ~vpGenericFeature ()
 
void display (const vpCameraParameters &cam, const vpImage< unsigned char > &I, const vpColor &color=vpColor::green, unsigned int thickness=1) const
 
void display (const vpCameraParameters &cam, const vpImage< vpRGBa > &I, const vpColor &color=vpColor::green, unsigned int thickness=1) const
 
vpGenericFeatureduplicate () const
 
vpColVector error (const vpBasicFeature &s_star, unsigned int select=FEATURE_ALL)
 
vpColVector error (unsigned int select=FEATURE_ALL)
 
vpMatrix getInteractionMatrix () const
 
void get_s (vpColVector &s) const
 
void get_s (double &s0) const
 
void get_s (double &s0, double &s1) const
 
void get_s (double &s0, double &s1, double &s2) const
 
void init ()
 
vpMatrix interaction (unsigned int select=FEATURE_ALL)
 
void print (unsigned int select=FEATURE_ALL) const
 
void setInteractionMatrix (const vpMatrix &L)
 
void setError (const vpColVector &error_vector)
 
void set_s (const vpColVector &s)
 
void set_s (const double s0)
 
void set_s (const double s0, const double s1)
 
void set_s (const double s0, const double s1, const double s2)
 
Inherited functionalities from vpBasicFeature
unsigned int dimension_s ()
 
vpColVector get_s (unsigned int select=FEATURE_ALL) const
 
vpBasicFeatureDeallocatorType getDeallocate ()
 
unsigned int getDimension (unsigned int select=FEATURE_ALL) const
 
virtual double operator[] (unsigned int i) const
 
void setDeallocate (vpBasicFeatureDeallocatorType d)
 
void setFlags ()
 

Static Public Member Functions

static unsigned int selectAll ()
 

Static Public Attributes

static const unsigned int FEATURE_LINE [32]
 

Protected Member Functions

void resetFlags ()
 

Protected Attributes

vpColVector s
 
unsigned int dim_s
 
bool * flags
 
unsigned int nbParameters
 
vpBasicFeatureDeallocatorType deallocate
 

Detailed Description

Class that enables to define a feature or a set of features which are not implemented in ViSP as a specific class. It is indeed possible to create its own features, to use the corresponding interaction matrix, and to compute an error between the current and the desired feature. Moreover the created features can be mixed with features already implemented.

The following example shows how to use the vpGenericFeature class to create and use the feature $ log(Z) $ where Z corresponds to the depth of a point whose 2D coordinates in the camera frame are $ x $ and $ y $. The interaction matrix corresponding to this feature is

\[ L = \left[\begin{array}{cccccc} 0 & 0 & -1/Z & -y & x & 0 \end{array}\right]\]

.

#include <visp3/core/vpGenericFeature.h>
#include <visp3/vs/vpServo.h>
int main()
{
vpServo task; // Visual servoing task
//First we have to define the desired feature log(Z*) corresponding to the desired point.
double xd = 0; //The x coordinate of the desired point.
double yd = 0; //The y coordinate of the desired point.
double Zd = 1; //The depth of the desired point.
vpGenericFeature logZd(1); //The dimension of the feature is 1.
logZd.set_s( log(Zd) );
//Then we have to define the current feature log(Z) corresponding to the current point.
double x = 1; //The x coordinate of the current point.
double y = 1; //The y coordinate of the current point.
double Z = 2; //The depth of the current point.
vpGenericFeature logZ(1); //The dimension of the feature is 1.
logZ.set_s( log(Z) );
// Set eye-in-hand control law.
// The computed velocities will be expressed in the camera frame
// Interaction matrix is computed with the current visual features sd
// Add the point feature to the task
task.addFeature(logZ, logZd);
// Control loop
for ( ; ; ) {
// The new parameters x, y and Z must be computed here.
// Update the current point visual feature
logZ.set_s( log(Z) ) ;
// We have to compute the interaction matrix corresponding to the feature.
vpMatrix LlogZ(1,6) ;
LlogZ[0][0] = LlogZ[0][1] = LlogZ[0][5] = 0 ;
LlogZ[0][2] = -1/Z;
LlogZ[0][3] = -y;
LlogZ[0][4] = x;
logZ.setInteractionMatrix(LlogZ) ;
// compute the control law
vpColVector v = task.computeControlLaw(); // camera velocity
}
return 0;
}

The second example shows how to create and use a feature whose specificity is to have a desired feature fixed to zero. It is the case for the feature $ log( \frac{Z}{Z^*}) $.

#include <visp3/core/vpGenericFeature.h>
#include <visp3/vs/vpServo.h>
int main()
{
vpServo task; // Visual servoing task
//First we have to define the desired feature log(Z*) corresponding to the desired point.
double xd = 0; //The x coordinate of the desired point.
double yd = 0; //The y coordinate of the desired point.
double Zd = 1; //The depth of the desired point.
//Then we have to define the current feature log(Z) corresponding to the current point.
double x = 1; //The x coordinate of the current point.
double y = 1; //The y coordinate of the current point.
double Z = 2; //The depth of the current point.
vpGenericFeature logZ(1); //The dimension of the feature is 1.
logZ.set_s( log(Z/Zd) );
// Set eye-in-hand control law.
// The computed velocities will be expressed in the camera frame
// Interaction matrix is computed with the current visual features sd
// Add the point feature to the task
task.addFeature(logZ);
// Control loop
for ( ; ; ) {
// The new parameters x, y and Z must be computed here.
// Update the current point visual feature
logZ.set_s( log(Z/Zd) ) ;
// We have to compute the interaction matrix corresponding to the feature.
vpMatrix LlogZ(1,6) ;
LlogZ[0][0] = LlogZ[0][1] = LlogZ[0][5] = 0 ;
LlogZ[0][2] = -1/Z;
LlogZ[0][3] = -y;
LlogZ[0][4] = x;
logZ.setInteractionMatrix(LlogZ) ;
// compute the control law
vpColVector v = task.computeControlLaw(); // camera velocity
}
return 0;
}

If the feature needs to be use with other features, the example servoSimuPoint2DhalfCamVelocity2.cpp shows how to do it.

Examples:
servoSimuPoint2DhalfCamVelocity2.cpp, and servoSimuSphere.cpp.

Definition at line 182 of file vpGenericFeature.h.

Member Enumeration Documentation

anonymous enum
inherited
Enumerator
FEATURE_ALL 

Definition at line 82 of file vpBasicFeature.h.

Indicates who should deallocate the feature.

Enumerator
user 
vpServo 

Definition at line 88 of file vpBasicFeature.h.

Constructor & Destructor Documentation

vpGenericFeature::vpGenericFeature ( unsigned int  dimension_gen_s)
explicit

Constructor of the class you have to use. The feature table is initilialized with the good dimension.

Parameters
dimension_gen_s: Dimension of the generic feature. It corresponds to the number of features you want to create.

Definition at line 87 of file vpGenericFeature.cpp.

References vpBasicFeature::dim_s, vpColVector::resize(), and vpBasicFeature::s.

vpGenericFeature::~vpGenericFeature ( )
virtual

Definition at line 54 of file vpGenericFeature.cpp.

Member Function Documentation

unsigned int vpBasicFeature::dimension_s ( )
inlineinherited

Return the dimension of the feature vector $\bf s$.

Definition at line 110 of file vpBasicFeature.h.

References vpColor::green.

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

Not implemented.

Implements vpBasicFeature.

Definition at line 627 of file vpGenericFeature.cpp.

References vpERROR_TRACE.

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

Not implemented.

Implements vpBasicFeature.

Definition at line 642 of file vpGenericFeature.cpp.

References vpERROR_TRACE.

vpGenericFeature * vpGenericFeature::duplicate ( ) const
virtual

Implements vpBasicFeature.

Definition at line 616 of file vpGenericFeature.cpp.

References vpBasicFeature::dim_s, and vpTRACE.

vpColVector vpGenericFeature::error ( const vpBasicFeature s_star,
unsigned int  select = FEATURE_ALL 
)
virtual

Compute the error $ (s-s^*)$ between the current and the desired visual features from a subset of the possible features.

Exceptions
iferrorHasBeenInitialized is true (that is if vpGenericFeature::setError have been used) then s_star is useless. In that since the error HAS TO BE recomputed at each iteration errorHasBeenInitialized is set to errHasToBeUpdated if vpGenericFeature::serError is not used in the loop then an exception is thrown

obviously if vpGenericFeature::setError is not used then s_star is considered and this warning is meaningless.

Parameters
s_star: Desired visual feature.
select: The error can be computed for a selection of a subset of the possible features.
  • To compute the error for all the features use vpBasicFeature::FEATURE_ALL. In that case the error vector column vector whose dimension is equal to the number of features.
  • To compute the error for only one of the component feature you have to say which one you want to take into account. If it is the first one set select to vpBasicFeature::FEATURE_LINE[0], if it is the second one set select to vpBasicFeature::FEATURE_LINE[1], and so on. In that case the error vector is a 1 dimension column vector.
  • To compute the error for only two of the component feature you have to say which ones you want to take into account. If it is the first one and the second one set select to vpBasicFeature::FEATURE_LINE[0] | vpBasicFeature::FEATURE_LINE[1]. In that case the error vector is a 2 dimension column vector.
Returns
The error $ (s-s^*)$ between the current and the desired visual feature.

The code below shows how to use this method to manipulate the two visual features over three:

// Creation of the current feature s
s.set_s(0, 0, 0);
// Creation of the desired feature s*
vpGenericFeature s_star(3);
s_star.set_s(1, 1, 1);
// Here you have to compute the interaction matrix L
s.setInteractionMatrix(L);
// Compute the error vector (s-s*) for the two first features

Reimplemented from vpBasicFeature.

Definition at line 169 of file vpGenericFeature.cpp.

References vpFeatureException::badErrorVectorError, vpBasicFeature::dim_s, vpBasicFeature::FEATURE_LINE, vpBasicFeature::get_s(), vpArray2D< Type >::getRows(), vpBasicFeature::s, vpFeatureException::sizeMismatchError, vpColVector::stack(), vpDEBUG_TRACE, and vpERROR_TRACE.

vpColVector vpGenericFeature::error ( unsigned int  select = FEATURE_ALL)

Compute the error $ (s-s^*)$ between the current and the desired visual features from a subset of the possible features. But in this case the desired feature is considered as set to 0.

Parameters
select: The error can be computed for a selection of a subset of the possible features.
  • To compute the error for all the features use vpBasicFeature::FEATURE_ALL. In that case the error vector column vector whose dimension is equal to the number of features.
  • To compute the error for only one of the component feature you have to say which one you want to take into account. If it is the first one set select to vpBasicFeature::FEATURE_LINE[0], if it is the second one set select to vpBasicFeature::FEATURE_LINE[1], and so on. In that case the error vector is a 1 dimension column vector.
  • To compute the error for only two of the component feature you have to say which ones you want to take into account. If it is the first one and the second one set select to vpBasicFeature::FEATURE_LINE[0] | vpBasicFeature::FEATURE_LINE[1]. In that case the error vector is a 2 dimension column vector.
Returns
The error $ (s-s^*)$ between the current and the desired visual feature which is automatically set to zero.

The code below shows how to use this method to manipulate the two visual features over three:

// Creation of the current feature s
s.set_s(0, 0, 0);
// Here you have to compute the interaction matrix L
s.setInteractionMatrix(L);
// Compute the error vector (s-s*) for the two first features

Definition at line 254 of file vpGenericFeature.cpp.

References vpFeatureException::badErrorVectorError, vpBasicFeature::dim_s, vpBasicFeature::FEATURE_LINE, vpBasicFeature::s, vpColVector::stack(), and vpERROR_TRACE.

void vpGenericFeature::get_s ( vpColVector s_vector) const

get the value of all the features.

Parameters
s_vector: It is a vector which will contain the value of the visual features.
Exceptions
anexception is thrown if the number of row of the vector s is different from the dimension of the visual feature as specified in the constructor
Examples:
servoSimuSphere.cpp.

Definition at line 426 of file vpGenericFeature.cpp.

References vpBasicFeature::dim_s, vpArray2D< Type >::getRows(), vpBasicFeature::s, vpFeatureException::sizeMismatchError, and vpERROR_TRACE.

void vpGenericFeature::get_s ( double &  s0) const

get the value of one feature if the number of feature is equal to 1.

Parameters
s0: value of the visual feature
Exceptions
anexception is thrown if the number of row of the vector s is different from the dimension of the visual feature as specified in the constructor

Definition at line 571 of file vpGenericFeature.cpp.

References vpBasicFeature::dim_s, vpBasicFeature::s, vpFeatureException::sizeMismatchError, and vpERROR_TRACE.

void vpGenericFeature::get_s ( double &  s0,
double &  s1 
) const

get the value of two features if the number of feature is equal to 2.

Parameters
s0: value of the first visual feature
s1: value of the second visual feature
Exceptions
anexception is thrown if the number of row of the vector s is different from the dimension of the visual feature as specified in the constructor

Definition at line 528 of file vpGenericFeature.cpp.

References vpBasicFeature::dim_s, vpBasicFeature::s, vpFeatureException::sizeMismatchError, and vpERROR_TRACE.

void vpGenericFeature::get_s ( double &  s0,
double &  s1,
double &  s2 
) const

get the value of three features if the number of feature is equal to 3.

Parameters
s0: value of the first visual feature
s1: value of the second visual feature
s2: value of the third visual feature
Exceptions
anexception is thrown if the number of row of the vector s is different from the dimension of the visual feature as specified in the constructor

Definition at line 479 of file vpGenericFeature.cpp.

References vpBasicFeature::dim_s, vpBasicFeature::s, vpFeatureException::sizeMismatchError, and vpERROR_TRACE.

vpBasicFeatureDeallocatorType vpBasicFeature::getDeallocate ( )
inlineinherited

Definition at line 123 of file vpBasicFeature.h.

unsigned int vpBasicFeature::getDimension ( unsigned int  select = FEATURE_ALL) const
inherited

Get the feature vector dimension.

Definition at line 100 of file vpBasicFeature.cpp.

References vpBasicFeature::dim_s, vpBasicFeature::FEATURE_LINE, vpArray2D< Type >::getRows(), and vpBasicFeature::s.

Referenced by vpFeatureMoment::vpFeatureMoment().

vpMatrix vpGenericFeature::getInteractionMatrix ( ) const
inline
void vpGenericFeature::init ( void  )
virtual

Implements vpBasicFeature.

Definition at line 56 of file vpGenericFeature.cpp.

References vpBasicFeature::s.

vpMatrix vpGenericFeature::interaction ( unsigned int  select = FEATURE_ALL)
virtual

Compute and return the interaction matrix $ L $ for the whole features or a part of them.

Parameters
select: Selection of a subset of the possible features.
  • To compute the interaction matrix for all the features use vpBasicFeature::FEATURE_ALL. In that case the dimension of the interaction matrix is $ [number of features \times 6] $
  • To compute the interaction matrix for only one of the component feature you have to say which one you want to take into account. If it is the first one set select to vpBasicFeature::FEATURE_LINE[0], if it is the second one set select to vpBasicFeature::FEATURE_LINE[1], and so on. In that case the returned interaction matrix is $ [1 \times 6] $ dimension.
  • To compute the interaction matrix for only two of the component features you have to say which ones you want to take into account. If it is the first one and the second one set select to vpBasicFeature::FEATURE_LINE[0] | vpBasicFeature::FEATURE_LINE[1]. In that case the returned interaction matrix is $ [2 \times 6] $ dimension.
Returns
The interaction matrix computed from the features.

The code below shows how to compute the interaction matrix associated to the first visual feature.

// Creation of the current feature s
s.set_s(0, 0, 0);
// Here you have to compute the interaction matrix L for all the three
features s.setInteractionMatrix(L);
vpMatrix L_x = s.interaction( vpBasicFeature::FEATURE_LINE[0] );

The code below shows how to compute the interaction matrix associated to two visual features over three.

// Creation of the current feature s
s.set_s(0, 0, 0);
// Here you have to compute the interaction matrix L
s.setInteractionMatrix(L);

Implements vpBasicFeature.

Definition at line 341 of file vpGenericFeature.cpp.

References vpBasicFeature::dim_s, vpBasicFeature::FEATURE_LINE, vpArray2D< Type >::getRows(), vpFeatureException::notInitializedError, vpArray2D< Type >::resize(), vpMatrix::stack(), and vpERROR_TRACE.

virtual double vpBasicFeature::operator[] ( unsigned int  i) const
inlinevirtualinherited

Return element i in the state vector (usage : x = s[i] )

Definition at line 130 of file vpBasicFeature.h.

void vpGenericFeature::print ( unsigned int  select = FEATURE_ALL) const
virtual

Print to stdout the values of the current visual feature $ s $.

Parameters
select: Selection of a subset of the possible features.
vpGenericFeature s; // Current visual feature s
// Creation of the current feature s
s.set_s(0, 0, 0);
s.print(); // print all components of the feature
s.print(vpBasicFeature::FEATURE_ALL); // same behavior then previous line
s.print(vpBasicFeature::FEATURE_LINE[0]); // print only the first component

Implements vpBasicFeature.

Definition at line 604 of file vpGenericFeature.cpp.

References vpBasicFeature::dim_s, vpBasicFeature::FEATURE_LINE, and vpBasicFeature::s.

static unsigned int vpBasicFeature::selectAll ( )
inlinestaticinherited

Select all the features.

Definition at line 142 of file vpBasicFeature.h.

void vpGenericFeature::set_s ( const vpColVector s_vector)

set the value of all the features.

Parameters
s_vector: It is a vector containing the value of the visual features.
Exceptions
anexception is thrown if the number of row of the vector s is different from the dimension of the visual feature as specified in the constructor
Examples:
servoSimuSphere.cpp.

Definition at line 404 of file vpGenericFeature.cpp.

References vpBasicFeature::dim_s, vpArray2D< Type >::getRows(), vpBasicFeature::s, vpFeatureException::sizeMismatchError, and vpERROR_TRACE.

void vpGenericFeature::set_s ( const double  s0)

set the value of one feature if the number of feature is equal to 1.

Parameters
s0: value of the visual feature
Exceptions
anexception is thrown if the number of row of the vector s is different from the dimension of the visual feature as specified in the constructor

Definition at line 550 of file vpGenericFeature.cpp.

References vpBasicFeature::dim_s, vpBasicFeature::s, vpFeatureException::sizeMismatchError, and vpERROR_TRACE.

void vpGenericFeature::set_s ( const double  s0,
const double  s1 
)

set the value of two features if the number of feature is equal to 2.

Parameters
s0: value of the first visual feature
s1: value of the second visual feature
Exceptions
anexception is thrown if the number of row of the vector s is different from the dimension of the visual feature as specified in the constructor

Definition at line 504 of file vpGenericFeature.cpp.

References vpBasicFeature::dim_s, vpBasicFeature::s, vpFeatureException::sizeMismatchError, and vpERROR_TRACE.

void vpGenericFeature::set_s ( const double  s0,
const double  s1,
const double  s2 
)

set the value of three features if the number of feature is equal to 3.

Parameters
s0: value of the first visual feature
s1: value of the second visual feature
s2: value of the third visual feature
Exceptions
anexception is thrown if the number of row of the vector s is different from the dimension of the visual feature as specified in the constructor

Definition at line 451 of file vpGenericFeature.cpp.

References vpBasicFeature::dim_s, vpBasicFeature::s, vpFeatureException::sizeMismatchError, and vpERROR_TRACE.

void vpBasicFeature::setDeallocate ( vpBasicFeatureDeallocatorType  d)
inlineinherited

Definition at line 137 of file vpBasicFeature.h.

Referenced by vpServo::addFeature().

void vpGenericFeature::setError ( const vpColVector error_vector)

Set the error vector $(s-s*)$.

Parameters
error_vector: Error vector $(s-s*)$.
Exceptions
vpFeatureException::sizeMismatchError: If the size of the error vector is bad.

Definition at line 102 of file vpGenericFeature.cpp.

References vpBasicFeature::dim_s, vpArray2D< Type >::getRows(), vpFeatureException::sizeMismatchError, and vpERROR_TRACE.

void vpBasicFeature::setFlags ( )
inherited

Set feature flags to true to prevent warning when re-computing the interaction matrix without having updated the feature.

Definition at line 141 of file vpBasicFeature.cpp.

References vpBasicFeature::flags, and vpBasicFeature::nbParameters.

void vpGenericFeature::setInteractionMatrix ( const vpMatrix L_)

set the value of the interaction matrix.

Parameters
L_: The matrix corresponding to the interaction matrix you computed.
Exceptions
anexception is thrown if the number of row of the interaction matrix is different from the dimension of the visual feature as specified in the constructor
Examples:
servoSimuSphere.cpp.

Definition at line 381 of file vpGenericFeature.cpp.

References vpBasicFeature::dim_s, vpArray2D< Type >::getRows(), vpFeatureException::sizeMismatchError, and vpERROR_TRACE.

Member Data Documentation

const unsigned int vpBasicFeature::FEATURE_LINE
staticinherited
Initial value:
= {
(unsigned int)(1 << 0), (unsigned int)(1 << 1), (unsigned int)(1 << 2), (unsigned int)(1 << 3),
(unsigned int)(1 << 4), (unsigned int)(1 << 5), (unsigned int)(1 << 6), (unsigned int)(1 << 7),
(unsigned int)(1 << 8), (unsigned int)(1 << 9), (unsigned int)(1 << 10), (unsigned int)(1 << 11),
(unsigned int)(1 << 12), (unsigned int)(1 << 13), (unsigned int)(1 << 14), (unsigned int)(1 << 15),
(unsigned int)(1 << 16), (unsigned int)(1 << 17), (unsigned int)(1 << 18), (unsigned int)(1 << 19),
(unsigned int)(1 << 20), (unsigned int)(1 << 21), (unsigned int)(1 << 22), (unsigned int)(1 << 23),
(unsigned int)(1 << 24), (unsigned int)(1 << 25), (unsigned int)(1 << 26), (unsigned int)(1 << 27),
(unsigned int)(1 << 28), (unsigned int)(1 << 29), (unsigned int)(1 << 30), (unsigned int)(1 << 31)}

Definition at line 80 of file vpBasicFeature.h.

Referenced by vpBasicFeature::error(), error(), vpBasicFeature::get_s(), vpBasicFeature::getDimension(), vpFeatureMoment::getDimension(), interaction(), vpFeatureMoment::interaction(), print(), vpFeatureMoment::print(), vpFeatureEllipse::select_n02(), vpFeatureEllipse::select_n11(), vpFeatureEllipse::select_n20(), vpFeatureVanishingPoint::selectAlpha(), vpFeatureSegment::selectAlpha(), vpFeatureVanishingPoint::selectAtanOneOverRho(), vpFeatureSegment::selectL(), vpFeatureEllipse::selectMu02(), vpFeatureEllipse::selectMu11(), vpFeatureEllipse::selectMu20(), vpFeatureVanishingPoint::selectOneOverRho(), vpFeatureLine::selectRho(), vpFeaturePointPolar::selectRho(), vpFeatureLine::selectTheta(), vpFeaturePointPolar::selectTheta(), vpFeatureThetaU::selectTUx(), vpFeatureThetaU::selectTUy(), vpFeatureThetaU::selectTUz(), vpFeatureTranslation::selectTx(), vpFeatureTranslation::selectTy(), vpFeatureTranslation::selectTz(), vpFeatureVanishingPoint::selectX(), vpFeatureEllipse::selectX(), vpFeaturePoint::selectX(), vpFeaturePoint3D::selectX(), vpFeatureSegment::selectXc(), vpFeatureVanishingPoint::selectY(), vpFeatureEllipse::selectY(), vpFeaturePoint::selectY(), vpFeaturePoint3D::selectY(), vpFeatureSegment::selectYc(), and vpFeaturePoint3D::selectZ().

bool* vpBasicFeature::flags
protectedinherited

Ensure that all the parameters needed to compute the iteraction matrix are set.

Definition at line 98 of file vpBasicFeature.h.

Referenced by vpFeatureEllipse::buildFrom(), vpFeatureDepth::buildFrom(), vpFeaturePoint::buildFrom(), vpFeatureLine::buildFrom(), vpFeaturePoint3D::buildFrom(), vpFeatureThetaU::buildFrom(), vpFeaturePointPolar::buildFrom(), vpFeatureTranslation::buildFrom(), vpFeatureMoment::duplicate(), vpFeatureVanishingPoint::init(), vpFeatureLuminance::init(), vpFeatureEllipse::init(), vpFeatureSegment::init(), vpFeatureDepth::init(), vpFeaturePoint::init(), vpFeatureMoment::init(), vpFeatureLine::init(), vpFeaturePoint3D::init(), vpFeatureThetaU::init(), vpFeaturePointPolar::init(), vpFeatureTranslation::init(), vpFeatureVanishingPoint::interaction(), vpFeatureEllipse::interaction(), vpFeatureSegment::interaction(), vpFeatureDepth::interaction(), vpFeaturePoint::interaction(), vpFeatureLine::interaction(), vpFeaturePoint3D::interaction(), vpFeatureThetaU::interaction(), vpFeaturePointPolar::interaction(), vpFeatureTranslation::interaction(), vpBasicFeature::operator=(), vpBasicFeature::resetFlags(), vpFeaturePointPolar::set_rho(), vpFeaturePointPolar::set_rhoThetaZ(), vpFeaturePointPolar::set_theta(), vpFeatureThetaU::set_TUx(), vpFeatureThetaU::set_TUy(), vpFeatureThetaU::set_TUz(), vpFeatureVanishingPoint::set_x(), vpFeatureEllipse::set_x(), vpFeatureDepth::set_x(), vpFeaturePoint::set_x(), vpFeaturePoint3D::set_X(), vpFeatureEllipse::set_xy(), vpFeaturePoint::set_xyZ(), vpFeaturePoint3D::set_XYZ(), vpFeatureDepth::set_xyZLogZoverZstar(), vpFeatureVanishingPoint::set_y(), vpFeatureEllipse::set_y(), vpFeatureDepth::set_y(), vpFeaturePoint::set_y(), vpFeaturePoint3D::set_Y(), vpFeatureLuminance::set_Z(), vpFeatureDepth::set_Z(), vpFeaturePoint::set_Z(), vpFeaturePoint3D::set_Z(), vpFeaturePointPolar::set_Z(), vpFeatureEllipse::setABC(), vpFeatureLine::setABCD(), vpFeatureVanishingPoint::setAlpha(), vpFeatureVanishingPoint::setAtanOneOverRho(), vpBasicFeature::setFlags(), vpFeatureEllipse::setMoments(), vpFeatureVanishingPoint::setOneOverRho(), vpFeatureLine::setRhoTheta(), vpFeatureMoment::update(), vpFeatureLuminance::vpFeatureLuminance(), and vpBasicFeature::~vpBasicFeature().

vpColVector vpBasicFeature::s
protectedinherited

State of the visual feature.

Definition at line 92 of file vpBasicFeature.h.

Referenced by vpFeatureEllipse::buildFrom(), vpFeatureLuminance::buildFrom(), vpFeatureDepth::buildFrom(), vpFeaturePoint::buildFrom(), vpFeatureLine::buildFrom(), vpFeaturePoint3D::buildFrom(), vpFeatureThetaU::buildFrom(), vpFeaturePointPolar::buildFrom(), vpFeatureTranslation::buildFrom(), vpFeatureEllipse::display(), vpFeatureMoment::duplicate(), vpFeatureEllipse::error(), vpFeatureVanishingPoint::error(), vpFeatureLuminance::error(), vpBasicFeature::error(), vpFeatureMomentAlpha::error(), vpFeatureDepth::error(), error(), vpFeaturePoint::error(), vpFeatureLine::error(), vpFeaturePoint3D::error(), vpFeatureThetaU::error(), vpFeaturePointPolar::error(), vpFeatureTranslation::error(), vpFeatureDepth::get_LogZoverZstar(), vpFeaturePointPolar::get_rho(), vpBasicFeature::get_s(), get_s(), vpFeaturePointPolar::get_theta(), vpFeatureThetaU::get_TUx(), vpFeatureThetaU::get_TUy(), vpFeatureThetaU::get_TUz(), vpFeatureTranslation::get_Tx(), vpFeatureTranslation::get_Ty(), vpFeatureTranslation::get_Tz(), vpFeatureVanishingPoint::get_x(), vpFeaturePoint::get_x(), vpFeaturePoint3D::get_X(), vpFeatureVanishingPoint::get_y(), vpFeaturePoint::get_y(), vpFeaturePoint3D::get_Y(), vpFeaturePoint3D::get_Z(), vpFeatureVanishingPoint::getAlpha(), vpFeatureVanishingPoint::getAtanOneOverRho(), vpBasicFeature::getDimension(), vpFeatureVanishingPoint::getOneOverRho(), vpFeatureVanishingPoint::init(), vpFeatureLuminance::init(), vpFeatureEllipse::init(), vpFeatureSegment::init(), vpFeatureDepth::init(), init(), vpFeaturePoint::init(), vpFeatureMoment::init(), vpFeatureLine::init(), vpFeaturePoint3D::init(), vpFeatureThetaU::init(), vpFeaturePointPolar::init(), vpFeatureTranslation::init(), vpFeatureEllipse::interaction(), vpFeatureLine::interaction(), vpFeatureThetaU::interaction(), vpFeatureTranslation::interaction(), vpBasicFeature::operator=(), vpFeatureEllipse::print(), vpFeatureSegment::print(), print(), vpFeatureMoment::print(), vpFeatureLine::print(), vpFeatureThetaU::print(), vpFeatureTranslation::print(), vpFeatureDepth::set_LogZoverZstar(), vpFeaturePointPolar::set_rho(), set_s(), vpFeaturePointPolar::set_theta(), vpFeatureThetaU::set_TUx(), vpFeatureThetaU::set_TUy(), vpFeatureThetaU::set_TUz(), vpFeatureTranslation::set_Tx(), vpFeatureTranslation::set_Ty(), vpFeatureTranslation::set_Tz(), vpFeatureVanishingPoint::set_x(), vpFeatureEllipse::set_x(), vpFeaturePoint::set_x(), vpFeaturePoint3D::set_X(), vpFeatureEllipse::set_xy(), vpFeatureVanishingPoint::set_y(), vpFeatureEllipse::set_y(), vpFeaturePoint::set_y(), vpFeaturePoint3D::set_Y(), vpFeaturePoint3D::set_Z(), vpFeatureVanishingPoint::setAlpha(), vpFeatureVanishingPoint::setAtanOneOverRho(), vpFeatureEllipse::setMoments(), vpFeatureVanishingPoint::setOneOverRho(), vpFeatureLine::setRhoTheta(), vpFeatureMoment::update(), and vpGenericFeature().