1 #ifndef PYRAMIDWORKS_COLLISION_COLLISIONOBJECT_H_
2 #define PYRAMIDWORKS_COLLISION_COLLISIONOBJECT_H_
99 std::string collision_class_;
107 std::unique_ptr<geometry::GeometricShape> shape_;
111 std::map<std::string, CollisionLogic> known_collisions_;
void MoveTo(const ugdk::math::Vector2D &position)
Moves the object to the given position.
Definition: vector2D.h:18
void set_data(CollisionData *data)
Changes the data of this object.
Definition: collisionobject.h:96
const geometry::GeometricShape * shape() const
Returns the shape used.
Definition: collisionobject.h:90
An interface for other classes implement so they can be associated with an CollsionObject.
Definition: collisiondata.h:8
Definition: collisionclass.h:13
void ChangeCollisionClass(const std::string &)
Changes the collision class associated with this object.
const ugdk::math::Vector2D & position() const
Returns the position of this object.
Definition: collisionobject.h:83
void ChangeShape(std::unique_ptr< geometry::GeometricShape > &&shape)
Changes the shape used.
ugdk::structure::Box< 2 > CreateBoundingBox() const
Wrapper to shape()->CreateBoundingBox(absolute_position())
ugdk::math::Vector2D absolute_position() const
Calculates the position of this object, with the offset added.
Definition: collisionobject.h:69
Definition: geometricshape.h:13
void AddCollisionLogic(const std::string &colclass, const CollisionLogic &logic)
Adds a new collision to the known collisions.
CollisionData * data() const
Returns the CollisionData associated with this object.
Definition: collisionobject.h:80
A class that knows how to manage collisions.
Definition: collisionobject.h:22
std::function< void(const CollisionObject *)> CollisionLogic
Definition: collision.h:17
void SearchCollisions(std::list< CollisionInstance > &collision_list) const
Search if there's any collision.
const std::string & collision_class() const
Returns the name of the collision class of this object.
Definition: collisionobject.h:77
void StartColliding(CollisionManager *)
Enables collisions with this object in the given CollisionManager.
const ugdk::math::Vector2D & offset() const
Returns the offset of this object.
Definition: collisionobject.h:86
CollisionObject(CollisionData *data, const std::string &colclass, std::unique_ptr< geometry::GeometricShape > &&shape)
Definition: collisionmanager.h:19
void set_offset(const ugdk::math::Vector2D &_offset)
Changes the offset of this object.
Definition: collisionobject.h:93
bool IsColliding(const CollisionObject *obj) const
Verifies if this CollisionObject is colliding with another CollisionObject.
void RemoveCollisionLogic(const std::string &colclass)
Removes a collision from the known collisions.
void StopColliding()
Removes this object from it's CollisionClass object list.