A plugin that allows models to transport (teleport) to a new location. More...
#include <TransporterPlugin.hh>
Inherits WorldPlugin.
Public Types | |
typedef boost::shared_ptr< WorldPlugin > | TPtr |
plugin pointer type definition More... | |
Public Member Functions | |
TransporterPlugin () | |
Constructor. More... | |
virtual | ~TransporterPlugin () |
Destructor. More... | |
std::string | GetFilename () const |
Get the name of the handler. More... | |
std::string | GetHandle () const |
Get the short name of the handler. More... | |
PluginType | GetType () const |
Returns the type of the plugin. More... | |
virtual void | Init () |
virtual void | Load (physics::WorldPtr _world, sdf::ElementPtr _sdf) |
Load function. More... | |
virtual void | Reset () |
Static Public Member Functions | |
static TPtr | Create (const std::string &_filename, const std::string &_name) |
a class method that creates a plugin from a file name. More... | |
Protected Attributes | |
std::string | filename |
Path to the shared library file. More... | |
std::string | handleName |
Short name. More... | |
PluginType | type |
Type of plugin. More... | |
A plugin that allows models to transport (teleport) to a new location.
A transporter plugin uses multiple named <pads>, where each <pad> defines an outgoing region, an incoming pose, and a destination pad.
When a model enters a pad's outgoing region it is moved to the destination pad's incoming pose. This means the transporter plugin is only useful if at least two pads are defined.
The following is example usage in SDF:
<plugin filename="libTransporterPlugin.so" name="transporter"> <!-- Topic that facilitates manual activation of a pad. An activation message is only meaningful for pad's with manual activation. An activation message consists of a string message on this topic with a pad's name to activate. See examples/stand_alone/transporter.cc for an example for triggering a manual pad. --> <activation_topic>~/transporter</activation_topic> <!-- Pad 1, which is automatically updated. This means any model that enter the outgoing region will be moved. --> <pad name="pad1"> <destination>pad2</destination> <activation>auto</activation> <outgoing> <min>-.5 -.5 0</min> <max>.5 .5 1</max> </outgoing> <incoming> <pose>2 3.5 0 0 0 0</pose> </incoming> </pad> <!-- Pad 2 is manually updated. This means a model will be moved only if it is in the outgoing region and an activation message has been received. An activation message consists of a string message on the <activation_topic> topic with the pad's name. --> <pad name="pad2"> <destination>pad1</destination> <activation>manual</activation> <outgoing> <min>-.5 3.0 0</min> <max>.5 4.0 1</max> </outgoing> <incoming> <pose>2 0 0 0 0 0</pose> </incoming> </pad> </plugin>
|
inherited |
plugin pointer type definition
Constructor.
|
virtual |
Destructor.
|
inlinestaticinherited |
a class method that creates a plugin from a file name.
It locates the shared library and loads it dynamically.
[in] | _filename | the path to the shared library. |
[in] | _name | short name of the plugin |
|
inlineinherited |
Get the name of the handler.
|
inlineinherited |
Get the short name of the handler.
|
inlineinherited |
Returns the type of the plugin.
|
inlinevirtualinherited |
Reimplemented in ArrangePlugin, SimEventsPlugin, and RubblePlugin.
|
virtual |
Load function.
Called when a Plugin is first created, and after the World has been loaded. This function should not be blocking.
[in] | _world | Pointer the World |
[in] | _sdf | Pointer the the SDF element of the plugin. |
Implements WorldPlugin.
|
inlinevirtualinherited |
Reimplemented in ArrangePlugin.
|
protectedinherited |
Path to the shared library file.
|
protectedinherited |
Short name.
|
protectedinherited |
Type of plugin.