Aggregates all the contact information generated by the collision detection engine. More...
#include <physics/physics.hh>
Public Member Functions | |
ContactManager () | |
Constructor. More... | |
virtual | ~ContactManager () |
Destructor. More... | |
void | Clear () |
Clear all stored contacts. More... | |
std::string | CreateFilter (const std::string &_topic, const std::vector< std::string > &_collisions) |
Create a filter for contacts. More... | |
std::string | CreateFilter (const std::string &_topic, const std::string &_collision) |
Create a filter for contacts. More... | |
std::string | CreateFilter (const std::string &_name, const std::map< std::string, physics::CollisionPtr > &_collisions) |
Create a filter for contacts. More... | |
Contact * | GetContact (unsigned int _index) const |
Get a single contact by index. More... | |
unsigned int | GetContactCount () const |
Return the number of valid contacts. More... | |
const std::vector< Contact * > & | GetContacts () const |
Get all the contacts. More... | |
unsigned int | GetFilterCount () |
Get the number of filters in the contact manager. More... | |
bool | HasFilter (const std::string &_name) |
Check if a filter with the specified name exists. More... | |
void | Init (WorldPtr _world) |
Initialize the ContactManager. More... | |
Contact * | NewContact (Collision *_collision1, Collision *_collision2, const common::Time &_time) |
Add a new contact. More... | |
void | PublishContacts () |
Publish all contacts in a msgs::Contacts message. More... | |
void | RemoveFilter (const std::string &_name) |
Remove a contacts filter and the associated custom publisher param[in] _name Filter name. More... | |
void | ResetCount () |
Set the contact count to zero. More... | |
Aggregates all the contact information generated by the collision detection engine.
ContactManager | ( | ) |
Constructor.
|
virtual |
Destructor.
void Clear | ( | ) |
Clear all stored contacts.
std::string CreateFilter | ( | const std::string & | _topic, |
const std::vector< std::string > & | _collisions | ||
) |
Create a filter for contacts.
A new publisher will be created that publishes contacts associated to the input collisions. param[in] _name Filter name. param[in] _collisions A list of collision names used for filtering.
std::string CreateFilter | ( | const std::string & | _topic, |
const std::string & | _collision | ||
) |
Create a filter for contacts.
A new publisher will be created that publishes contacts associated to the input collision. param[in] _name Filter name. param[in] _collision A collision name used for filtering.
std::string CreateFilter | ( | const std::string & | _name, |
const std::map< std::string, physics::CollisionPtr > & | _collisions | ||
) |
Create a filter for contacts.
A new publisher will be created that publishes contacts associated to the input collision. param[in] _name Filter name. param[in] _collisions A map of collision name to collision object.
Contact* GetContact | ( | unsigned int | _index | ) | const |
Get a single contact by index.
The index must be between 0 and ContactManager::GetContactCount.
[in] | _index | Index of the Contact to return. |
unsigned int GetContactCount | ( | ) | const |
Return the number of valid contacts.
const std::vector<Contact *>& GetContacts | ( | ) | const |
Get all the contacts.
The return vector may have invalid contacts. Only use contents of the vector between 0 and ContactManager::GetContactCount
unsigned int GetFilterCount | ( | ) |
Get the number of filters in the contact manager.
return Number of filters
bool HasFilter | ( | const std::string & | _name | ) |
Check if a filter with the specified name exists.
param[in] _name Name of filter. return True if the filter exists.
void Init | ( | WorldPtr | _world | ) |
Initialize the ContactManager.
This is required in order to publish contact messages via the ContactManager::PublishContacts method.
[in] | _world | Pointer to the world that is initializing the contact manager. |
Contact* NewContact | ( | Collision * | _collision1, |
Collision * | _collision2, | ||
const common::Time & | _time | ||
) |
Add a new contact.
Noramlly this is only used by a Physics/Collision engine when a new contact is generated. All other users should just make use of the accessor functions.
If no one is listening, then the return value will be NULL. This is a signal to the Physics engine that it can skip the extra processing necessary to get back contact information.
void PublishContacts | ( | ) |
Publish all contacts in a msgs::Contacts message.
void RemoveFilter | ( | const std::string & | _name | ) |
Remove a contacts filter and the associated custom publisher param[in] _name Filter name.
void ResetCount | ( | ) |
Set the contact count to zero.