opensurgsim
|
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 <Component.h>
Public Member Functions | |
Component (const std::string &name) | |
Constructor. More... | |
virtual | ~Component () |
Destructor. | |
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. | |
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. | |
bool | isActive () const |
virtual void | setLocalActive (bool val) |
Set the component's active state. More... | |
bool | isLocalActive () const |
![]() | |
Accessible () | |
Default Constructor. | |
~Accessible () | |
Destructor. | |
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... | |
std::vector< std::string > | getProperties () |
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... | |
Additional Inherited Members | |
![]() | |
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 |
![]() | |
typedef ObjectFactory1< Component, std::string > | FactoryType |
![]() | |
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 |
|
pure virtual |
Interface to be implemented by derived classes.
Implemented in SurgSim::Physics::MockFem1DRepresentation, SurgSim::Physics::MassSpringRepresentation, SurgSim::Physics::VirtualToolCoupler, SurgSim::Physics::FemRepresentation, MockBehavior, SurgSim::Graphics::OsgView, SurgSim::Physics::DeformableRepresentation, SurgSim::Particles::SphRepresentation, MockComponent, TestComponent3, SurgSim::Physics::RigidRepresentationBase, StaplerBehavior, SurgSim::Graphics::OsgTextRepresentation, SurgSim::Graphics::OsgScreenSpaceQuadRepresentation, SurgSim::Particles::Representation, SurgSim::Graphics::OsgMaterial, SurgSim::Framework::SamplingMetricBase, PrintoutBehavior, SurgSim::Physics::Fem3DRepresentation, SurgSim::Graphics::OsgSkeletonRepresentation, SurgSim::Physics::Fem1DRepresentation, SurgSim::Blocks::KeyboardTogglesComponentBehavior, SurgSim::Graphics::PaintBehavior, SurgSim::Physics::Fem2DRepresentation, SurgSim::Graphics::OsgMeshRepresentation, SurgSim::Blocks::VisualizeContactsBehavior, TestComponent2, SurgSim::Blocks::DriveElementFromInputBehavior, SurgSim::Blocks::KeyboardCallbackBehavior, SurgSim::Blocks::TransferPhysicsToVerticesBehavior, SurgSim::Blocks::CompoundShapeToGraphics, SurgSim::Input::InputComponent, SurgSim::Input::OutputComponent, SurgSim::Blocks::KnotIdentificationBehavior, SurgSim::Collision::ShapeCollisionRepresentation, SurgSim::Graphics::OsgCurveRepresentation, MockComponent, SurgSim::Physics::ConstraintComponent, SurgSim::Framework::MockReceiver, SurgSim::EditDebug::VisualDebugBehavior, SurgSim::Collision::ElementContactFilter, SurgSim::Blocks::AddRandomSphereBehavior, SurgSim::Physics::RigidCollisionRepresentation, SurgSim::Blocks::KeyBehavior, TestComponent1, AddSphereFromInputBehavior, and SerializationMockComponent.
|
pure virtual |
Interface to be implemented by derived classes.
Implemented in SurgSim::Physics::VirtualToolCoupler, MockBehavior, SurgSim::Graphics::OsgView, SurgSim::Physics::DeformableRepresentation, MockComponent, TestComponent3, SurgSim::Graphics::Representation, SurgSim::Physics::RigidRepresentationBase, StaplerBehavior, PrintoutBehavior, SurgSim::Graphics::OsgMaterial, SurgSim::Framework::SamplingMetricBase, SurgSim::Blocks::KeyboardTogglesComponentBehavior, SurgSim::Graphics::PaintBehavior, SurgSim::Physics::Fem3DRepresentation, TestComponent2, SurgSim::Blocks::DriveElementFromInputBehavior, SurgSim::Blocks::VisualizeContactsBehavior, SurgSim::Blocks::KeyboardCallbackBehavior, SurgSim::Blocks::TransferPhysicsToVerticesBehavior, SurgSim::Blocks::CompoundShapeToGraphics, SurgSim::Input::OutputComponent, SurgSim::Input::InputComponent, SurgSim::Blocks::KnotIdentificationBehavior, MockComponent, SurgSim::Framework::MockReceiver, SurgSim::Graphics::OsgCurveRepresentation, SurgSim::Physics::ConstraintComponent, SurgSim::EditDebug::VisualDebugBehavior, SurgSim::Collision::ElementContactFilter, TestComponent1, SurgSim::Blocks::AddRandomSphereBehavior, SurgSim::Physics::RigidCollisionRepresentation, SurgSim::Blocks::KeyBehavior, SurgSim::Blocks::SingleKeyBehavior, AddSphereFromInputBehavior, 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.
Reimplemented in TestComponent3, TestComponent2, and TestComponent1.
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.
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.