UGDK  0.5.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
collisionmanager.h
Go to the documentation of this file.
1 #ifndef PYRAMIDWORKS_COLLISION_COLLISIONMANAGER_H_
2 #define PYRAMIDWORKS_COLLISION_COLLISIONMANAGER_H_
3 
4 #include <ugdk/structure/box.h>
5 
6 #include <ugdk/system.h>
8 
9 #include <map>
10 #include <memory>
11 #include <set>
12 #include <string>
13 
14 namespace pyramidworks {
15 namespace collision {
16 
20  public:
21  explicit CollisionManager(const ugdk::structure::Box<2>& tree_bounding_box);
22  CollisionManager(const CollisionManager&) = delete;
24 
26 
28 
31  CollisionClass& Find(const std::string &name);
32 
34 
37  void ChangeClassParent(const std::string &name, const std::string &parent);
38 
39  void AddActiveObject(const CollisionObject* obj) { active_objects_.insert(obj); }
40  void RemoveActiveObject(const CollisionObject* obj) { active_objects_.erase(obj); }
41  const std::set<const CollisionObject*>& active_objects() const { return active_objects_; }
42 
45 
46  private:
47  const ugdk::structure::Box<2> tree_bounding_box_;
48  std::map<std::string, std::unique_ptr<CollisionClass> > classes_;
49  std::set<const CollisionObject*> active_objects_;
50 };
51 
52 } // namespace collision
53 } // namespace pyramidworks
54 
55 #endif /* PYRAMIDWORKS_COLLISION_COLLISIONMANAGER_H_ */
CollisionClass & Find(const std::string &name)
Returns a CollisionClass of the asked name.
Definition: collisionclass.h:17
Definition: collisionclass.h:13
void ChangeClassParent(const std::string &name, const std::string &parent)
Changes the parent of a CollisionClass.
const std::set< const CollisionObject * > & active_objects() const
Definition: collisionmanager.h:41
void RemoveActiveObject(const CollisionObject *obj)
Definition: collisionmanager.h:40
Definition: task.h:9
CollisionManager & operator=(const CollisionManager &)=delete
void AddActiveObject(const CollisionObject *obj)
Definition: collisionmanager.h:39
A class that knows how to manage collisions.
Definition: collisionobject.h:22
CollisionManager(const ugdk::structure::Box< 2 > &tree_bounding_box)
Definition: collisionmanager.h:19
ugdk::system::Task GenerateHandleCollisionTask(double priority)
Warning: this task depends on resources from this object. Do not use it after this object is destroye...