18 #ifndef __H__OCULAR_CORE_SCENE_MANAGER__H__
19 #define __H__OCULAR_CORE_SCENE_MANAGER__H__
22 #include "SceneObject.hpp"
23 #include "SceneTreeType.hpp"
24 #include "Renderer/Renderer.hpp"
25 #include "ComponentFactory.hpp"
26 #include "FileIO/File.hpp"
27 #include "Math/Geometry/Frustum.hpp"
29 #include <unordered_map>
94 T* result =
new T(name, parent);
147 void destroyObject(std::string
const& name,
bool removeAll =
false);
180 void findObjects(std::string
const& name, std::vector<SceneObject*>& objects)
const;
238 void createScene(std::string
const& name, SceneTreeType staticType = SceneTreeType::BoundingVolumeHierarchyCPU, SceneTreeType dynamicType = SceneTreeType::BoundingVolumeHierarchyCPU);
290 void loadPersistentObjects();
356 std::unordered_map<std::string, SceneObject*> m_Objects;
bool saveScene(File const &file)
Definition: SceneManager.cpp:327
Definition: OcularEngine.hpp:49
SceneObject * findObject(std::string const &name) const
Definition: SceneManager.cpp:163
void objectRemovedRoutine(ARoutine *routine)
Definition: SceneManager.cpp:508
void update()
Definition: SceneManager.cpp:454
void objectVisibleChanged(SceneObject *object)
Definition: SceneManager.cpp:478
void createScene(std::string const &name, SceneTreeType staticType=SceneTreeType::BoundingVolumeHierarchyCPU, SceneTreeType dynamicType=SceneTreeType::BoundingVolumeHierarchyCPU)
Definition: SceneManager.cpp:277
Definition: SceneManager.hpp:64
Definition: ComponentFactory.hpp:43
Definition: Frustum.hpp:57
Note: Once this library is made dynamic, this will no longer be needed.
Definition: Common.hpp:70
void getVisibleSceneObjects(std::vector< SceneObject * > &objects, Math::Frustum const &frustum)
Definition: SceneManager.cpp:261
Definition: ARoutine.hpp:59
SceneObject * createObject(std::string const &name="Unnamed", SceneObject *parent=nullptr)
Definition: SceneManager.cpp:51
SceneObject * duplicateObject(SceneObject const *object)
Definition: SceneManager.cpp:69
void objectParentChanged(SceneObject *object, SceneObject *oldParent)
Definition: SceneManager.cpp:519
void destroyObject(SceneObject *object)
Definition: SceneManager.cpp:101
void render()
Definition: SceneManager.cpp:462
void findTopObjects(std::vector< SceneObject * > &object) const
Definition: SceneManager.cpp:212
void objectStaticChanged(SceneObject *object)
Definition: SceneManager.cpp:486
void objectAddedRoutine(ARoutine *routine)
Definition: SceneManager.cpp:497
void updateUUID(UUID const &uuid)
Definition: SceneManager.cpp:228
Definition: SceneObject.hpp:93
bool loadScene(File const &file)
Definition: SceneManager.cpp:301
void findObjects(std::string const &name, std::vector< SceneObject * > &objects) const
Definition: SceneManager.cpp:185
bool isSceneActive() const
Definition: SceneManager.cpp:339
void objectActiveChanged(SceneObject *object)
Definition: SceneManager.cpp:470
void addObject(SceneObject *object, SceneObject *parent=nullptr)
Definition: SceneManager.cpp:386
SceneObject * createObjectOfType(std::string const &type, std::string const &name="Unnamed", SceneObject *parent=nullptr)
Definition: SceneManager.cpp:56
void triggerObjectDirty(UUID const &uuid, bool staticObject)
Definition: SceneManager.cpp:269