SurgSim::Particles::Representation Class Referenceabstract

The Representation class defines the base class for all Particle System. More...

`#include <SurgSim/Particles/Representation.h>`

Inheritance diagram for SurgSim::Particles::Representation:

## Public Member Functions

| Representation (const std::string &name)
| Constructor. More...
virtual | ~Representation ()
| Destructor. More...
void | setMaxParticles (size_t maxParticles)
| Set the maximum number of particles of this system. More...
size_t | getMaxParticles () const
bool | addParticle (const Particle &particle)
| Add a particle. More...
bool | addParticle (const Math::Vector3d &position, const Math::Vector3d &velocity, double lifetime)
| Add a particle. More...
void | removeParticle (size_t index)
| Remove a particle. More...
SurgSim::DataStructures::BufferedValue< Particles > & | getParticles ()
| Get the particles. More...
void | update (double dt)
| Update the particle system. More...
void | handleCollisions (double dt)
| Handle collisions with particle system. More...
void | setCollisionRepresentation (std::shared_ptr< SurgSim::Collision::Representation > representation)
| Set the collision representation for this Particle Representation. More...
std::shared_ptr< SurgSim::Collision::Representation > | getCollisionRepresentation () const
| Get the collision representation for this Particle Representation. More...
Public Member Functions inherited from SurgSim::Framework::Representation
| Representation (const std::string &name)
| Constructor. More...
virtual void | setLocalPose (const SurgSim::Math::RigidTransform3d &pose)
| Set the pose of the representation with respect to the Scene Element. More...
virtual SurgSim::Math::RigidTransform3d | getLocalPose () const
| Get the pose of the representation with respect to the Scene Element. More...
virtual SurgSim::Math::RigidTransform3d | getPose () const
| Get the pose of the representation in world coordinates. More...
Public Member Functions inherited from SurgSim::Framework::Component
| 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 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 bool | doUpdate (double dt)=0
| Implementation of the specific behavior of the particle system. More...
virtual bool | doHandleCollisions (double dt, const SurgSim::Collision::ContactMapType &collisions)=0
| Implementation of the specific collision handling of the particle system. More...
bool | doInitialize () override
| Interface to be implemented by derived classes. More...
Protected Member Functions inherited from SurgSim::Framework::Component
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...

## Protected Attributes

size_t | m_maxParticles
| Maximum amount of particles allowed in this particle system. More...
SurgSim::DataStructures::BufferedValue< Particles > | m_particles
| BufferedValue of particles. More...
std::shared_ptr< SurgSim::Framework::Logger > | m_logger
| Logger used by the particle system. More...
std::shared_ptr< SurgSim::Collision::Representation > | m_collisionRepresentation
| This entity's collision representation. 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 ()

## Detailed Description

The Representation class defines the base class for all Particle System.

## Constructor & Destructor Documentation

## Representation()

SurgSim::Particles::Representation::Representation | ( | const std::string & | name | ) |

explicit

Constructor.

Parameters

  name | The representation's name

## ~Representation()

SurgSim::Particles::Representation::~Representation | ( |  | ) |

virtual

Destructor.

Reimplemented from SurgSim::Framework::Representation.

## Member Function Documentation

## addParticle() [1/2]

bool SurgSim::Particles::Representation::addParticle | ( | const Particle & | particle | ) |

Add a particle.

Parameters

  particle | The new particle

Returns
  True if the particle was successfully added, false otherwise

## addParticle() [2/2]

bool SurgSim::Particles::Representation::addParticle | ( | const Math::Vector3d & | position,
|  | const Math::Vector3d & | velocity,
|  | double | lifetime
| ) |  |

Add a particle.

Parameters

  position | The position of the new particle
  velocity | The velocity of the new particle
  lifetime | The lenght of time the particle will exist

Returns
  True if the particle was successfully added, false otherwise

## doHandleCollisions()

virtual bool SurgSim::Particles::Representation::doHandleCollisions | ( | double | dt,
|  | const SurgSim::Collision::ContactMapType & | collisions
| ) |  |

protected pure virtual

Implementation of the specific collision handling of the particle system.

Returns
  True if succeeded, False otherwise.

Implemented in SurgSim::Particles::SphRepresentation.

## doInitialize()

bool SurgSim::Particles::Representation::doInitialize | ( |  | ) |

override protected virtual

Interface to be implemented by derived classes.

Returns
  True if component is initialized successfully; otherwise, false.

Reimplemented from SurgSim::Framework::Representation.

Reimplemented in SurgSim::Particles::SphRepresentation.

## doUpdate()

virtual bool SurgSim::Particles::Representation::doUpdate | ( | double | dt | ) |

protected pure virtual

Implementation of the specific behavior of the particle system.

Returns
  True if update succeeded, False otherwise.

Implemented in SurgSim::Particles::SphRepresentation.

## getCollisionRepresentation()

std::shared_ptr< SurgSim::Collision::Representation > SurgSim::Particles::Representation::getCollisionRepresentation | ( |  | ) | const

Get the collision representation for this Particle Representation.

Returns
  the collision representation

## getMaxParticles()

size_t SurgSim::Particles::Representation::getMaxParticles | ( |  | ) | const

Returns
  The number of particles allowed in this system.

## getParticles()

SurgSim::DataStructures::BufferedValue< Particles > & SurgSim::Particles::Representation::getParticles | ( |  | ) |

Get the particles.

Returns
  The particles in a BufferedValue

## handleCollisions()

void SurgSim::Particles::Representation::handleCollisions | ( | double | dt | ) |

Handle collisions with particle system.

Parameters

  dt | The time step.

## removeParticle()

void SurgSim::Particles::Representation::removeParticle | ( | size_t | index | ) |

Remove a particle.

Note
  The particle will be removed during the next update

Parameters

  index | of the particle

## setCollisionRepresentation()

void SurgSim::Particles::Representation::setCollisionRepresentation | ( | std::shared_ptr< SurgSim::Collision::Representation > | representation | ) |

Set the collision representation for this Particle Representation.

Parameters

  representation | The collision representation to be set

## setMaxParticles()

void SurgSim::Particles::Representation::setMaxParticles | ( | size_t | maxParticles | ) |

Set the maximum number of particles of this system.

Note
  Once initialized, it can't be changed.

Parameters

  maxParticles | The maximum number of particles in this system.

## update()

void SurgSim::Particles::Representation::update | ( | double | dt | ) |

Update the particle system.

Parameters

  dt | The time step.

## Member Data Documentation

## m_collisionRepresentation

std::shared_ptr<SurgSim::Collision::Representation> SurgSim::Particles::Representation::m_collisionRepresentation

protected

This entity's collision representation.

## m_logger

std::shared_ptr<SurgSim::Framework::Logger> SurgSim::Particles::Representation::m_logger

protected

Logger used by the particle system.

## m_maxParticles

size_t SurgSim::Particles::Representation::m_maxParticles

protected

Maximum amount of particles allowed in this particle system.

## m_particles

SurgSim::DataStructures::BufferedValue<Particles> SurgSim::Particles::Representation::m_particles

protected

BufferedValue of particles.

The documentation for this class was generated from the following files:

- SurgSim/Particles/Representation.h
- SurgSim/Particles/Representation.cpp