cangine
Loading...
Searching...
No Matches
object_manager.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <vector>
4#include <cassert>
5
6namespace cangine {
7 struct MouseEvent;
8 class GameObject;
9 class Window;
10
18 private:
19 std::vector<GameObject*> objects;
22 public:
27
32 static ObjectManager* getInstance();
37 void registerObject(GameObject* obj);
39 void updateAll();
44 void fireMouseEvent(const MouseEvent* event);
45 };
46}
Base class for everything that lives in the scene.
Definition game_object.hpp:20
Singleton registry that owns and updates all game objects.
Definition object_manager.hpp:17
void fireMouseEvent(const MouseEvent *event)
Forwards a mouse event to all registered objects.
Definition object_manager.cpp:55
static ObjectManager * getInstance()
Returns the singleton instance.
Definition object_manager.cpp:24
void updateAll()
Updates every registered game object for the current frame.
Definition object_manager.cpp:32
Window * win
Window the manager is associated with.
Definition object_manager.hpp:21
~ObjectManager()
Destroys the object manager.
Definition object_manager.cpp:17
void registerObject(GameObject *obj)
Registers a game object for updates and event delivery.
Definition object_manager.cpp:28
ObjectManager()
Constructs the object manager.
Definition object_manager.cpp:10
std::vector< GameObject * > objects
All registered game objects.
Definition object_manager.hpp:19
static ObjectManager * instance
Singleton instance.
Definition object_manager.hpp:20
Owns the application window, OpenGL context and the frame loop.
Definition window.hpp:34
Definition audiomanager.cpp:4
A mouse event carrying its type, button, position and scroll offset.
Definition mouse.hpp:37