10 #ifndef __SOT_FEATURE_ABSTRACT_H__    11 #define __SOT_FEATURE_ABSTRACT_H__    22 #include <dynamic-graph/entity.h>    82   virtual const std::string &
getClassName(
void)
 const { 
return CLASS_NAME; }
    85   void featureRegistration(
void);
    87   void initCommands(
void);
   104   virtual unsigned int &getDimension(
unsigned int &
res, 
int time) = 0;
   113     getDimension(res, time);
   122     return dimensionSOUT.accessCopy();
   200   virtual std::ostream &
writeGraph(std::ostream &os) 
const;
   219   virtual void addDependenciesFromReference(
void) = 0;
   220   virtual void removeDependenciesFromReference(
void) = 0;
   223   void setReferenceByName(
const std::string &name);
   224   std::string getReferenceByName(
void) 
const;
   228 template <
class FeatureSpecialized>
   244 template <
class FeatureSpecialized>
   247   ptr = 
dynamic_cast<FeatureSpecialized *
>(sdes);
   251 #define DECLARE_REFERENCE_FUNCTIONS(FeatureSpecialized)             \   252   typedef FeatureReferenceHelper<FeatureSpecialized> SP;            \   253   virtual void setReference(FeatureAbstract *sdes) {                \   254     if (sdes == NULL) {                                             \   256       if (SP::isReferenceSet()) removeDependenciesFromReference();  \   257       SP::unsetReference();                                         \   260       SP::setReference(sdes);                                       \   261       if (SP::isReferenceSet()) addDependenciesFromReference();     \   264   virtual const FeatureAbstract *getReferenceAbstract(void) const { \   265     return SP::getReference();                                      \   267   virtual FeatureAbstract *getReferenceAbstract(void) {             \   268     return (FeatureAbstract *)SP::getReference();                   \   270   bool isReferenceSet(void) const { return SP::isReferenceSet(); }  \   271   virtual void addDependenciesFromReference(void);                  \   272   virtual void removeDependenciesFromReference(void)   275 #define DECLARE_NO_REFERENCE                                           \   276   virtual void setReference(FeatureAbstract *) {}                      \   277   virtual const FeatureAbstract *getReferenceAbstract(void) const {    \   280   virtual FeatureAbstract *getReferenceAbstract(void) { return NULL; } \   281   virtual void addDependenciesFromReference(void) {}                   \   282   virtual void removeDependenciesFromReference(void) {}                \   289 #endif  // #ifndef __SOT_FEATURE_ABSTRACT_H__ SignalTimeDependent< dynamicgraph::Vector, int > errordotSOUT
Derivative of the error with respect to time: . 
SignalPtr< Flags, int > selectionSIN
This vector specifies which dimension are used to perform the computation. For instance let us assume...
SignalTimeDependent< unsigned int, int > dimensionSOUT
Returns the dimension of the feature as an output signal. 
unsigned int getDimension(int time)
Short method. 
void unsetReference(void)
virtual bool isReferenceSet(void) const
static const std::string CLASS_NAME
Store the name of the class. 
SignalTimeDependent< dynamicgraph::Matrix, int > jacobianSOUT
Jacobian of the error wrt the robot state: . 
unsigned int getDimension(void) const
Shortest method. 
virtual ~FeatureAbstract(void)
Default destructor. 
SignalPtr< dynamicgraph::Vector, int > errordotSIN
Derivative of the reference value. 
void setReference(FeatureAbstract *sdes)
virtual const std::string & getClassName(void) const
Returns the name class. 
const FeatureSpecialized * getReference(void) const
virtual SignalTimeDependent< dynamicgraph::Vector, int > & getErrorDot()
virtual void unsetReference(void)
This class gives the abstract definition of a feature. 
bool isReferenceSet(void) const
FeatureSpecialized * getReference(void)
void writeGraph(const char *filename)
SignalTimeDependent< dynamicgraph::Vector, int > errorSOUT
This signal returns the error between the desired value and the current value : . ...
FeatureReferenceHelper(void)