/*! \brief create a new visual features in the task (the desired feature is then null) */ void vpServo::addFeature(vpBasicFeature& s, int select) { featureList += &s ; // in fact we have a problem with s_star that is not defined // by the end user. // If the same user want to compute the interaction at the desired position // this "virtual feature" must exist // a solution is then to duplicate the current feature (s* = s) // and reinitialized s* to 0 // it remains the deallocation issue therefore a flag that stipulates that // the feature has been allocated in vpServo is set // vpServo must deallocate the memory (see ~vpServo and kill() ) vpBasicFeature *s_star ; s_star = s.duplicate() ; s_star->init() ; s_star->setDeallocate(vpBasicFeature::vpServo) ; desiredFeatureList += s_star ; featureSelectionList+= select ; }