Wraith  0.1.5
Basic 3D game engine in C++
Scene Class Referenceabstract

A scene. The place where user defined game objects are created and controlled. Scene handles game object related process such as update, draw, input, and collision. More...

#include <Scene.h>

Inheritance diagram for Scene:
Inheritance graph
Collaboration diagram for Scene:
Collaboration graph

Public Member Functions

 Scene (const Scene &)=default
 
Sceneoperator= (const Scene &)=default
 
 Scene (Scene &&)=default
 
Sceneoperator= (Scene &&)=default
 
void setCurrentCamera (Camera *pCamera)
 Sets current camera./ More...
 
void setDefaultCameraAsCurrentCamera ()
 Sets default camera as current camera./ More...
 
void setCurrent2DCamera (Camera *p2DCamera)
 Sets current 2D camera. More...
 
void setDefault2DCameraAsCurrentCamera ()
 Sets default 2D camera as current camera 2D. More...
 
Camera * getCurrentCamera () const
 Gets the current camera. More...
 
Camera * getDefaultCamera () const
 Gets the default camera. More...
 
Camera * getCurrent2DCamera () const
 Gets the current 2D camera. More...
 
Camera * getDefault2DCamera () const
 Gets default 2D camera. More...
 
const Terrain * getTerrain () const
 Gets the current terrain from the scene. More...
 

Protected Member Functions

template<class UserClass1 , class UserClass2 >
void setCollisionPair ()
 Sets collision pair between two user defined classes. More...
 
template<class UserClass >
void setCollisionSelf ()
 Sets collision within a single user defined class. More...
 
template<class UserClass >
void setCollisionTerrain ()
 Sets collision with the terrain. More...
 
void setTerrain (const std::string &terrainObjectName)
 Sets the terrain to be used in the scene. More...
 

Private Member Functions

virtual void initialize ()=0
 Initializes this scene. More...
 
void update ()
 Calls on all managers (except DrawableManager)to perform their specified GameObject callbacks registered to this scene More...
 
void draw ()
 Calls on DrawableManager to call Drawable::draw() and Drawable::draw2D() on registered entities. More...
 
virtual void sceneEnd ()=0
 Ends the scene. More...
 
void submitCommand (SceneRegistrationCommand *pCommand)
 Submit command for de/registration of GameObject properties. More...
 
void registerEntity (Updatable *)
 
void deregisterEntity (Updatable *)
 
void registerEntity (Drawable *)
 
void deregisterEntity (Drawable *)
 
void register2DEntity (Drawable *)
 
void deregister2DEntity (Drawable *)
 
void registerEntity (Alarmable *, const float time, AlarmID)
 
void deregisterEntity (Alarmable *, AlarmID)
 
void registerEntity (Inputable *, AZUL_KEY, InputEvent)
 
void deregisterEntity (Inputable *, AZUL_KEY, InputEvent)
 
void executeCommands ()
 
CollisionManagergetCollisionManager ()
 

Private Attributes

CameraManager _cameraManager
 
SceneRegistrationBroker _sceneRegistrationBroker
 
UpdatableManager _updatableManager
 
DrawableManager _drawableManager
 
AlarmableManager _alarmableManager
 
KeyboardEventManager _keyboardEventManager
 
CollisionManager _collisionManager
 
TerrainManager _terrainManager
 

Friends

class SceneAttorney
 

Detailed Description

A scene. The place where user defined game objects are created and controlled. Scene handles game object related process such as update, draw, input, and collision.

Scene::initialize() and Scene::end() are functions that must be defined when deriving from Scene.

Member Function Documentation

◆ draw()

void Scene::draw ( )
private

Calls on DrawableManager to call Drawable::draw() and Drawable::draw2D() on registered entities.

This is called only by the SceneManager in SceneManager::Draw()

◆ submitCommand()

void Scene::submitCommand ( SceneRegistrationCommand pCommand)
private

Submit command for de/registration of GameObject properties.

This is used to commands to delay de/registation of GameObject properites

Parameters
pCommandthe scene de/registrationcommand.

◆ update()

void Scene::update ( )
private

Calls on all managers (except DrawableManager)to perform their specified GameObject callbacks registered to this scene

This is called only by the SceneManager in SceneManager::Update()


The documentation for this class was generated from the following files: