UGDK  0.4.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
pyramidworks::collision::CollisionObject Class Reference

#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::GeometricShapeshape () 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())
 

Detailed Description

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.

Constructor & Destructor Documentation

pyramidworks::collision::CollisionObject::CollisionObject ( CollisionManager manager,
void *  data 
)
Parameters
dataThe data sent to the CollisionLogic when a collision happens.
See Also
CollisionLogic
pyramidworks::collision::CollisionObject::~CollisionObject ( )

Member Function Documentation

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.

Parameters
colclassName of the collision class.
logicIs not changed.
See Also
AddCollisionLogic
void pyramidworks::collision::CollisionObject::AddCollisionLogic ( const char  n[],
CollisionLogic logic 
)
inline
ugdk::ikdtree::Box< 2 > pyramidworks::collision::CollisionObject::GetBoundingBox ( ) const

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.

Parameters
colclassThe CollisionClass to set to.
See Also
CollisionClass
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.

Parameters
objThe CollisionObject to check against.
Returns
True if there's a collision with the given CollisionObject.
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.

Parameters
collision_listA list in which the result is appended to.
Returns
A list of CollisionInstance, appended to the collision_list argument.
void pyramidworks::collision::CollisionObject::set_shape ( geometry::GeometricShape shape)

Changes the shape used.

Parameters
shapeThe shape to use.
See Also
GeometricShape
const geometry::GeometricShape* pyramidworks::collision::CollisionObject::shape ( ) const
inline

Returns the shape used.

Returns
A const GeometricShape pointer.
void pyramidworks::collision::CollisionObject::StartColliding ( )

Adds this object to it's CollisionClass object list.

void pyramidworks::collision::CollisionObject::StopColliding ( )

Removes this object from it's CollisionClass object list.


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