FSceneManagerEditor

namespace marengine
class FSceneManagerEditor
#include “Core/ecs/SceneManagerEditor.h”

Scene Manager for Editor mode. With this manager you manage Editor / Game camera display, Editor / Play mode on Viewport.

Public Functions

void initialize(Scene *pScene, FBatchManager *pBatchManager, FMeshManager *pMeshManager, FMaterialManager *pMaterialManager)

Initializes whole scene, pushes every entity for batching and afterwards calls draw ready state.

void updateSceneAtBatchManager()

Pushes all Scene’s data to RenderPipeline.

void updateSceneAtMeshManager()
void updateSceneAtMaterialManager()
void update()

Updates Scene in SceneManager’s state. During EditorMode there is no need to update the scene, everything should operate on events. During PlayMode we need to call update PythonScripts and then update buffers every time.

void close()

Closes SceneManager.

Scene *getScene()

Method returns scene that is managed.

Return

Returns currently managed scene

void setEditorMode()

Sets Editor Mode (for update state)

bool isEditorMode() const

Returns value of m_EditorMode variable.

Return

Returns true, if scene is in editor mode

bool isPlayMode() const

Returns value of !m_EditorMode variable.

Return

Returns true, if scene is in play mode

bool isPauseMode() const

Returns value of m_PauseMode variable.

Return

Returns true, if scene is in pause mode

void setPlayMode()

Sets Play mode.

void setExitPlayMode()

Set exit play mode state.

void setPauseMode()

Set Pause mode.

void setExitPauseMode()

Set exit pause mode state.

void useEditorCamera()

Use Editor Camera to watch scene at viewport.

void useGameCamera()

Use Game Camera to watch scene at viewport.

bool usingEditorCamera() const

Returns value of m_EditorCamera variable.

Return

Returns true, if using editor camera to watch scene at viewport

bool usingGameCamera() const

Returns value of !m_EditorCamera variable.

Return

Returns true, if using game camera to watch scene at viewport

Private Functions

void initPlayMode()
void updatePlayMode()
void updatePauseMode()
void updateEntityInPlaymode(const Entity &entity)
void exitPlayMode()

Private Members

Scene *m_pScene = {nullptr}
FBatchManager *m_pBatchManager = {nullptr}
FMeshManager *m_pMeshManager = {nullptr}
FMaterialManager *m_pMaterialManager = {nullptr}
bool m_EditorCamera = {true}
bool m_EditorMode = {true}
bool m_PauseMode = {false}