Maintain a representation of the environment. More...
#include <world.h>
Classes | |
class | Action |
Represents an action that occurred on an object in the world. Several bits may be set indicating several things happened to the object. If the DESTROY bit is set, other bits will not be set. More... | |
struct | Object |
A representation of an object. More... | |
class | Observer |
class | ObserverHandle |
Public Types | |
enum | ActionBits { UNINITIALIZED = 0, CREATE = 1, DESTROY = 2, MOVE_SHAPE = 4, ADD_SHAPE = 8, REMOVE_SHAPE = 16 } |
typedef std::map< std::string, ObjectPtr >::const_iterator | const_iterator |
typedef boost::function< void(const ObjectConstPtr &, Action)> | ObserverCallbackFn |
Public Member Functions | |
ObserverHandle | addObserver (const ObserverCallbackFn &callback) |
register a callback function for notification of changes. callback will be called right after any change occurs to any Object. observer is the object which is requesting the changes. It is only used for identifying the callback in removeObserver(). More... | |
void | addToObject (const std::string &id, const std::vector< shapes::ShapeConstPtr > &shapes, const EigenSTL::vector_Affine3d &poses) |
Add shapes to an object in the map. This function makes repeated calls to addToObjectInternal() to add the shapes one by one. More... | |
void | addToObject (const std::string &id, const shapes::ShapeConstPtr &shape, const Eigen::Affine3d &pose) |
Add a shape to an object. If the object already exists, this call will add the shape to the object at the specified pose. Otherwise, the object is created and the specified shape is added. This calls addToObjectInternal(). More... | |
const_iterator | begin () const |
void | clearObjects () |
Clear all objects. If there are no other pointers to corresponding instances of Objects, the memory is freed. More... | |
const_iterator | end () const |
const_iterator | find (const std::string &id) const |
ObjectConstPtr | getObject (const std::string &id) const |
Get a particular object. More... | |
std::vector< std::string > | getObjectIds () const |
Get the list of Object ids. More... | |
bool | hasObject (const std::string &id) const |
Check if a particular object exists in the collision world. More... | |
MOVEIT_STRUCT_FORWARD (Object) | |
bool | moveObject (const std::string &id, const Eigen::Affine3d &transform) |
Move all shapes in an object according to the given transform specified in world frame. More... | |
bool | moveShapeInObject (const std::string &id, const shapes::ShapeConstPtr &shape, const Eigen::Affine3d &pose) |
Update the pose of a shape in an object. Shape equality is verified by comparing pointers. Returns true on success. More... | |
void | notifyObserverAllObjects (const ObserverHandle observer_handle, Action action) const |
bool | removeObject (const std::string &id) |
Remove a particular object. If there are no external pointers to the corresponding instance of Object, the memory is freed. Returns true on success and false if no such object was found. More... | |
void | removeObserver (const ObserverHandle observer_handle) |
remove a notifier callback More... | |
bool | removeShapeFromObject (const std::string &id, const shapes::ShapeConstPtr &shape) |
Remove shape from object. Shape equality is verified by comparing pointers. Ownership of the object is renounced (i.e. object is deleted if no external references exist) if this was the last shape in the object. Returns true on success and false if the object did not exist or did not contain the shape. More... | |
std::size_t | size () const |
World () | |
Constructor. More... | |
World (const World &other) | |
A copy constructor. other should not be changed while the copy constructor is running This does copy on write and should be quick. More... | |
virtual | ~World () |
Private Member Functions | |
virtual void | addToObjectInternal (const ObjectPtr &obj, const shapes::ShapeConstPtr &shape, const Eigen::Affine3d &pose) |
void | ensureUnique (ObjectPtr &obj) |
Make sure that the object named id is known only to this instance of the World. If the object is known outside of it, a clone is made so that it can be safely modified later on. More... | |
void | notify (const ObjectConstPtr &, Action) |
void | notifyAll (Action action) |
Private Attributes | |
std::map< std::string, ObjectPtr > | objects_ |
std::vector< Observer * > | observers_ |
typedef std::map<std::string, ObjectPtr>::const_iterator collision_detection::World::const_iterator |
typedef boost::function<void(const ObjectConstPtr&, Action)> collision_detection::World::ObserverCallbackFn |
collision_detection::World::World | ( | const World & | other | ) |
World::ObserverHandle collision_detection::World::addObserver | ( | const ObserverCallbackFn & | callback | ) |
register a callback function for notification of changes. callback will be called right after any change occurs to any Object. observer is the object which is requesting the changes. It is only used for identifying the callback in removeObserver().
void collision_detection::World::addToObject | ( | const std::string & | id, |
const std::vector< shapes::ShapeConstPtr > & | shapes, | ||
const EigenSTL::vector_Affine3d & | poses | ||
) |
Add shapes to an object in the map. This function makes repeated calls to addToObjectInternal() to add the shapes one by one.
void collision_detection::World::addToObject | ( | const std::string & | id, |
const shapes::ShapeConstPtr & | shape, | ||
const Eigen::Affine3d & | pose | ||
) |
Add a shape to an object. If the object already exists, this call will add the shape to the object at the specified pose. Otherwise, the object is created and the specified shape is added. This calls addToObjectInternal().
|
inlineprivatevirtual |
|
inline |
void collision_detection::World::clearObjects | ( | ) |
|
inline |
|
private |
|
inline |
World::ObjectConstPtr collision_detection::World::getObject | ( | const std::string & | id | ) | const |
std::vector< std::string > collision_detection::World::getObjectIds | ( | ) | const |
bool collision_detection::World::hasObject | ( | const std::string & | id | ) | const |
collision_detection::World::MOVEIT_STRUCT_FORWARD | ( | Object | ) |
bool collision_detection::World::moveObject | ( | const std::string & | id, |
const Eigen::Affine3d & | transform | ||
) |
bool collision_detection::World::moveShapeInObject | ( | const std::string & | id, |
const shapes::ShapeConstPtr & | shape, | ||
const Eigen::Affine3d & | pose | ||
) |
|
private |
|
private |
void collision_detection::World::notifyObserverAllObjects | ( | const ObserverHandle | observer_handle, |
Action | action | ||
) | const |
bool collision_detection::World::removeObject | ( | const std::string & | id | ) |
void collision_detection::World::removeObserver | ( | const ObserverHandle | observer_handle | ) |
bool collision_detection::World::removeShapeFromObject | ( | const std::string & | id, |
const shapes::ShapeConstPtr & | shape | ||
) |
Remove shape from object. Shape equality is verified by comparing pointers. Ownership of the object is renounced (i.e. object is deleted if no external references exist) if this was the last shape in the object. Returns true on success and false if the object did not exist or did not contain the shape.
|
inline |
|
private |
|
private |