#include <Distances.h>

This class computes distances between to set of mechanical objects.
Public Attributes | |
| Data< unsigned int > | d_showMapIndex |
| Frame DOF index on which display values. More... | |
| Data< bool > | d_showDistanceMap |
| show the distance for each point of the target point set. More... | |
| Data< bool > | d_showGoalDistanceMap |
| show the distance for each point of the target point set. More... | |
| Data< double > | d_showTextScaleFactor |
| Scale to apply on the text. More... | |
| Data< bool > | d_showGradientMap |
| show gradients for each point of the target point set. More... | |
| Data< double > | d_showGradientsScaleFactor |
| scale for the gradients displayed. More... | |
| Data< Coord > | d_offset |
| translation offset between the topology and the point set. More... | |
| Data< sofa::helper::OptionsGroup > | d_distanceType |
| type of distance to compute for inserted frames. More... | |
| Data< bool > | d_initTarget |
| initialize the target MechanicalObject from the grid. More... | |
| Data< int > | d_initTargetStep |
| initialize the target MechanicalObject from the grid using this step. More... | |
| Data< std::map< unsigned int, unsigned int > > | d_zonesFramePair |
| Correspondence between the segmented value and the frames. More... | |
| Data< double > | d_harmonicMaxValue |
| Max value used to initialize the harmonic distance grid. More... | |
Public Attributes inherited from sofa::core::objectmodel::BaseObject | |
| Data< bool > | f_listening |
| if true, handle the events, otherwise ignore the events More... | |
Public Attributes inherited from sofa::core::objectmodel::Base | |
| std::vector< lifecycle::DeprecatedData * > | m_oldAttributes |
| Data< int > | d_messageLogCount |
| Data< std::string > | name |
| Name of the object. More... | |
| Data< bool > | f_printLog |
| if true, emits extra messages at runtime. More... | |
| Data< sofa::core::objectmodel::TagSet > | f_tags |
| list of the subsets the object belongs to More... | |
| Data< sofa::type::BoundingBox > | f_bbox |
| this object bounding box More... | |
| Data< sofa::core::objectmodel::ComponentState > | d_componentState |
| The state of the component among (Dirty, Valid, Undefined, Loading, Invalid). More... | |
| std::string | m_definitionSourceFileName {""} |
| int | m_definitionSourceFilePos {-1} |
| std::string | m_instanciationSourceFileName {""} |
| int | m_instanciationSourceFilePos {-1} |
Protected Attributes | |
| DistancesInternalData< DataTypes > | data |
Protected Attributes inherited from sofa::core::DataTrackerDDGNode | |
| DataTracker | m_dataTracker |
Protected Attributes inherited from sofa::core::objectmodel::DDGNode | |
| DDGLinkContainer | inputs |
| DDGLinkContainer | outputs |
Protected Attributes inherited from sofa::core::objectmodel::BaseObject | |
| SingleLink< BaseObject, BaseContext, BaseLink::FLAG_DOUBLELINK > | l_context |
| LinkSlaves | l_slaves |
| SingleLink< BaseObject, BaseObject, BaseLink::FLAG_DOUBLELINK > | l_master |
Protected Attributes inherited from sofa::core::objectmodel::Base | |
| std::map< std::string, sofa::core::DataTrackerCallback > | m_internalEngine |
| VecData | m_vecData |
| List of fields (Data instances) More... | |
| MapData | m_aliasData |
| name -> Data multi-map (includes names and aliases) More... | |
| VecLink | m_vecLink |
| List of links. More... | |
| MapLink | m_aliasLink |
| name -> Link multi-map (includes names and aliases) More... | |
Public Member Functions | |
| SOFA_CLASS (SOFA_TEMPLATE(Distances, DataTypes), core::DataEngine) | |
| void | init () override |
| Initialization method called at graph creation and modification, during top-down traversal. More... | |
| void | reinit () override |
| Update method called when variables used in precomputation are modified. More... | |
| void | doUpdate () override |
| Where you put your engine's impl. More... | |
| void | computeDistanceMap (VecCoord beginElts=VecCoord(), const double &distMax=0) |
| Compute the distance map depending ion the distance type. More... | |
| void | addElt (const Coord &elt, VecCoord beginElts=VecCoord(), const double &distMax=0) |
| Add a 'from' element and recompute the map of distances. More... | |
| void | getDistances (VVD &distances, VecVecCoord &gradients, const VecCoord &goals) |
| Get the distance for a point set using the computed map. More... | |
| void | draw (const core::visual::VisualParams *vparams) override |
| Render internal data of this object, for debugging purposes. More... | |
Public Member Functions inherited from sofa::core::DataEngine | |
| SOFA_ABSTRACT_CLASS (DataEngine, core::objectmodel::BaseObject) | |
| void | update () final |
| void | addInput (sofa::core::objectmodel::BaseData *data) |
| Add a new input to this engine. More... | |
| void | addOutput (objectmodel::BaseData *n) |
| Add a new output to this engine. More... | |
Public Member Functions inherited from sofa::core::DataTrackerDDGNode | |
| DataTrackerDDGNode () | |
| void | addInputs (std::initializer_list< sofa::core::objectmodel::BaseData * > datas) |
| Create a DataCallback object associated with multiple Data fields. More... | |
| void | addOutputs (std::initializer_list< sofa::core::objectmodel::BaseData * > datas) |
| virtual void | cleanDirty (const core::ExecParams *params=nullptr) |
| void | updateAllInputsIfDirty () |
Public Member Functions inherited from sofa::core::objectmodel::DDGNode | |
| DDGNode () | |
| Constructor. More... | |
| virtual | ~DDGNode () |
| Destructor. Automatically remove remaining links. More... | |
| void | addInput (DDGNode *n) |
| Add a new input to this node. More... | |
| void | delInput (DDGNode *n) |
| Remove an input from this node. More... | |
| void | addOutput (DDGNode *n) |
| Add a new output to this node. More... | |
| void | delOutput (DDGNode *n) |
| Remove an output from this node. More... | |
| const DDGLinkContainer & | getInputs () |
| Get the list of inputs for this DDGNode. More... | |
| const DDGLinkContainer & | getOutputs () |
| Get the list of outputs for this DDGNode. More... | |
| bool | isDirty () const |
| Returns true if the DDGNode needs to be updated. More... | |
| virtual void | setDirtyValue () |
| Indicate the value needs to be updated. More... | |
| virtual void | setDirtyOutputs () |
| Indicate the outputs needs to be updated. This method must be called after changing the value of this node. More... | |
| void | cleanDirty () |
| Set dirty flag to false. More... | |
| virtual void | notifyEndEdit () |
| Notify links that the DGNode has been modified. More... | |
| void | updateIfDirty () const |
| Utility method to call update if necessary. This method should be called before reading of writing the value of this node. More... | |
Public Member Functions inherited from sofa::core::objectmodel::BaseObject | |
| SOFA_CLASS (BaseObject, Base) | |
| virtual void | computeBBox (const core::ExecParams *, bool=false) |
| void | setSrc (const std::string &v, std::vector< std::string > *attributeList=nullptr) |
| Sets a source Object and parses it to collect dependent Data. More... | |
| void | setSrc (const std::string &v, const BaseObject *loader, std::vector< std::string > *attributeList=nullptr) |
| Base * | findLinkDestClass (const BaseClass *destType, const std::string &path, const BaseLink *link) override |
| virtual std::string | getPathName () const override |
| Return the full path name of this object. More... | |
| virtual bool | insertInNode (BaseNode *) |
| virtual bool | removeInNode (BaseNode *) |
| SReal | getTime () const |
| Current time. More... | |
| const BaseContext * | getContext () const |
| BaseContext * | getContext () |
| const BaseObject * | getMaster () const |
| BaseObject * | getMaster () |
| const VecSlaves & | getSlaves () const |
| BaseObject * | getSlave (const std::string &name) const |
| virtual void | addSlave (BaseObject::SPtr s) |
| virtual void | removeSlave (BaseObject::SPtr s) |
| virtual void | handleEvent (Event *) |
| Handle an event. More... | |
| virtual void | handleTopologyChange () |
| virtual void | handleTopologyChange (core::topology::Topology *t) |
| void | parse (BaseObjectDescription *arg) override |
| Parse the given description to assign values to this object's fields and potentially other parameters. More... | |
| virtual void | bwdInit () |
| Initialization method called at graph creation and modification, during bottom-up traversal. More... | |
| void | updateInternal () |
| Update method called when variables (used to compute other internal variables) are modified. More... | |
| virtual void | storeResetState () |
| Save the initial state for later uses in reset() More... | |
| virtual void | reset () |
| Reset to initial state. More... | |
| virtual void | cleanup () |
Public Member Functions inherited from sofa::core::objectmodel::Base | |
| virtual const BaseClass * | getClass () const |
| void | addDeprecatedAttribute (lifecycle::DeprecatedData *attribute) |
| void | addUpdateCallback (const std::string &name, std::initializer_list< BaseData * > inputs, std::function< sofa::core::objectmodel::ComponentState(const DataTracker &)> function, std::initializer_list< BaseData * > outputs) |
| void | addOutputsToCallback (const std::string &name, std::initializer_list< BaseData * > outputs) |
| const std::string & | getName () const |
| Accessor to the object name. More... | |
| void | setName (const std::string &n) |
| Set the name of this object. More... | |
| void | setName (const std::string &n, int counter) |
| Set the name of this object, adding an integer counter. More... | |
| std::string | getTypeName () const |
| Get the type name of this object (i.e. class and template types) More... | |
| virtual std::string | getClassName () const |
| Get the class name of this object. More... | |
| virtual std::string | getTemplateName () const final |
| Get the template type names (if any) used to instantiate this object. More... | |
| std::string | getNameSpaceName () const |
| Get the template type names (if any) used to instantiate this object. More... | |
| void | setDefinitionSourceFileName (const std::string &sourceFileName) |
| Set the source filename (where the component is implemented) More... | |
| const std::string & | getDefinitionSourceFileName () const |
| Get the source filename (where the component is implemented) More... | |
| void | setDefinitionSourceFilePos (const int) |
| Set the source location (where the component is implemented) More... | |
| int | getDefinitionSourceFilePos () const |
| Get the source location (where the component is implemented) More... | |
| void | setInstanciationSourceFileName (const std::string &sourceFileName) |
| const std::string & | getInstanciationSourceFileName () const |
| void | setInstanciationSourceFilePos (const int) |
| int | getInstanciationSourceFilePos () const |
| void | addMessage (const sofa::helper::logging::Message &m) const |
| size_t | countLoggedMessages (sofa::helper::logging::Message::TypeSet t=sofa::helper::logging::Message::AnyTypes) const |
| const std::deque< sofa::helper::logging::Message > & | getLoggedMessages () const |
| const std::string | getLoggedMessagesAsString (sofa::helper::logging::Message::TypeSet t=sofa::helper::logging::Message::AnyTypes) const |
| void | clearLoggedMessages () const |
| bool | notMuted () const |
| const sofa::core::objectmodel::TagSet & | getTags () const |
| Represents the subsets the object belongs to. More... | |
| bool | hasTag (Tag t) const |
| Return true if the object belong to the given subset. More... | |
| void | addTag (Tag t) |
| Add a subset qualification to the object. More... | |
| void | removeTag (Tag t) |
| Remove a subset qualification to the object. More... | |
| ComponentState | getComponentState () const |
| bool | isComponentStateValid () const |
| bool | isComponentStateInvalid () const |
| SOFA_ATTRIBUTE_DEPRECATED__TOBASECONSTRAINT () virtual const behavior | |
| virtual bool | parseField (const std::string &attribute, const std::string &value) |
| Assign one field value (Data or Link) More... | |
| virtual bool | hasField (const std::string &attribute) const |
| Check if a given Data field or Link exists. More... | |
| void | parseFields (const std::list< std::string > &str) |
| Assign the field values stored in the given list of name + value pairs of strings. More... | |
| virtual void | parseFields (const std::map< std::string, std::string * > &str) |
| Assign the field values stored in the given map of name -> value pairs. More... | |
| void | writeDatas (std::map< std::string, std::string * > &str)=delete |
| Write the current field values to the given map of name -> value pairs. More... | |
| void | writeDatas (std::ostream &out, const std::string &separator=" ") |
| BaseData * | findData (const std::string &name) const |
| std::vector< BaseData * > | findGlobalField (const std::string &name) const |
| Find data fields given a name: several can be found as we look into the alias map. More... | |
| BaseLink * | findLink (const std::string &name) const |
| std::vector< BaseLink * > | findLinks (const std::string &name) const |
| Find link fields given a name: several can be found as we look into the alias map. More... | |
| virtual void | updateLinks (bool logErrors=true) |
| Update pointers in case the pointed-to objects have appeared. More... | |
| template<class T > | |
| BaseData::BaseInitData | initData (::sofa::core::objectmodel::Data< T > *field, const char *name, const char *help, ::sofa::core::objectmodel::BaseData::DataFlags dataflags) |
| Helper method used to initialize a data field containing a value of type T. More... | |
| template<class T > | |
| BaseData::BaseInitData | initData (Data< T > *field, const char *name, const char *help, bool isDisplayed=true, bool isReadOnly=false) |
| Helper method used to initialize a data field containing a value of type T. More... | |
| template<class T > | |
| Data< T >::InitData | initData (Data< T > *field, const T &value, const char *name, const char *help, bool isDisplayed=true, bool isReadOnly=false) |
| Helper method used to initialize a data field containing a value of type T. More... | |
| void | addData (BaseData *f, const std::string &name) |
| void | addData (BaseData *f) |
| void | removeData (BaseData *f) |
| Remove a data field. More... | |
| void | addAlias (BaseData *field, const char *alias) |
| Add an alias to a Data. More... | |
| void | addLink (BaseLink *l) |
| Add a link. More... | |
| void | addAlias (BaseLink *link, const char *alias) |
| Add an alias to a Link. More... | |
| const VecData & | getDataFields () const |
| Accessor to the vector containing all the fields of this object. More... | |
| const MapData & | getDataAliases () const |
| Accessor to the map containing all the aliases of this object. More... | |
| const VecLink & | getLinks () const |
| Accessor to the vector containing all the fields of this object. More... | |
| const MapLink & | getLinkAliases () const |
| Accessor to the map containing all the aliases of this object. More... | |
| virtual bool | findDataLinkDest (BaseData *&ptr, const std::string &path, const BaseLink *link) |
| template<class T > | |
| bool | findLinkDest (T *&ptr, const std::string &path, const BaseLink *link) |
Static Public Member Functions | |
| template<class T > | |
| static bool | canCreate (T *&obj, core::objectmodel::BaseContext *context, core::objectmodel::BaseObjectDescription *arg) |
| template<class T > | |
| static T::SPtr | create (T *, core::objectmodel::BaseContext *context, core::objectmodel::BaseObjectDescription *arg) |
Static Public Member Functions inherited from sofa::core::objectmodel::BaseObject | |
| template<class T > | |
| static bool | canCreate (T *, BaseContext *, BaseObjectDescription *) |
| Pre-construction check method called by ObjectFactory. More... | |
| template<class T > | |
| static T::SPtr | create (T *, BaseContext *context, BaseObjectDescription *arg) |
| Construction method called by ObjectFactory. More... | |
Static Public Member Functions inherited from sofa::core::objectmodel::Base | |
| static const BaseClass * | GetClass () |
| template<class T > | |
| static std::string | shortName (const T *ptr=nullptr, BaseObjectDescription *=nullptr) |
Protected Member Functions | |
| Distances (sofa::component::topology::container::dynamic::DynamicSparseGridTopologyContainer *hexaTopoContainer, core::behavior::MechanicalState< DataTypes > *targetPointSet) | |
| ~Distances () override | |
Protected Member Functions inherited from sofa::core::DataEngine | |
| DataEngine () | |
| Constructor. More... | |
| ~DataEngine () override | |
| Destructor. Do nothing. More... | |
| virtual void | doInternalUpdate () final |
| Prevent engines to use the internalUpdate mechanism, so that only update/doUpdate is used. More... | |
Protected Member Functions inherited from sofa::core::objectmodel::DDGNode | |
| virtual void | doAddInput (DDGNode *n) |
| virtual void | doDelInput (DDGNode *n) |
| virtual void | doAddOutput (DDGNode *n) |
| virtual void | doDelOutput (DDGNode *n) |
| void | cleanDirtyOutputsOfInputs () |
| the dirtyOutputs flags of all the inputs will be set to false More... | |
Protected Member Functions inherited from sofa::core::objectmodel::BaseObject | |
| BaseObject () | |
| ~BaseObject () override | |
| virtual void | doUpdateInternal () |
| Implementation of the internal update. More... | |
| void | changeContextLink (BaseContext *before, BaseContext *&after) |
| void | changeSlavesLink (BaseObject::SPtr ptr, std::size_t, bool add) |
| This method insures that slaves objects have master and context links set correctly. More... | |
| void | trackInternalData (const BaseData &data) |
| Method called to add the Data to the DataTracker (listing the Data to track) More... | |
| void | cleanTracker () |
| bool | hasDataChanged (const BaseData &data) |
| Method called to know if a tracked Data has changed. More... | |
Protected Member Functions inherited from sofa::core::objectmodel::Base | |
| Base () | |
| virtual | ~Base () |
| void | initData0 (BaseData *field, BaseData::BaseInitData &res, const char *name, const char *help, bool isDisplayed=true, bool isReadOnly=false) |
| Helper method used by initData() More... | |
| void | initData0 (BaseData *field, BaseData::BaseInitData &res, const char *name, const char *help, BaseData::DataFlags dataFlags) |
| Helper method used by initData() More... | |
| template<class T > | |
| void | initData0 (Data< T > *field, typename Data< T >::InitData &res, const T &value, const char *name, const char *help, bool isDisplayed=true, bool isReadOnly=false) |
| Helper method used by initData() More... | |
Protected Member Functions inherited from sofa::core::IntrusiveObject | |
| virtual | ~IntrusiveObject ()=default |
Friends | |
| class | DistancesInternalData< DataTypes > |
| Data<sofa::helper::OptionsGroup> sofa::component::engine::analyze::Distances< DataTypes >::d_distanceType |
type of distance to compute for inserted frames.
| Data<double> sofa::component::engine::analyze::Distances< DataTypes >::d_harmonicMaxValue |
Max value used to initialize the harmonic distance grid.
| Data<bool> sofa::component::engine::analyze::Distances< DataTypes >::d_initTarget |
initialize the target MechanicalObject from the grid.
| Data<int> sofa::component::engine::analyze::Distances< DataTypes >::d_initTargetStep |
initialize the target MechanicalObject from the grid using this step.
| Data<Coord> sofa::component::engine::analyze::Distances< DataTypes >::d_offset |
translation offset between the topology and the point set.
| Data<bool> sofa::component::engine::analyze::Distances< DataTypes >::d_showDistanceMap |
show the distance for each point of the target point set.
| Data<bool> sofa::component::engine::analyze::Distances< DataTypes >::d_showGoalDistanceMap |
show the distance for each point of the target point set.
| Data<bool> sofa::component::engine::analyze::Distances< DataTypes >::d_showGradientMap |
show gradients for each point of the target point set.
| Data<double> sofa::component::engine::analyze::Distances< DataTypes >::d_showGradientsScaleFactor |
scale for the gradients displayed.
| Data<unsigned int> sofa::component::engine::analyze::Distances< DataTypes >::d_showMapIndex |
Frame DOF index on which display values.
| Data<double> sofa::component::engine::analyze::Distances< DataTypes >::d_showTextScaleFactor |
Scale to apply on the text.
| Data<std::map<unsigned int, unsigned int> > sofa::component::engine::analyze::Distances< DataTypes >::d_zonesFramePair |
Correspondence between the segmented value and the frames.
|
protected |
|
protected |
|
inlineoverrideprotected |
| void sofa::component::engine::analyze::Distances< DataTypes >::addElt | ( | const Coord & | elt, |
| VecCoord | beginElts = VecCoord(), |
||
| const double & | distMax = 0 |
||
| ) |
Add a 'from' element and recompute the map of distances.
| elt | the point from which the distances are computed. |
| beginElts | distance until we stop propagating. |
| distMax | distance until we stop propagating. |
|
inlinestatic |
Pre-construction check method called by ObjectFactory.
This implementation read the object1 and object2 attributes and check if they are compatible with the input and output model types of this mapping.
| void sofa::component::engine::analyze::Distances< DataTypes >::computeDistanceMap | ( | VecCoord | beginElts = VecCoord(), |
| const double & | distMax = 0 |
||
| ) |
Compute the distance map depending ion the distance type.
| elt | the point from which the distances are computed. |
| beginElts | distance until we stop propagating. |
| distMax | distance until we stop propagating. |
|
inlinestatic |
Construction method called by ObjectFactory.
This implementation read the object1 and object2 attributes to find the input and output models of this mapping.
|
overridevirtual |
Where you put your engine's impl.
Implements sofa::core::DataEngine.
|
overridevirtual |
Render internal data of this object, for debugging purposes.
Reimplemented from sofa::core::objectmodel::BaseObject.
| void sofa::component::engine::analyze::Distances< DataTypes >::getDistances | ( | VVD & | distances, |
| VecVecCoord & | gradients, | ||
| const VecCoord & | goals | ||
| ) |
Get the distance for a point set using the computed map.
| distances | distance for each point of the topology. |
| gradients | gradient of the distance for each point in the topology. |
| point | the point from which the distances are computed. |
|
overridevirtual |
Initialization method called at graph creation and modification, during top-down traversal.
Reimplemented from sofa::core::objectmodel::BaseObject.
|
overridevirtual |
Update method called when variables used in precomputation are modified.
Reimplemented from sofa::core::objectmodel::BaseObject.
| sofa::component::engine::analyze::Distances< DataTypes >::SOFA_CLASS | ( | SOFA_TEMPLATE(Distances< DataTypes >, DataTypes) | , |
| core::DataEngine | |||
| ) |
|
friend |