|  | 
|  | SOFA_CLASS (DAGNode, simulation::Node) | 
|  | 
| virtual Node::SPtr | createChild (const std::string &nodeName) override | 
|  | Pure Virtual method from Node.  More... 
 | 
|  | 
| void | detachFromGraph () override | 
|  | Remove the current node from the graph: consists in removing the link to its parent.  More... 
 | 
|  | 
| Parents | getParents () const override | 
|  | Get a list of parent node.  More... 
 | 
|  | 
| size_t | getNbParents () const override | 
|  | returns number of parents  More... 
 | 
|  | 
| BaseNode * | getFirstParent () const override | 
|  | return the first parent (returns nullptr if no parent)  More... 
 | 
|  | 
| bool | hasParent (const BaseNode *node) const override | 
|  | Test if the given node is a parent of this node.  More... 
 | 
|  | 
| bool | hasParent (const BaseContext *context) const | 
|  | Test if the given context is a parent of this context.  More... 
 | 
|  | 
| bool | hasAncestor (const BaseNode *node) const override | 
|  | 
| bool | hasAncestor (const BaseContext *context) const override | 
|  | 
| void * | getObject (const sofa::core::objectmodel::ClassInfo &class_info, const sofa::core::objectmodel::TagSet &tags, SearchDirection dir=SearchUp) const override | 
|  | 
| void * | getObject (const sofa::core::objectmodel::ClassInfo &class_info, const std::string &path) const override | 
|  | 
| void | getObjects (const sofa::core::objectmodel::ClassInfo &class_info, GetObjectsCallBack &container, const sofa::core::objectmodel::TagSet &tags, SearchDirection dir=SearchUp) const override | 
|  | 
| sofa::core::topology::BaseMeshTopology * | getMeshTopologyLink (SearchDirection dir=SearchUp) const override | 
|  | 
| void | initVisualContext () override | 
|  | Called during initialization to correctly propagate the visual context to the children.  More... 
 | 
|  | 
| void | updateContext () override | 
|  | Update the whole context values, based on parent and local ContextObjects.  More... 
 | 
|  | 
| void | updateSimulationContext () override | 
|  | Update the simulation context values(gravity, time...), based on parent and local ContextObjects.  More... 
 | 
|  | 
| Node * | findCommonParent (Node *node2) override | 
|  | 
| void | precomputeTraversalOrder (const sofa::core::ExecParams *params) override | 
|  | compute the traversal order from this Node  More... 
 | 
|  | 
| virtual void | moveChild (BaseNode::SPtr node) override | 
|  | Move a node in this from another node.  More... 
 | 
|  | 
|  | SOFA_ABSTRACT_CLASS2 (Node, BaseNode, Context) | 
|  | 
| virtual void | removeControllers () | 
|  | Remove odesolvers and mastercontroler.  More... 
 | 
|  | 
| Node * | getChild (const std::string &name) const | 
|  | Find a child node given its name.  More... 
 | 
|  | 
| Node * | getTreeNode (const std::string &name) const | 
|  | Get a descendant node given its name.  More... 
 | 
|  | 
| Node * | getNodeInGraph (const std::string &absolutePath) const | 
|  | Get a node in the scene graph matching the given absolute path.  More... 
 | 
|  | 
| Children | getChildren () const override | 
|  | Get children nodes.  More... 
 | 
|  | 
| BaseContext * | getRootContext () const override | 
|  | Get the root context of the graph.  More... 
 | 
|  | 
| Node * | setDebug (bool) | 
|  | 
| bool | getDebug () const | 
|  | 
| void | printComponents () | 
|  | 
| const BaseContext * | getContext () const override | 
|  | Get this node context.  More... 
 | 
|  | 
| BaseContext * | getContext () override | 
|  | Get this node context.  More... 
 | 
|  | 
| void | propagateEvent (const sofa::core::ExecParams *params, sofa::core::objectmodel::Event *event) override | 
|  | Propagate an event.  More... 
 | 
|  | 
| virtual void | updateVisualContext () | 
|  | Update the visual context values, based on parent and local ContextObjects.  More... 
 | 
|  | 
| virtual void | initialize () | 
|  | Must be called after each graph modification. Do not call it directly, apply an InitVisitor instead.  More... 
 | 
|  | 
| virtual void | setDefaultVisualContextValue () | 
|  | Called after initialization to set the default value of the visual context.  More... 
 | 
|  | 
| void | setSleeping (bool val) override | 
|  | override context setSleeping to add notification.  More... 
 | 
|  | 
| virtual void | addListener (MutationListener *obj) | 
|  | 
| virtual void | removeListener (MutationListener *obj) | 
|  | 
| void | parse (sofa::core::objectmodel::BaseObjectDescription *arg) override | 
|  | Parse the given description to assign values to this object's fields and potentially other parameters.  More... 
 | 
|  | 
| void | init (const sofa::core::ExecParams *params) | 
|  | Initialize the components.  More... 
 | 
|  | 
| bool | isInitialized () const | 
|  | 
| void | reinit (const sofa::core::ExecParams *params) | 
|  | Apply modifications to the components.  More... 
 | 
|  | 
| void | draw (sofa::core::visual::VisualParams *params) | 
|  | Draw the objects (using visual visitors)  More... 
 | 
|  | 
| void | executeVisitor (Visitor *action, bool precomputedOrder=false) override | 
|  | Execute a recursive action starting from this node.  More... 
 | 
|  | 
| void | execute (Visitor &action, bool precomputedOrder=false) | 
|  | Execute a recursive action starting from this node.  More... 
 | 
|  | 
| void | execute (Visitor *p, bool precomputedOrder=false) | 
|  | Execute a recursive action starting from this node.  More... 
 | 
|  | 
| template<class Act , class Params > | 
| void | execute (const Params *params, bool precomputedOrder=false) | 
|  | Execute a recursive action starting from this node.  More... 
 | 
|  | 
| template<class Act > | 
| void | execute (sofa::core::visual::VisualParams *vparams, bool precomputedOrder=false) | 
|  | Execute a recursive action starting from this node.  More... 
 | 
|  | 
| virtual void | addChild (BaseNode::SPtr node) final | 
|  | 
| virtual void | removeChild (BaseNode::SPtr node) final | 
|  | Remove a child node.  More... 
 | 
|  | 
| virtual void | moveChild (BaseNode::SPtr node, BaseNode::SPtr prev_parent) final | 
|  | Move a node in this from another node.  More... 
 | 
|  | 
| virtual bool | addObject (sofa::core::objectmodel::BaseObject::SPtr obj, sofa::core::objectmodel::TypeOfInsertion insertionLocation=sofa::core::objectmodel::TypeOfInsertion::AtEnd) final | 
|  | Add an object and return this. Detect the implemented interfaces and add the object to the corresponding lists.  More... 
 | 
|  | 
| virtual bool | removeObject (sofa::core::objectmodel::BaseObject::SPtr obj) final | 
|  | Remove an object.  More... 
 | 
|  | 
| virtual void | moveObject (sofa::core::objectmodel::BaseObject::SPtr obj) final | 
|  | Move an object from another node.  More... 
 | 
|  | 
| sofa::core::objectmodel::BaseObject * | getObject (const std::string &name) const | 
|  | Find an object given its name.  More... 
 | 
|  | 
| Base * | findLinkDestClass (const sofa::core::objectmodel::BaseClass *destType, const std::string &path, const sofa::core::objectmodel::BaseLink *link) override | 
|  | 
| void * | getObject (const sofa::core::objectmodel::ClassInfo &class_info, SearchDirection dir=SearchUp) const override | 
|  | 
| void | getObjects (const sofa::core::objectmodel::ClassInfo &class_info, GetObjectsCallBack &container, SearchDirection dir=SearchUp) const override | 
|  | 
| template<class Object , class Container > | 
| void | getNodeObjects (Container *list) | 
|  | List all objects of this node deriving from a given class.  More... 
 | 
|  | 
| template<class Container > | 
| Container * | getNodeObjects (Container *result) | 
|  | Returns a list of object of type passed as a parameter.  More... 
 | 
|  | 
| template<class Container > | 
| Container & | getNodeObjects (Container &result) | 
|  | Returns a list of object of type passed as a parameter.  More... 
 | 
|  | 
| template<class Object  = sofa::core::objectmodel::BaseObject> | 
| std::vector< Object * > | getNodeObjects () | 
|  | 
| template<class Object > | 
| void | getNodeObject (Object *&result) | 
|  | 
| template<class Object > | 
| Object * | getNodeObject () | 
|  | 
| template<class Object , class Container > | 
| void | getTreeObjects (Container *list) | 
|  | List all objects of this node and sub-nodes deriving from a given class.  More... 
 | 
|  | 
| template<class Container > | 
| Container * | getTreeObjects (Container *result) | 
|  | List all objects of this node and sub-nodes deriving from a given class.  More... 
 | 
|  | 
| template<class Container > | 
| Container & | getTreeObjects (Container &result) | 
|  | List all objects of this node and sub-nodes deriving from a given class.  More... 
 | 
|  | 
| template<class Object  = sofa::core::objectmodel::BaseObject> | 
| std::vector< Object * > | getTreeObjects () | 
|  | 
| template<class Object > | 
| void | getTreeObject (Object *&result) | 
|  | 
| template<class Object > | 
| Object * | getTreeObject () | 
|  | 
| sofa::core::topology::Topology * | getTopology () const override | 
|  | Topology.  More... 
 | 
|  | 
| sofa::core::BaseState * | getState () const override | 
|  | Degrees-of-Freedom.  More... 
 | 
|  | 
| sofa::core::behavior::BaseMechanicalState * | getMechanicalState () const override | 
|  | Mechanical Degrees-of-Freedom.  More... 
 | 
|  | 
| sofa::core::visual::Shader * | getShader () const override | 
|  | Shader.  More... 
 | 
|  | 
| virtual sofa::core::visual::Shader * | getShader (const sofa::core::objectmodel::TagSet &t) const | 
|  | 
| sofa::core::behavior::BaseAnimationLoop * | getAnimationLoop () const override | 
|  | 
| sofa::core::behavior::OdeSolver * | getOdeSolver () const override | 
|  | 
| sofa::core::collision::Pipeline * | getCollisionPipeline () const override | 
|  | 
| sofa::core::visual::VisualLoop * | getVisualLoop () const override | 
|  | 
|  | SOFA_ABSTRACT_CLASS (BaseNode, Base) | 
|  | 
| virtual BaseNode * | getRoot () const | 
|  | returns the root by following up the first parent for multinodes  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... 
 | 
|  | 
| 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) | 
|  | 
|  | SOFA_CLASS (Context, BaseContext) | 
|  | 
| void | copyContext (const Context &c) | 
|  | Copy the context variables from the given instance.  More... 
 | 
|  | 
| void | copySimulationContext (const Context &c) | 
|  | Copy the context variables of visualization from the given instance.  More... 
 | 
|  | 
| bool | isActive () const override | 
|  | The Context is active.  More... 
 | 
|  | 
| void | setActive (bool val) override | 
|  | State of the context.  More... 
 | 
|  | 
| bool | isSleeping () const override | 
|  | The Context is sleeping.  More... 
 | 
|  | 
| bool | canChangeSleepingState () const override | 
|  | The Context can change its sleeping state.  More... 
 | 
|  | 
| const Vec3 & | getGravity () const override | 
|  | Gravity in local coordinates.  More... 
 | 
|  | 
| void | setGravity (const Vec3 &) override | 
|  | Gravity in local coordinates.  More... 
 | 
|  | 
| SReal | getDt () const override | 
|  | Simulation timestep.  More... 
 | 
|  | 
| SReal | getTime () const override | 
|  | Simulation time.  More... 
 | 
|  | 
| bool | getAnimate () const override | 
|  | Animation flag.  More... 
 | 
|  | 
| void | setDt (SReal dt) override | 
|  | Simulation timestep.  More... 
 | 
|  | 
| virtual void | setTime (SReal t) | 
|  | Simulation time.  More... 
 | 
|  | 
| void | setAnimate (bool val) override | 
|  | Animation flag.  More... 
 | 
|  | 
| void | setChangeSleepingState (bool val) override | 
|  | Sleeping state change of the context.  More... 
 | 
|  | 
| virtual void | setDisplayWorldGravity (bool val) | 
|  | Display flags: Gravity.  More... 
 | 
|  | 
|  | SOFA_CLASS (BaseContext, Base) | 
|  | 
| ComponentNameHelper & | getNameHelper () | 
|  | Returns utilitary object to uniquely name objects in the context.  More... 
 | 
|  | 
| virtual core::topology::BaseMeshTopology * | getMeshTopology (SearchDirection dir=SearchUp) const | 
|  | Mesh Topology (unified interface for both static and dynamic topologies)  More... 
 | 
|  | 
| virtual core::behavior::BaseMass * | getMass () const | 
|  | Mass.  More... 
 | 
|  | 
| template<class Object , class Container > | 
| void | getObjects (Container *list, SearchDirection dir=SearchUp) | 
|  | List all objects of this node deriving from a given class.  More... 
 | 
|  | 
| template<class Container > | 
| Container * | getObjects (Container *result, SearchDirection dir=SearchUp) | 
|  | Returns a list of object of type passed as a parameter.  More... 
 | 
|  | 
| template<class Container > | 
| Container & | getObjects (Container &result, SearchDirection dir=SearchUp) | 
|  | 
| template<class Object  = sofa::core::objectmodel::BaseObject> | 
| std::vector< Object * > | getObjects (SearchDirection dir=SearchUp) | 
|  | 
| template<class T > | 
| T * | get (SearchDirection dir=SearchUp) const | 
|  | Generic object access template wrapper, possibly searching up or down from the current context.  More... 
 | 
|  | 
| template<class T > | 
| void | get (T *&ptr, SearchDirection dir=SearchUp) const | 
|  | Generic object access template wrapper, possibly searching up or down from the current context.  More... 
 | 
|  | 
| template<class T > | 
| void | get (sptr< T > &ptr, SearchDirection dir=SearchUp) const | 
|  | Generic object access template wrapper, possibly searching up or down from the current context.  More... 
 | 
|  | 
| template<class T > | 
| T * | get (const Tag &tag, SearchDirection dir=SearchUp) const | 
|  | Generic object access template wrapper, given a required tag, possibly searching up or down from the current context.  More... 
 | 
|  | 
| template<class T > | 
| void | get (T *&ptr, const Tag &tag, SearchDirection dir=SearchUp) const | 
|  | Generic object access template wrapper, given a required tag, possibly searching up or down from the current context.  More... 
 | 
|  | 
| template<class T > | 
| void | get (sptr< T > &ptr, const Tag &tag, SearchDirection dir=SearchUp) const | 
|  | Generic object access template wrapper, given a required tag, possibly searching up or down from the current context.  More... 
 | 
|  | 
| template<class T > | 
| T * | get (const TagSet &tags, SearchDirection dir=SearchUp) const | 
|  | Generic object access template wrapper, given a set of required tags, possibly searching up or down from the current context.  More... 
 | 
|  | 
| template<class T > | 
| void | get (T *&ptr, const TagSet &tags, SearchDirection dir=SearchUp) const | 
|  | Generic object access template wrapper, given a set of required tags, possibly searching up or down from the current context.  More... 
 | 
|  | 
| template<class T > | 
| void | get (sptr< T > &ptr, const TagSet &tags, SearchDirection dir=SearchUp) const | 
|  | Generic object access template wrapper, given a set of required tags, possibly searching up or down from the current context.  More... 
 | 
|  | 
| template<class T > | 
| T * | get (const std::string &path) const | 
|  | Generic object access template wrapper, given a path from the current context.  More... 
 | 
|  | 
| template<class T > | 
| void | get (T *&ptr, const std::string &path) const | 
|  | Generic object access template wrapper, given a path from the current context.  More... 
 | 
|  | 
| template<class T > | 
| void | get (sptr< T > &ptr, const std::string &path) const | 
|  | Generic object access template wrapper, given a path from the current context.  More... 
 | 
|  | 
| template<class T , class Container > | 
| void | get (Container *list, SearchDirection dir=SearchUp) const | 
|  | Generic list of objects access template wrapper, possibly searching up or down from the current context.  More... 
 | 
|  | 
| template<class T , class Container > | 
| void | get (Container *list, const Tag &tag, SearchDirection dir=SearchUp) const | 
|  | Generic list of objects access template wrapper, given a required tag, possibly searching up or down from the current context.  More... 
 | 
|  | 
| template<class T , class Container > | 
| void | get (Container *list, const TagSet &tags, SearchDirection dir=SearchUp) const | 
|  | Generic list of objects access template wrapper, given a set of required tags, possibly searching up or down from the current context.  More... 
 | 
|  | 
| virtual void | setMechanicalState (BaseObject *) | 
|  | Mechanical Degrees-of-Freedom.  More... 
 | 
|  | 
| virtual void | setTopology (BaseObject *) | 
|  | Topology.  More... 
 | 
|  | 
| virtual bool | addObject (sptr< BaseObject >, TypeOfInsertion=TypeOfInsertion::AtEnd) | 
|  | Add an object, or return false if not supported.  More... 
 | 
|  | 
| virtual bool | removeObject (sptr< BaseObject >) | 
|  | Remove an object, or return false if not supported.  More... 
 | 
|  | 
| virtual void | notifyAddSlave (core::objectmodel::BaseObject *master, core::objectmodel::BaseObject *slave) | 
|  | 
| virtual void | notifyRemoveSlave (core::objectmodel::BaseObject *master, core::objectmodel::BaseObject *slave) | 
|  | 
| virtual void | notifyMoveSlave (core::objectmodel::BaseObject *previousMaster, core::objectmodel::BaseObject *master, core::objectmodel::BaseObject *slave) | 
|  |