UGDK
|
#include <pyramidworks/collision/collisionobject.h>
Public Member Functions | |
CollisionObject (CollisionManager *manager, void *data) | |
~CollisionObject () | |
void | SearchCollisions (std::vector< CollisionInstance > &collision_list) const |
Search if there's any collision. | |
bool | IsColliding (const CollisionObject *obj) const |
Verifies if this CollisionObject is colliding with another CollisionObject. | |
void | AddCollisionLogic (const std::string &colclass, CollisionLogic *logic) |
Adds a new collision to the known collisions. | |
void | AddCollisionLogic (const char n[], CollisionLogic *logic) |
void | InitializeCollisionClass (const std::string &) |
Defines the CollisionClass associated with this object. | |
void | InitializeCollisionClass (const char n[]) |
void | StartColliding () |
Adds this object to it's CollisionClass object list. | |
void | StopColliding () |
Removes this object from it's CollisionClass object list. | |
const geometry::GeometricShape * | shape () const |
Returns the shape used. | |
void | set_shape (geometry::GeometricShape *shape) |
Changes the shape used. | |
ugdk::Vector2D | absolute_position () const |
TODO document. | |
void | MoveTo (const ugdk::Vector2D &position) |
TODO document. | |
ugdk::ikdtree::Box< 2 > | GetBoundingBox () const |
Wrapper to shape()->GetBoundingBox(absolute_position()) |
It encapsulates everything that is related to collisions, from finding the collisions to calling the corresponding methods.
A class that knows how to manage collisions.
pyramidworks::collision::CollisionObject::CollisionObject | ( | CollisionManager * | manager, |
void * | data | ||
) |
data | The data sent to the CollisionLogic when a collision happens. |
ugdk::Vector2D pyramidworks::collision::CollisionObject::absolute_position | ( | ) | const [inline] |
TODO document.
void pyramidworks::collision::CollisionObject::AddCollisionLogic | ( | const std::string & | colclass, |
CollisionLogic * | logic | ||
) |
Adds a new collision to the known collisions.
colclass | Name of the collision class. |
logic | Is not changed. |
void pyramidworks::collision::CollisionObject::AddCollisionLogic | ( | const char | n[], |
CollisionLogic * | logic | ||
) | [inline] |
Wrapper to shape()->GetBoundingBox(absolute_position())
void pyramidworks::collision::CollisionObject::InitializeCollisionClass | ( | const std::string & | colclass | ) |
Defines the CollisionClass associated with this object.
Warning: will quit the program with a Fatal Error if used to the collision_class is already set.
colclass | The CollisionClass to set to. |
void pyramidworks::collision::CollisionObject::InitializeCollisionClass | ( | const char | n[] | ) | [inline] |
bool pyramidworks::collision::CollisionObject::IsColliding | ( | const CollisionObject * | obj | ) | const |
Verifies if this CollisionObject is colliding with another CollisionObject.
obj | The CollisionObject to check against. |
void pyramidworks::collision::CollisionObject::MoveTo | ( | const ugdk::Vector2D & | position | ) |
TODO document.
void pyramidworks::collision::CollisionObject::SearchCollisions | ( | std::vector< CollisionInstance > & | collision_list | ) | const |
Search if there's any collision.
For each CollisionClass this object knows how to collide with, it gathers a list of CollisionObject it's colliding with and generates a list of the collisions.
collision_list | A list in which the result is appended to. |
Changes the shape used.
shape | The shape to use. |
const geometry::GeometricShape* pyramidworks::collision::CollisionObject::shape | ( | ) | const [inline] |
Returns the shape used.
Adds this object to it's CollisionClass object list.
Removes this object from it's CollisionClass object list.