#include <BaseNode.h>
Base class for simulation nodes. More...

Base class for simulation nodes.
A Node is a class defining the main scene data structure of a simulation. It defined hierarchical relations between elements. Each node can have parent and child nodes (potentially defining a tree), as well as attached objects (the leaves of the tree).
Public Member Functions | |
| SOFA_ABSTRACT_CLASS (BaseNode, Base) | |
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... | |
| virtual void | parse (BaseObjectDescription *arg) |
| Parse the given description to assign values to this object's fields and potentially other parameters. 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) |
Protected Member Functions | |
| BaseNode () | |
| ~BaseNode () override | |
| void | setObjectContext (BaseObject::SPtr obj) |
| Set the context of an object to this. More... | |
| void | clearObjectContext (BaseObject::SPtr obj) |
| Reset the context of an object. 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 |
Scene hierarchy | |
| typedef sofa::type::vector< BaseNode * > | Children |
| typedef sofa::type::vector< BaseNode * > | Parents |
| virtual Children | getChildren () const =0 |
| Get a list of child node. More... | |
| virtual Parents | getParents () const =0 |
| virtual size_t | getNbParents () const =0 |
| returns number of parents More... | |
| virtual BaseNode * | getFirstParent () const =0 |
| return the first parent (returns nullptr if no parent) More... | |
| virtual BaseNode * | getRoot () const |
| returns the root by following up the first parent for multinodes More... | |
| virtual void | addChild (BaseNode::SPtr node)=0 |
| Add a child node. More... | |
| virtual void | removeChild (BaseNode::SPtr node)=0 |
| Remove a child node. More... | |
| virtual void | moveChild (BaseNode::SPtr node, BaseNode::SPtr prev_parent)=0 |
| Move a node from another node. More... | |
| virtual void | moveChild (BaseNode::SPtr node)=0 |
| Move a node in this & remove it from its parents. More... | |
| virtual bool | addObject (BaseObject::SPtr obj, TypeOfInsertion=TypeOfInsertion::AtEnd)=0 |
| Add a generic object. More... | |
| virtual bool | removeObject (BaseObject::SPtr obj)=0 |
| Remove a generic object. More... | |
| virtual void | moveObject (BaseObject::SPtr obj)=0 |
| Move an object from a node to another node. More... | |
| virtual bool | hasParent (const BaseNode *node) const =0 |
| Test if the given node is a parent of this node. More... | |
| virtual bool | hasAncestor (const BaseNode *node) const =0 |
| virtual void | detachFromGraph ()=0 |
| virtual BaseContext * | getContext ()=0 |
| Get this node context. More... | |
| virtual const BaseContext * | getContext () const =0 |
| Get this node context. More... | |
| virtual std::string | getPathName () const override |
| Return the full path name of this node. More... | |
| virtual std::string | getRootPath () const |
| Return the path from this node to the root node. More... | |
| Base * | findLinkDestClass (const BaseClass *destType, const std::string &path, const BaseLink *link) override=0 |
Solvers and main algorithms | |
| virtual core::behavior::BaseAnimationLoop * | getAnimationLoop () const |
| virtual core::behavior::OdeSolver * | getOdeSolver () const |
| virtual core::collision::Pipeline * | getCollisionPipeline () const |
| virtual core::visual::VisualLoop * | getVisualLoop () const |
Additional Inherited Members | |
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 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... | |
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 |
|
overrideprotected |
|
pure virtual |
Add a child node.
Implemented in sofa::simulation::Node.
|
pure virtual |
Add a generic object.
Implemented in sofa::simulation::Node.
|
protected |
Reset the context of an object.
|
pure virtual |
Remove the current node from the graph: depending on the type of Node, it can have one or several parents.
Implemented in sofa::simulation::graph::DAGNode.
|
overridepure virtual |
Reimplemented from sofa::core::objectmodel::Base.
Implemented in sofa::simulation::Node.
|
virtual |
Reimplemented in sofa::simulation::Node.
|
pure virtual |
Get a list of child node.
Implemented in sofa::simulation::Node.
|
virtual |
Reimplemented in sofa::simulation::Node.
|
pure virtual |
Get this node context.
Implemented in sofa::simulation::Node.
|
pure virtual |
Get this node context.
Implemented in sofa::simulation::Node.
|
pure virtual |
return the first parent (returns nullptr if no parent)
Implemented in sofa::simulation::graph::DAGNode.
|
pure virtual |
returns number of parents
Implemented in sofa::simulation::graph::DAGNode.
|
virtual |
Reimplemented in sofa::simulation::Node.
|
pure virtual |
Get a list of parent node
Implemented in sofa::simulation::graph::DAGNode.
|
overridevirtual |
Return the full path name of this node.
Reimplemented from sofa::core::objectmodel::Base.
|
virtual |
returns the root by following up the first parent for multinodes
|
virtual |
Return the path from this node to the root node.
|
virtual |
Reimplemented in sofa::simulation::Node.
|
pure virtual |
Test if the given node is an ancestor of this node. An ancestor is a parent or (recursively) the parent of an ancestor.
Implemented in sofa::simulation::graph::DAGNode.
|
pure virtual |
Test if the given node is a parent of this node.
Implemented in sofa::simulation::graph::DAGNode.
|
pure virtual |
Move a node in this & remove it from its parents.
Implemented in sofa::simulation::Node, and sofa::simulation::graph::DAGNode.
|
pure virtual |
Move a node from another node.
Implemented in sofa::simulation::Node.
|
pure virtual |
Move an object from a node to another node.
Implemented in sofa::simulation::Node.
|
pure virtual |
Remove a child node.
Implemented in sofa::simulation::Node.
|
pure virtual |
Remove a generic object.
Implemented in sofa::simulation::Node.
|
protected |
Set the context of an object to this.