Represents a scene in the engine. More...
#include <Scene.h>

Public Member Functions | |
| Scene (const Scene &)=delete | |
| Scene & | operator= (const Scene &)=delete |
| void | SetCurrentCamera (Camera *cam) |
| Sets the current 3D camera for the scene. | |
| Camera * | GetCurrentCamera () const |
| Gets the current camera for the scene. | |
| void | SetCurrentCamera2D (Camera *cam) |
| Sets the current 2D camera for the scene. | |
| Camera * | GetCurrentCamera2D () const |
| Gets the current 2D camera for the scene. | |
| void | SetTerrain (const std::string &key) |
| Sets the terrain for the scene using a key. | |
| Terrain * | GetTerrain () const |
| Sets the terrain for the scene using a pointer to a Terrain object. | |
Protected Member Functions | |
| template<typename C> | |
| void | SetCollisionSelf () |
| Sets the collision self test for the specified collidable type. | |
| template<typename C1, typename C2> | |
| void | SetCollisionPair () |
| Sets the collision pair test for the specified collidable types. | |
| template<typename Type> | |
| void | SetCollisionTerrain () |
| Sets up collision detection between the specified type and the current terrain. | |
Private Member Functions | |
| virtual void | Initialize ()=0 |
| Initializes the scene. Defined by the user. | |
| void | Update () |
| Updates the scene. Specifically, the broker and managers other than draw. | |
| void | Draw () |
| Draws the scene. | |
| virtual void | SceneEnd ()=0 |
| Ends the scene. Defined by the user. | |
| void | Register (Updatable *up) |
| Registers an updatable GameObject. | |
| void | Deregister (Updatable *up) |
| Deregisters an updatable GameObject. | |
| void | Register (Drawable *dr) |
| Registers a drawable GameObject. | |
| void | Deregister (Drawable *dr) |
| Deregisters a drawable GameObject. | |
| void | Register (Alarmable *al, AlarmableManager::ALARM_ID id, float t) |
| Registers an alarmable GameObject. | |
| void | Deregister (Alarmable *al, AlarmableManager::ALARM_ID id) |
| Deregisters an alarmable GameObject. | |
| void | Register (Inputable *in, AZUL_KEY k, EventType e) |
| Registers an inputable GameObject. | |
| void | Deregister (Inputable *in, AZUL_KEY k, EventType e) |
| Deregisters an inputable GameObject. | |
| void | Register (Inputable *in, AZUL_MOUSE m, EventType e) |
| Registers an inputable GameObject for mouse events. | |
| void | Deregister (Inputable *in, AZUL_MOUSE m, EventType e) |
| Deregisters an inputable GameObject for mouse events. | |
| void | SubmitCommand (CommandBase *cmd) |
| Submits a command to the scene. | |
| CollisionManager * | GetCollisionManager () |
| Gets the collision manager for the scene. | |
Private Attributes | |
| CameraManager * | cameraManager |
| Pointer to the camera manager. | |
| SceneRegistrationBroker * | registrationBroker |
| Pointer to the scene registration broker. | |
| UpdatableManager * | updatableManager |
| Pointer to the updatable manager. | |
| AlarmableManager * | alarmableManager |
| Pointer to the alarmable manager. | |
| KeyboardEventManager * | keyboardEventManager |
| Pointer to the keyboard event manager. | |
| DrawableManager * | drawableManager |
| Pointer to the drawable manager. | |
| CollisionManager * | collisionManager |
| Pointer to the collision manager. | |
| TerrainManager * | terrainManager |
| Pointer to the current terrain. | |
Friends | |
| class | SceneAttorney |
Represents a scene in the engine.
The Scene class is responsible for managing the GameObjects and their interactions within a scene. It provides methods to initialize, update, draw, and end the scene. It also manages the registration and deregistration of GameObjects for various systems such as updates, drawing, alarms, input, and collisions.
|
private |
Deregisters an alarmable GameObject.
| al | Pointer to the alarmable GameObject. |
| id | The alarm ID to deregister. |
|
private |
Deregisters a drawable GameObject.
| dr | Pointer to the drawable GameObject. |
Deregisters an inputable GameObject.
| in | Pointer to the inputable GameObject. |
| k | The key to deregister. |
| e | The event type to deregister. |
Deregisters an inputable GameObject for mouse events.
| in | Pointer to the inputable GameObject. |
| m | The mouse key to deregister. |
| e | The event type to deregister. |
|
private |
Deregisters an updatable GameObject.
| up | Pointer to the updatable GameObject. |

|
private |
Gets the collision manager for the scene.

| Camera * Scene::GetCurrentCamera | ( | ) | const |
Gets the current camera for the scene.
| Camera * Scene::GetCurrentCamera2D | ( | ) | const |
Gets the current 2D camera for the scene.
| Terrain * Scene::GetTerrain | ( | ) | const |
|
privatepure virtual |
Initializes the scene. Defined by the user.
Implemented in SceneNull.

|
private |
Registers an alarmable GameObject.
| al | Pointer to the alarmable GameObject. |
| id | The alarm ID to register. |
| t | The time duration for the alarm. |
|
private |
Registers a drawable GameObject.
| dr | Pointer to the drawable GameObject. |
Registers an inputable GameObject.
| in | Pointer to the inputable GameObject. |
| k | The key to register. |
| e | The event type to register. |
Registers an inputable GameObject for mouse events.
| in | Pointer to the inputable GameObject. |
| m | The mouse key to register. |
| e | The event type to register. |
|
private |
Registers an updatable GameObject.
| up | Pointer to the updatable GameObject. |

|
privatepure virtual |
Ends the scene. Defined by the user.
Implemented in SceneNull.

|
inlineprotected |
Sets the collision pair test for the specified collidable types.
| C1 | The first collidable type. |
| C2 | The second collidable type. |
|
inlineprotected |
Sets the collision self test for the specified collidable type.
| C | The collidable type. |
|
inlineprotected |
Sets up collision detection between the specified type and the current terrain.
| Type | The type of the collidable object. |

| void Scene::SetCurrentCamera | ( | Camera * | cam | ) |
Sets the current 3D camera for the scene.
| cam | Pointer to the camera. |
| void Scene::SetCurrentCamera2D | ( | Camera * | cam | ) |
Sets the current 2D camera for the scene.
| cam | Pointer to the 2D camera. |
| void Scene::SetTerrain | ( | const std::string & | key | ) |
Sets the terrain for the scene using a key.
| key | The key associated with the terrain in the TerrainManager. |

|
private |
Submits a command to the scene.
| cmd | Pointer to the command. |
