SOFA API  4a493466
Open source framework for multi-physics simuation
sofa::core::objectmodel::Context Class Reference

#include <Context.h>

Implementation of BaseContext, storing all shared parameters in Datas. More...

Inheritance diagram for sofa::core::objectmodel::Context:

Detailed Description

Implementation of BaseContext, storing all shared parameters in Datas.

Public Attributes

Data< boolis_activated
 To Activate a node. More...
 
Data< Vec3worldGravity_
 Gravity IN THE WORLD COORDINATE SYSTEM. More...
 
Data< SRealdt_
 Time step. More...
 
Data< SRealtime_
 Current time. More...
 
Data< boolanimate_
 Animate the Simulation(applied at initialization only) More...
 
Data< boold_isSleeping
 Tells if the context is sleeping, and thus ignored by visitors. More...
 
Data< boold_canChangeSleepingState
 Tells if the context can change its sleeping state. More...
 
- Public Attributes inherited from sofa::core::objectmodel::Base
helper::system::SofaOStream< helper::logging::Message::Warningserr
 
helper::system::SofaOStream< helper::logging::Message::Infosout
 
helper::system::SofaEndl< Basesendl
 runs the stream processing More...
 
Data< std::string > name
 Name of the object. More...
 
Data< boolf_printLog
 if true, emits extra messages at runtime. More...
 
Data< sofa::core::objectmodel::TagSetf_tags
 list of the subsets the objet belongs to More...
 
Data< sofa::defaulttype::BoundingBoxf_bbox
 this object bounding box More...
 
Data< ComponentStated_componentstate
 the object state More...
 
Data< ComponentState > & m_componentstate {d_componentstate}
 TODO bruno: uncomment once c++17 is enabled in SOFA. More...
 
std::string m_definitionSourceFileName {""}
 
int m_definitionSourceFilePos {-1}
 
std::string m_instanciationSourceFileName {""}
 
int m_instanciationSourceFilePos {-1}
 

Public Member Functions

 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...
 
Parameters
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 Vec3getGravity () 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...
 
Parameters Setters
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 setSleeping (bool val) override
 Sleeping state of the context. More...
 
void setChangeSleepingState (bool val) override
 Sleeping state change of the context. More...
 
virtual void setDisplayWorldGravity (bool val)
 Display flags: Gravity. More...
 
- Public Member Functions inherited from sofa::core::objectmodel::BaseContext
 SOFA_CLASS (BaseContext, Base)
 
virtual void setGravity (const Vec3 &)
 Gravity in local coordinates. More...
 
virtual BaseContextgetRootContext () const
 Get the root context of the graph. More...
 
virtual bool hasAncestor (const BaseContext *) const
 
virtual core::BaseStategetState () const
 Mechanical Degrees-of-Freedom. More...
 
virtual behavior::BaseMechanicalStategetMechanicalState () const
 Mechanical Degrees-of-Freedom. More...
 
virtual core::topology::TopologygetTopology () const
 Topology. More...
 
virtual core::topology::BaseMeshTopologygetMeshTopology (SearchDirection dir=SearchUp) const
 Mesh Topology (unified interface for both static and dynamic topologies) More...
 
virtual core::topology::BaseMeshTopologygetMeshTopologyLink (SearchDirection dir=SearchUp) const
 Mesh Topology (unified interface for both static and dynamic topologies) More...
 
virtual core::behavior::BaseMassgetMass () const
 Mass. More...
 
virtual core::visual::ShadergetShader () const
 Global Shader. More...
 
virtual void * getObject (const ClassInfo &class_info, SearchDirection dir=SearchUp) const
 
virtual void * getObject (const ClassInfo &class_info, const TagSet &tags, SearchDirection dir=SearchUp) const
 
virtual void * getObject (const ClassInfo &class_info, const std::string &path) const
 
virtual void getObjects (const ClassInfo &class_info, GetObjectsCallBack &container, SearchDirection dir=SearchUp) const
 
virtual void getObjects (const ClassInfo &class_info, GetObjectsCallBack &container, const TagSet &tags, SearchDirection dir=SearchUp) const
 
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 >
ContainergetObjects (Container *result, SearchDirection dir=SearchUp)
 Returns a list of object of type passed as a parameter. More...
 
template<class Container >
ContainergetObjects (Container &result, SearchDirection dir=SearchUp)
 
template<class Object = sofa::core::objectmodel::BaseObject>
std::vector< Object * > getObjects (SearchDirection dir=SearchUp)
 
template<class T >
Tget (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 >
Tget (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 >
Tget (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 >
Tget (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 >)
 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 executeVisitor (simulation::Visitor *, bool precomputedOrder=false)
 apply an action More...
 
virtual void propagateEvent (const core::ExecParams *params, Event *)
 Propagate an event. 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)
 
- Public Member Functions inherited from sofa::core::objectmodel::Base
virtual const BaseClassgetClass () const
 
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...
 
virtual 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
 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
 
const std::string getWarnings () const
 
const std::string getOutputs () const
 use getLoggedMessageAsString() or getLoggedMessage instead. More...
 
void clearWarnings ()
 use getLoggedMessageAsString() or getLoggedMessage instead. More...
 
void clearOutputs ()
 use clearLoggedMessages() instead More...
 
void processStream (std::ostream &out)
 use clearLoggedMessages() instead More...
 
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::TagSetgetTags () 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
 
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)
 Write the current field values to the given map of name -> value pairs. More...
 
void writeDatas (std::ostream &out, const std::string &separator=" ")
 
BaseDatafindData (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...
 
BaseLinkfindLink (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 (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 removeLink (BaseLink *l)
 Remove a link. More...
 
void addAlias (BaseLink *link, const char *alias)
 Add an alias to a Link. More...
 
const VecDatagetDataFields () const
 Accessor to the vector containing all the fields of this object. More...
 
const MapDatagetDataAliases () const
 Accessor to the map containing all the aliases of this object. More...
 
const VecLinkgetLinks () const
 Accessor to the vector containing all the fields of this object. More...
 
const MapLinkgetLinkAliases () 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)
 
virtual void * findLinkDestClass (const BaseClass *destType, const std::string &path, const BaseLink *link)
 
template<class T >
bool findLinkDest (T *&ptr, const std::string &path, const BaseLink *link)
 
virtual void copyAspect (int destAspect, int srcAspect)
 Copy the source aspect to the destination aspect for each Data in the component. More...
 
virtual void releaseAspect (int aspect)
 Release memory allocated for the specified aspect. More...
 

Protected Member Functions

 Context ()
 
virtual ~Context () override
 
- Protected Member Functions inherited from sofa::core::objectmodel::BaseContext
 BaseContext ()
 
 ~BaseContext () override
 
- 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...
 

Additional Inherited Members

- Protected Attributes inherited from sofa::core::objectmodel::Base
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::BaseContext
static BaseContextgetDefault ()
 
- Static Public Member Functions inherited from sofa::core::objectmodel::Base
static const MyClassGetClass ()
 
template<class T >
static void dynamicCast (T *&ptr, Base *b)
 
template<class T >
static std::string typeName (const T *ptr=nullptr)
 
template<class T >
static std::string className (const T *ptr=nullptr)
 
template<class T >
static std::string namespaceName (const T *ptr=nullptr)
 
template<class T >
static std::string templateName (const T *ptr=nullptr)
 
template<class T >
static std::string shortName (const T *ptr=nullptr, BaseObjectDescription *=nullptr)
 

Attribute details

Data<bool> sofa::core::objectmodel::Context::animate_

Animate the Simulation(applied at initialization only)

Data<bool> sofa::core::objectmodel::Context::d_canChangeSleepingState

Tells if the context can change its sleeping state.

Data<bool> sofa::core::objectmodel::Context::d_isSleeping

Tells if the context is sleeping, and thus ignored by visitors.

Data<SReal> sofa::core::objectmodel::Context::dt_

Time step.

Data<bool> sofa::core::objectmodel::Context::is_activated

To Activate a node.

Data<SReal> sofa::core::objectmodel::Context::time_

Current time.

Data<Vec3> sofa::core::objectmodel::Context::worldGravity_

Gravity IN THE WORLD COORDINATE SYSTEM.

Constructor details

sofa::core::objectmodel::Context::Context ( )
protected
virtual sofa::core::objectmodel::Context::~Context ( )
inlineoverrideprotectedvirtual

Function details

bool sofa::core::objectmodel::Context::canChangeSleepingState ( ) const
overridevirtual

The Context can change its sleeping state.

Reimplemented from sofa::core::objectmodel::BaseContext.

void sofa::core::objectmodel::Context::copyContext ( const Context c)

Copy the context variables from the given instance.

void sofa::core::objectmodel::Context::copySimulationContext ( const Context c)

Copy the context variables of visualization from the given instance.

bool sofa::core::objectmodel::Context::getAnimate ( ) const
overridevirtual

Animation flag.

Reimplemented from sofa::core::objectmodel::BaseContext.

SReal sofa::core::objectmodel::Context::getDt ( ) const
overridevirtual

Simulation timestep.

Reimplemented from sofa::core::objectmodel::BaseContext.

const Context::Vec3 & sofa::core::objectmodel::Context::getGravity ( ) const
overridevirtual

Gravity in local coordinates.

Gravity vector in world coordinates.

Reimplemented from sofa::core::objectmodel::BaseContext.

SReal sofa::core::objectmodel::Context::getTime ( ) const
overridevirtual

Simulation time.

Reimplemented from sofa::core::objectmodel::BaseContext.

bool sofa::core::objectmodel::Context::isActive ( ) const
overridevirtual

The Context is active.

Reimplemented from sofa::core::objectmodel::BaseContext.

bool sofa::core::objectmodel::Context::isSleeping ( ) const
overridevirtual

The Context is sleeping.

Reimplemented from sofa::core::objectmodel::BaseContext.

void sofa::core::objectmodel::Context::setActive ( bool  val)
overridevirtual

State of the context.

Reimplemented from sofa::core::objectmodel::BaseContext.

void sofa::core::objectmodel::Context::setAnimate ( bool  val)
overridevirtual

Animation flag.

Reimplemented from sofa::core::objectmodel::BaseContext.

void sofa::core::objectmodel::Context::setChangeSleepingState ( bool  val)
overridevirtual

Sleeping state change of the context.

Reimplemented from sofa::core::objectmodel::BaseContext.

virtual void sofa::core::objectmodel::Context::setDisplayWorldGravity ( bool  val)
inlinevirtual

Display flags: Gravity.

void sofa::core::objectmodel::Context::setDt ( SReal  dt)
overridevirtual

Simulation timestep.

Reimplemented from sofa::core::objectmodel::BaseContext.

void sofa::core::objectmodel::Context::setGravity ( const Vec3 g)
override

Gravity in local coordinates.

Gravity vector.

Gravity vector

void sofa::core::objectmodel::Context::setSleeping ( bool  val)
overridevirtual

Sleeping state of the context.

Reimplemented from sofa::core::objectmodel::BaseContext.

Reimplemented in sofa::simulation::Node.

void sofa::core::objectmodel::Context::setTime ( SReal  t)
virtual

Simulation time.

sofa::core::objectmodel::Context::SOFA_CLASS ( Context  ,
BaseContext   
)