diff options
Diffstat (limited to 'support/magicleap/Servo2D/code/inc.gen/PrismSceneManager.h')
-rw-r--r-- | support/magicleap/Servo2D/code/inc.gen/PrismSceneManager.h | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/support/magicleap/Servo2D/code/inc.gen/PrismSceneManager.h b/support/magicleap/Servo2D/code/inc.gen/PrismSceneManager.h new file mode 100644 index 00000000000..82d43212325 --- /dev/null +++ b/support/magicleap/Servo2D/code/inc.gen/PrismSceneManager.h @@ -0,0 +1,74 @@ +// -- WARNING -- WARNING -- WARNING -- WARNING -- WARNING -- WARNING -- +// +// THE CONTENTS OF THIS FILE IS GENERATED BY CODE AND +// ANY MODIFICATIONS WILL BE OVERWRITTEN +// +// -- WARNING -- WARNING -- WARNING -- WARNING -- WARNING -- WARNING -- + +// %BANNER_BEGIN% +// --------------------------------------------------------------------- +// %COPYRIGHT_BEGIN% +// +// Copyright (c) 2018 Magic Leap, Inc. All Rights Reserved. +// Use of this file is governed by the Creator Agreement, located +// here: https://id.magicleap.com/creator-terms +// +// %COPYRIGHT_END% +// --------------------------------------------------------------------- +// %BANNER_END% + +// %SRC_VERSION%: 1 + +#pragma once + +#include <lumin/Prism.h> +#include <lumin/node/Node.h> + +#include <SceneDescriptor.h> +#include <SpawnedSceneBase.h> +#include <SpawnedSceneUserData.h> +#include <scenes.h> + +class PrismSceneManager { + public: + + typedef std::function<SpawnedSceneUserData*(SpawnedSceneBase&)> (*CreateSpawnedSceneUserData); + static void setUserDataCreator(const SceneDescriptor & sceneDescriptor, CreateSpawnedSceneUserData createSpawnedSceneUserData); + + public: + + PrismSceneManager(lumin::Prism* prism); + + enum class SceneState { + Unloaded, + ResourceModelLoaded, + ResourceAndObjectModelLoaded, + }; + + void setSceneState(const SceneDescriptor & sceneDescriptor, SceneState sceneState); + SceneState getSceneState(const SceneDescriptor & sceneDescriptor, SceneState sceneState) const; + + SpawnedSceneBase* spawnScene(const SceneDescriptor & sceneDescriptor); + lumin::Node* spawn(const SceneDescriptor & sceneDescriptor); + + private: + + typedef SpawnedSceneBase* (*CreateSpawnedScene)(const SceneDescriptor& sceneDescriptor, lumin::Node* root); + static const CreateSpawnedScene createSpawnedScene[scenes::numberOfExternalScenes]; + + typedef SpawnedSceneHandlers* (*CreateSpawnedSceneHandlers)(SpawnedSceneBase& spawnedScene); + static const CreateSpawnedSceneHandlers createSpawnedSceneHandlers[scenes::numberOfExternalScenes]; + + static CreateSpawnedSceneUserData createSpawnedSceneUserData[scenes::numberOfExternalScenes]; + + private: + + lumin::Node* createNodeTree(const SceneDescriptor & sceneDescriptor); + + private: + + lumin::Prism* prism_; + SceneState sceneStates_[scenes::numberOfExternalScenes]; + std::string objectModelNames_[scenes::numberOfExternalScenes]; +}; + |