casse-brick
Loading...
Searching...
No Matches
CollisionManager.h
Go to the documentation of this file.
1//
2// Created by nicolas elfering on 08.05.24.
3//
4
5#ifndef CASSE_BRIQUE_COLLISIONMANAGER_H
6#define CASSE_BRIQUE_COLLISIONMANAGER_H
7
8#include <unordered_map>
9#include <vector>
10#include <memory>
11
12#include "CollidingObject.h"
13#include "iostream"
14#include "rectangle.h"
19 std::weak_ptr<Collider> collider1;
20 std::weak_ptr<Collider> collider2;
21 float collisionX;
22 float collisionY;
23};
24
31public:
33
38 numBalls=1;
39 };
40
41 std::vector<std::shared_ptr<CollidingObject>> colliders;
42 std::vector<CollisionInfo> collisions;
43
49 void addCollider(const std::shared_ptr<CollidingObject>& collider);
50
56 void removeCollider(const std::shared_ptr<CollidingObject>& collider);
57
63 bool detectCollisions();
64
68 void printCollisions() const;
69};
70
71
72#endif //CASSE_BRIQUE_COLLISIONMANAGER_H
The CollisionManager class manages collision detection and resolution.
bool detectCollisions()
Detects collisions between collisionObject.
void removeCollider(const std::shared_ptr< CollidingObject > &collider)
Removes a collisionObject from the collision manager.
std::vector< CollisionInfo > collisions
The collection of collision information.
std::vector< std::shared_ptr< CollidingObject > > colliders
The collection of colliding objects.
void addCollider(const std::shared_ptr< CollidingObject > &collider)
Adds a collisionObject to the collision manager.
CollisionManager()
Constructs a new CollisionManager object.
void printCollisions() const
Prints information about collisions to the console.
int numBalls
The number of balls in the collision manager.
The CollisionInfo struct contains information about a collision.
std::weak_ptr< Collider > collider1
The first collider involved in the collision.
float collisionY
The y-coordinate of the collision point.
float collisionX
The x-coordinate of the collision point.
std::weak_ptr< Collider > collider2
The second collider involved in the collision.