mirror of
https://github.com/OpenSpace/OpenSpace.git
synced 2026-02-23 05:19:18 -06:00
Clear up MissionManager
Consolidate core class registrations
This commit is contained in:
@@ -26,13 +26,13 @@
|
||||
#define __CORE_REGISTRATION_H__
|
||||
|
||||
namespace openspace {
|
||||
namespace documentation {
|
||||
|
||||
class DocumentationEngine;
|
||||
namespace documentation { class DocumentationEngine; }
|
||||
namespace scripting { class ScriptEngine; }
|
||||
|
||||
void registerCoreClasses(documentation::DocumentationEngine& engine);
|
||||
void registerCoreClasses(scripting::ScriptEngine& engine);
|
||||
|
||||
} // namespace documentation
|
||||
} // namespace openspace
|
||||
|
||||
#endif // __CORE_REGISTRATION_H__
|
||||
|
||||
@@ -22,11 +22,12 @@
|
||||
* OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
|
||||
****************************************************************************************/
|
||||
|
||||
#ifndef __MISSIONPHASEEQUENCER_H__
|
||||
#define __MISSIONPHASEEQUENCER_H__
|
||||
#ifndef __MISSIONMANAGER_H__
|
||||
#define __MISSIONMANAGER_H__
|
||||
|
||||
#include <openspace/mission/mission.h>
|
||||
|
||||
#include <ghoul/designpattern/singleton.h>
|
||||
#include <ghoul/misc/exception.h>
|
||||
|
||||
#include <map>
|
||||
@@ -39,16 +40,13 @@ namespace scripting { struct LuaLibrary; }
|
||||
/**
|
||||
* Singleton class keeping track of space missions.
|
||||
*/
|
||||
class MissionManager {
|
||||
class MissionManager : public ghoul::Singleton<MissionManager> {
|
||||
public:
|
||||
struct MissionManagerException : public ghoul::RuntimeError {
|
||||
explicit MissionManagerException(std::string error);
|
||||
};
|
||||
|
||||
static MissionManager& ref();
|
||||
|
||||
static void initialize();
|
||||
static void deinitialize();
|
||||
MissionManager();
|
||||
|
||||
/**
|
||||
* Reads a mission from file and maps the mission name to the Mission object. If
|
||||
@@ -86,20 +84,16 @@ public:
|
||||
* loaded, a warning will be printed and a dummy mission will be returned.
|
||||
*/
|
||||
const Mission& currentMission();
|
||||
|
||||
private:
|
||||
static scripting::LuaLibrary luaLibrary();
|
||||
static MissionManager _instance;
|
||||
|
||||
static scripting::LuaLibrary luaLibrary();
|
||||
|
||||
private:
|
||||
using MissionMap = std::map<std::string, Mission>;
|
||||
MissionMap _missionMap;
|
||||
|
||||
MissionMap::iterator _currentMission;
|
||||
|
||||
// Singleton
|
||||
MissionManager();
|
||||
};
|
||||
|
||||
} // namespace openspace
|
||||
|
||||
#endif // __MISSIONPHASEEQUENCER_H__
|
||||
#endif // __MISSIONMANAGER_H__
|
||||
|
||||
@@ -26,7 +26,13 @@
|
||||
|
||||
#include <openspace/documentation/documentationengine.h>
|
||||
#include <openspace/engine/configurationmanager.h>
|
||||
#include <openspace/engine/moduleengine.h>
|
||||
#include <openspace/engine/openspaceengine.h>
|
||||
#include <openspace/engine/wrapper/windowwrapper.h>
|
||||
#include <openspace/interaction/interactionhandler.h>
|
||||
#include <openspace/interaction/luaconsole.h>
|
||||
#include <openspace/mission/mission.h>
|
||||
#include <openspace/mission/missionmanager.h>
|
||||
#include <openspace/rendering/renderable.h>
|
||||
#include <openspace/rendering/screenspacerenderable.h>
|
||||
#include <openspace/scene/translation.h>
|
||||
@@ -34,11 +40,17 @@
|
||||
#include <openspace/scene/scene.h>
|
||||
#include <openspace/scene/scenegraphnode.h>
|
||||
#include <openspace/scene/scale.h>
|
||||
#include <openspace/scripting/scriptengine.h>
|
||||
#include <openspace/scripting/scriptscheduler.h>
|
||||
#include <openspace/util/spicemanager.h>
|
||||
#include <openspace/util/time.h>
|
||||
#include <openspace/util/timerange.h>
|
||||
|
||||
#ifdef OPENSPACE_MODULE_ONSCREENGUI_ENABLED
|
||||
#include <modules/onscreengui/include/gui.h>
|
||||
#endif
|
||||
|
||||
namespace openspace {
|
||||
namespace documentation {
|
||||
|
||||
void registerCoreClasses(documentation::DocumentationEngine& engine) {
|
||||
engine.addDocumentation(ConfigurationManager::Documentation());
|
||||
@@ -53,5 +65,20 @@ void registerCoreClasses(documentation::DocumentationEngine& engine) {
|
||||
engine.addDocumentation(TimeRange::Documentation());
|
||||
}
|
||||
|
||||
} // namespace documentation
|
||||
void registerCoreClasses(scripting::ScriptEngine& engine) {
|
||||
engine.addLibrary(OpenSpaceEngine::luaLibrary());
|
||||
engine.addLibrary(SpiceManager::luaLibrary());
|
||||
engine.addLibrary(RenderEngine::luaLibrary());
|
||||
engine.addLibrary(Scene::luaLibrary());
|
||||
engine.addLibrary(Time::luaLibrary());
|
||||
engine.addLibrary(interaction::InteractionHandler::luaLibrary());
|
||||
engine.addLibrary(LuaConsole::luaLibrary());
|
||||
engine.addLibrary(gui::GUI::luaLibrary());
|
||||
engine.addLibrary(network::ParallelConnection::luaLibrary());
|
||||
engine.addLibrary(ModuleEngine::luaLibrary());
|
||||
engine.addLibrary(scripting::ScriptScheduler::luaLibrary());
|
||||
engine.addLibrary(WindowWrapper::luaLibrary());
|
||||
engine.addLibrary(MissionManager::luaLibrary());
|
||||
}
|
||||
|
||||
} // namespace openspace
|
||||
|
||||
@@ -39,6 +39,7 @@
|
||||
#include <openspace/interaction/keyboardcontroller.h>
|
||||
#include <openspace/interaction/luaconsole.h>
|
||||
#include <openspace/interaction/mousecontroller.h>
|
||||
#include <openspace/mission/missionmanager.h>
|
||||
#include <openspace/network/networkengine.h>
|
||||
#include <openspace/properties/propertyowner.h>
|
||||
#include <openspace/rendering/renderable.h>
|
||||
@@ -312,7 +313,7 @@ bool OpenSpaceEngine::create(int argc, char** argv,
|
||||
// Register modules
|
||||
_engine->_moduleEngine->initialize();
|
||||
|
||||
documentation::registerCoreClasses(DocEng);
|
||||
registerCoreClasses(DocEng);
|
||||
// After registering the modules, the documentations for the available classes
|
||||
// can be added as well
|
||||
for (OpenSpaceModule* m : _engine->_moduleEngine->modules()) {
|
||||
@@ -407,18 +408,7 @@ bool OpenSpaceEngine::initialize() {
|
||||
|
||||
// Register Lua script functions
|
||||
LDEBUG("Registering Lua libraries");
|
||||
_scriptEngine->addLibrary(OpenSpaceEngine::luaLibrary());
|
||||
_scriptEngine->addLibrary(SpiceManager::luaLibrary());
|
||||
_scriptEngine->addLibrary(RenderEngine::luaLibrary());
|
||||
_scriptEngine->addLibrary(Scene::luaLibrary());
|
||||
_scriptEngine->addLibrary(Time::luaLibrary());
|
||||
_scriptEngine->addLibrary(interaction::InteractionHandler::luaLibrary());
|
||||
_scriptEngine->addLibrary(LuaConsole::luaLibrary());
|
||||
_scriptEngine->addLibrary(gui::GUI::luaLibrary());
|
||||
_scriptEngine->addLibrary(network::ParallelConnection::luaLibrary());
|
||||
_scriptEngine->addLibrary(ModuleEngine::luaLibrary());
|
||||
_scriptEngine->addLibrary(ScriptScheduler::luaLibrary());
|
||||
_scriptEngine->addLibrary(WindowWrapper::luaLibrary());
|
||||
registerCoreClasses(*_scriptEngine);
|
||||
|
||||
#ifdef OPENSPACE_MODULE_ISWA_ENABLED
|
||||
_scriptEngine->addLibrary(IswaManager::luaLibrary());
|
||||
|
||||
@@ -38,17 +38,10 @@ MissionManager::MissionManagerException::MissionManagerException(std::string err
|
||||
: ghoul::RuntimeError(std::move(error), "MissionManager")
|
||||
{}
|
||||
|
||||
MissionManager MissionManager::_instance;
|
||||
|
||||
MissionManager& MissionManager::ref() {
|
||||
return _instance;
|
||||
}
|
||||
|
||||
void MissionManager::initialize() {
|
||||
OsEng.scriptEngine().addLibrary(MissionManager::luaLibrary());
|
||||
}
|
||||
|
||||
void MissionManager::deinitialize() {}
|
||||
MissionManager::MissionManager()
|
||||
: _currentMission(_missionMap.end())
|
||||
{}
|
||||
|
||||
void MissionManager::setCurrentMission(const std::string& missionName) {
|
||||
ghoul_assert(!missionName.empty(), "missionName must not be empty");
|
||||
@@ -118,8 +111,5 @@ scripting::LuaLibrary MissionManager::luaLibrary() {
|
||||
|
||||
// Singleton
|
||||
|
||||
MissionManager::MissionManager()
|
||||
: _currentMission(_missionMap.end())
|
||||
{}
|
||||
|
||||
} // namespace openspace
|
||||
|
||||
@@ -151,9 +151,7 @@ bool RenderEngine::deinitialize() {
|
||||
screenspacerenderable->deinitialize();
|
||||
}
|
||||
|
||||
#ifdef OPENSPACE_MODULE_NEWHORIZONS_ENABLED
|
||||
MissionManager::deinitialize();
|
||||
#endif
|
||||
|
||||
_sceneGraph->clearSceneGraph();
|
||||
return true;
|
||||
@@ -224,10 +222,7 @@ bool RenderEngine::initialize() {
|
||||
|
||||
ghoul::io::TextureReader::ref().addReader(std::make_shared<ghoul::io::TextureReaderCMAP>());
|
||||
|
||||
#ifdef OPENSPACE_MODULE_NEWHORIZONS_ENABLED
|
||||
MissionManager::initialize();
|
||||
#endif
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user