|
Component is the main interface class to pass information to the system managers each will decide whether to handle a component of a given type or not. More...
#include <SurgSim/Framework/Component.h>
Public Member Functions | |
| Component (const std::string &name) | |
| Constructor. More... | |
| virtual | ~Component () |
| Destructor. More... | |
| std::string | getName () const |
| Gets component name. More... | |
| std::string | getFullName () const |
| Gets a string containing the name of the Component and (if it has one) its SceneElement. More... | |
| void | setName (const std::string &name) |
| Sets the name of component. More... | |
| boost::uuids::uuid | getUuid () const |
| Gets the id of the component. More... | |
| bool | isInitialized () const |
| bool | initialize (const std::weak_ptr< Runtime > &runtime) |
| Initialize this component, this needs to be called before wakeUp() can be called. More... | |
| bool | isAwake () const |
| bool | wakeUp () |
| Wakeup this component, this will be called when the component is inserted into the ComponentManager that is responsible for handling this component. More... | |
| void | retire () |
| Retire this component, this will be called when the component is removed from the ComponentManager that is responsible for handling this component. More... | |
| void | setScene (std::weak_ptr< Scene > scene) |
| Sets the scene. More... | |
| std::shared_ptr< Scene > | getScene () |
| Gets the scene. More... | |
| void | setSceneElement (std::weak_ptr< SceneElement > sceneElement) |
| Sets the scene element. More... | |
| std::shared_ptr< SceneElement > | getSceneElement () |
| Gets the scene element. More... | |
| std::shared_ptr< const SceneElement > | getSceneElement () const |
| Gets the scene element, constant version. More... | |
| std::shared_ptr< Runtime > | getRuntime () const |
| Get the runtime which contains this component. More... | |
| virtual std::string | getClassName () const |
| The class name for this class, this being the base class it should return SurgSim::Framework::Component but this would make missing implemenentations of this hard to catch, therefore this calls SURGSIM_FAILURE. More... | |
| std::shared_ptr< Component > | getSharedPtr () |
| Gets a shared pointer to this component. More... | |
| virtual bool | doInitialize ()=0 |
| Interface to be implemented by derived classes. More... | |
| virtual bool | doWakeUp ()=0 |
| Interface to be implemented by derived classes. More... | |
| virtual void | doRetire () |
| Interface to be implemented by derived classes Has a default implementation, does nothing. More... | |
| bool | isActive () const |
| virtual void | setLocalActive (bool val) |
| Set the component's active state. More... | |
| bool | isLocalActive () const |
Public Member Functions inherited from SurgSim::Framework::Accessible | |
| Accessible () | |
| Default Constructor. More... | |
| ~Accessible () | |
| Destructor. More... | |
| template<class T > | |
| T | getValue (const std::string &name) const |
| Retrieves the value with the name by executing the getter if it is found and tries to convert it to the given type. More... | |
| boost::any | getValue (const std::string &name) const |
| Retrieves the value with the name by executing the getter if it is found. More... | |
| template<class T > | |
| bool | getValue (const std::string &name, T *value) const |
| Retrieves the value with the name by executing the getter if it is found, and converts it to the type of the output parameter. More... | |
| void | setValue (const std::string &name, const boost::any &value) |
| Sets a value of a property that has setter. More... | |
| bool | isReadable (const std::string &name) const |
| Check whether a property is readable. More... | |
| bool | isWriteable (const std::string &name) const |
| Check whether a property is writable. More... | |
| void | setGetter (const std::string &name, GetterType func) |
| Sets a getter for a given property. More... | |
| void | setSetter (const std::string &name, SetterType func) |
| Sets a setter for a given property. More... | |
| void | setAccessors (const std::string &name, GetterType getter, SetterType setter) |
| Sets the accessors getter and setter in one function. More... | |
| void | removeAccessors (const std::string &name) |
| Removes all the accessors (getter and setter) for a given property. More... | |
| void | forwardProperty (const std::string &name, const Accessible &target, const std::string &targetProperty) |
| Adds a property with the given name that uses the targets accessors, in effect forwarding the value to the target. More... | |
| void | setSerializable (const std::string &name, EncoderType encoder, DecoderType decoder) |
| Sets the functions used to convert data from and to a YAML::Node. More... | |
| void | setDecoder (const std::string &name, DecoderType decoder) |
| Sets the functions used to convert data from a YAML::Node. More... | |
| YAML::Node | encode () const |
| Encode this Accessible to a YAML::Node. More... | |
| void | decode (const YAML::Node &node, const std::vector< std::string > &ignoredProperties=std::vector< std::string >()) |
| Decode this Accessible from a YAML::Node, will throw an exception if the data type cannot be converted. More... | |
| template<> | |
| boost::any | getValue (const std::string &name) const |
Protected Member Functions | |
| virtual std::shared_ptr< PoseComponent > | getPoseComponent () |
| Get the PoseComponent for this component. More... | |
| virtual std::shared_ptr< const PoseComponent > | getPoseComponent () const |
| Get the PoseComponent for this component, constant access. More... | |
Private Attributes | |
| std::string | m_name |
| Name of this component. More... | |
| boost::uuids::uuid | m_uuid |
| Id of this component. More... | |
| std::weak_ptr< Runtime > | m_runtime |
| Runtime which contains this component. More... | |
| std::weak_ptr< Scene > | m_scene |
| Scene which contains this component. More... | |
| std::weak_ptr< SceneElement > | m_sceneElement |
| SceneElement which contains this component. More... | |
| bool | m_didInit |
| Indicates if doInitialize() has been called. More... | |
| bool | m_didWakeUp |
| Indicates if doWakeup() has been called. More... | |
| bool | m_isInitialized |
| Indicates if this component is initialized. More... | |
| bool | m_isAwake |
| Indicates if this component is awake. More... | |
| bool | m_isLocalActive |
| Indicates if this component is active. More... | |
Additional Inherited Members | |
Public Types inherited from SurgSim::Framework::Accessible | |
| typedef std::function< boost::any(void)> | GetterType |
| typedef std::function< void(boost::any)> | SetterType |
| typedef std::function< YAML::Node(void)> | EncoderType |
| typedef std::function< void(const YAML::Node *)> | DecoderType |
Public Types inherited from SurgSim::Framework::FactoryBase1< Component, std::string > | |
| typedef ObjectFactory1< Component, std::string > | FactoryType |
Static Public Member Functions inherited from SurgSim::Framework::FactoryBase1< Component, std::string > | |
| static FactoryType & | getFactory () |
Component is the main interface class to pass information to the system managers each will decide whether to handle a component of a given type or not.
Components will get initialized by having doInit(), and doWakeUp() called in succession, all components together will have doInit() called before any component will recieve doWakeUp()
|
explicit |
Constructor.
| name | Name of the component |
|
virtual |
Destructor.
|
pure virtual |
Interface to be implemented by derived classes.
Implemented in SurgSim::Graphics::Camera, SurgSim::Graphics::View, SurgSim::Physics::VirtualToolCoupler, SurgSim::Physics::FemRepresentation, SurgSim::Graphics::OsgView, SurgSim::Physics::DeformableRepresentation, SurgSim::Particles::SphRepresentation, SurgSim::Physics::MassSpringRepresentation, SurgSim::Particles::Emitter, SurgSim::Physics::RigidRepresentation, SurgSim::Physics::RigidRepresentationBase, SurgSim::Blocks::PoseInterpolator, SurgSim::Graphics::OsgTextRepresentation, SurgSim::Graphics::OsgScreenSpaceQuadRepresentation, SurgSim::Particles::Representation, SurgSim::Blocks::TransferPhysicsToGraphicsMeshBehavior, SurgSim::Framework::SamplingMetricBase, SurgSim::Graphics::OsgMaterial, SurgSim::Blocks::FunctionBehavior, SurgSim::Physics::Fem3DRepresentation, SurgSim::Graphics::OsgSkeletonRepresentation, SurgSim::Physics::Fem1DRepresentation, SurgSim::Blocks::KeyboardTogglesComponentBehavior, SurgSim::Graphics::PaintBehavior, SurgSim::Physics::Fem2DRepresentation, SurgSim::Framework::TransferPropertiesBehavior, SurgSim::Graphics::OsgMeshRepresentation, SurgSim::Particles::ParticlesCollisionRepresentation, SurgSim::Particles::Sink, SurgSim::Physics::DeformableCollisionRepresentation, SurgSim::Blocks::VisualizeConstraintsBehavior, SurgSim::Blocks::VisualizeContactsBehavior, SurgSim::Blocks::TransferParticlesToPointCloudBehavior, SurgSim::Blocks::TransferPhysicsToPointCloudBehavior, SurgSim::Blocks::KeyboardCallbackBehavior, SurgSim::Blocks::TransferPhysicsToVerticesBehavior, SurgSim::Blocks::DriveElementFromInputBehavior, SurgSim::Blocks::DebugDumpBehavior, SurgSim::Blocks::CompoundShapeToGraphics, SurgSim::Framework::PoseComponent, SurgSim::Graphics::OsgSceneryRepresentation, SurgSim::Input::InputComponent, SurgSim::Input::OutputComponent, SurgSim::Collision::ShapeCollisionRepresentation, SurgSim::Framework::Representation, SurgSim::Graphics::OsgCurveRepresentation, SurgSim::Physics::ConstraintComponent, SurgSim::Collision::ElementContactFilter, SurgSim::Blocks::KeyBehavior, and SerializationMockComponent.
|
virtual |
Interface to be implemented by derived classes Has a default implementation, does nothing.
Reimplemented in SurgSim::Collision::Representation, SurgSim::Physics::VirtualToolCoupler, and SurgSim::Blocks::PoseInterpolator.
|
pure virtual |
Interface to be implemented by derived classes.
Implemented in SurgSim::Physics::VirtualToolCoupler, SurgSim::Graphics::OsgView, SurgSim::Physics::DeformableRepresentation, SurgSim::Particles::Emitter, SurgSim::Physics::RigidRepresentationBase, SurgSim::Blocks::PoseInterpolator, SurgSim::Blocks::TransferPhysicsToGraphicsMeshBehavior, SurgSim::Graphics::OsgMaterial, SurgSim::Blocks::FunctionBehavior, SurgSim::Framework::SamplingMetricBase, SurgSim::Blocks::KeyboardTogglesComponentBehavior, SurgSim::Graphics::PaintBehavior, SurgSim::Framework::TransferPropertiesBehavior, SurgSim::Physics::Fem3DRepresentation, SurgSim::Particles::ParticlesCollisionRepresentation, SurgSim::Particles::Sink, SurgSim::Blocks::VisualizeConstraintsBehavior, SurgSim::Physics::DeformableCollisionRepresentation, SurgSim::Blocks::VisualizeContactsBehavior, SurgSim::Blocks::TransferParticlesToPointCloudBehavior, SurgSim::Blocks::TransferPhysicsToPointCloudBehavior, SurgSim::Blocks::KeyboardCallbackBehavior, SurgSim::Blocks::DriveElementFromInputBehavior, SurgSim::Blocks::TransferPhysicsToVerticesBehavior, SurgSim::Blocks::DebugDumpBehavior, SurgSim::Blocks::CompoundShapeToGraphics, SurgSim::Framework::PoseComponent, SurgSim::Input::OutputComponent, SurgSim::Input::InputComponent, SurgSim::Graphics::OsgCurveRepresentation, SurgSim::Physics::ConstraintComponent, SurgSim::Framework::Representation, SurgSim::Collision::ElementContactFilter, SurgSim::Blocks::KeyBehavior, SurgSim::Blocks::SingleKeyBehavior, and SerializationMockComponent.
|
virtual |
The class name for this class, this being the base class it should return SurgSim::Framework::Component but this would make missing implemenentations of this hard to catch, therefore this calls SURGSIM_FAILURE.
| std::string SurgSim::Framework::Component::getFullName | ( | ) | const |
Gets a string containing the name of the Component and (if it has one) its SceneElement.
| std::string SurgSim::Framework::Component::getName | ( | ) | const |
Gets component name.
|
protectedvirtual |
Get the PoseComponent for this component.
Reimplemented in SurgSim::Framework::PoseComponent.
|
protectedvirtual |
Get the PoseComponent for this component, constant access.
Reimplemented in SurgSim::Framework::PoseComponent.
| std::shared_ptr< Runtime > SurgSim::Framework::Component::getRuntime | ( | ) | const |
Get the runtime which contains this component.
| std::shared_ptr< Scene > SurgSim::Framework::Component::getScene | ( | ) |
Gets the scene.
| std::shared_ptr< SceneElement > SurgSim::Framework::Component::getSceneElement | ( | ) |
Gets the scene element.
| std::shared_ptr< const SceneElement > SurgSim::Framework::Component::getSceneElement | ( | ) | const |
Gets the scene element, constant version.
| std::shared_ptr< Component > SurgSim::Framework::Component::getSharedPtr | ( | ) |
Gets a shared pointer to this component.
| boost::uuids::uuid SurgSim::Framework::Component::getUuid | ( | ) | const |
Gets the id of the component.
| bool SurgSim::Framework::Component::initialize | ( | const std::weak_ptr< Runtime > & | runtime | ) |
Initialize this component, this needs to be called before wakeUp() can be called.
This will be done automatically by the Scene hierarchy, either in SceneElement::addComponent(), if SceneElement has already been added to the Scene, or through Scene::addSceneElement() on all Components on the SceneElement.
| runtime | The runtime which contains this component. |
| bool SurgSim::Framework::Component::isActive | ( | ) | const |
| bool SurgSim::Framework::Component::isAwake | ( | ) | const |
| bool SurgSim::Framework::Component::isInitialized | ( | ) | const |
| bool SurgSim::Framework::Component::isLocalActive | ( | ) | const |
| void SurgSim::Framework::Component::retire | ( | ) |
Retire this component, this will be called when the component is removed from the ComponentManager that is responsible for handling this component.
This gives the component a chance to get rid of all shared objects
|
virtual |
Set the component's active state.
| val | If true component is active, inactive if false. |
Reimplemented in SurgSim::Physics::VirtualToolCoupler, and SurgSim::Graphics::OsgCamera.
| void SurgSim::Framework::Component::setName | ( | const std::string & | name | ) |
Sets the name of component.
| name | The name of this component. |
| void SurgSim::Framework::Component::setScene | ( | std::weak_ptr< Scene > | scene | ) |
Sets the scene.
| scene | The scene for this component |
| void SurgSim::Framework::Component::setSceneElement | ( | std::weak_ptr< SceneElement > | sceneElement | ) |
Sets the scene element.
| sceneElement | The scene element for this component. |
| bool SurgSim::Framework::Component::wakeUp | ( | ) |
Wakeup this component, this will be called when the component is inserted into the ComponentManager that is responsible for handling this component.
|
private |
Indicates if doInitialize() has been called.
|
private |
Indicates if doWakeup() has been called.
|
private |
Indicates if this component is awake.
|
private |
Indicates if this component is initialized.
|
private |
Indicates if this component is active.
|
private |
Name of this component.
|
private |
Runtime which contains this component.
|
private |
Scene which contains this component.
|
private |
SceneElement which contains this component.
|
private |
Id of this component.
1.8.13