mirror of
https://github.com/OpenSpace/OpenSpace.git
synced 2026-02-20 20:09:08 -06:00
Add possibility to capture, edit & replay camera-keyframes
This commit is contained in:
@@ -60,6 +60,7 @@ namespace interaction {
|
||||
class KeyframeRecording;
|
||||
class NavigationHandler;
|
||||
class SessionRecording;
|
||||
class KeyframeRecording;
|
||||
} // namespace interaction
|
||||
namespace properties { class PropertyOwner; }
|
||||
namespace scripting {
|
||||
@@ -97,6 +98,7 @@ inline interaction::KeybindingManager* keybindingManager;
|
||||
inline interaction::KeyframeRecording* keyframeRecording;
|
||||
inline interaction::NavigationHandler* navigationHandler;
|
||||
inline interaction::SessionRecording* sessionRecording;
|
||||
inline interaction::KeyframeRecording* keyframeRecording;
|
||||
inline properties::PropertyOwner* rootPropertyOwner;
|
||||
inline properties::PropertyOwner* screenSpaceRootPropertyOwner;
|
||||
inline properties::PropertyOwner* userPropertyOwner;
|
||||
|
||||
@@ -65,6 +65,8 @@ set(OPENSPACE_SOURCE
|
||||
interaction/scriptcamerastates.cpp
|
||||
interaction/sessionrecording.cpp
|
||||
interaction/sessionrecording_lua.inl
|
||||
interaction/keyframerecording.cpp
|
||||
interaction/keyframerecording_lua.inl
|
||||
interaction/websocketinputstate.cpp
|
||||
interaction/websocketcamerastates.cpp
|
||||
interaction/tasks/convertrecfileversiontask.cpp
|
||||
@@ -256,6 +258,7 @@ set(OPENSPACE_HEADER
|
||||
${PROJECT_SOURCE_DIR}/include/openspace/interaction/mousecamerastates.h
|
||||
${PROJECT_SOURCE_DIR}/include/openspace/interaction/scriptcamerastates.h
|
||||
${PROJECT_SOURCE_DIR}/include/openspace/interaction/sessionrecording.h
|
||||
${PROJECT_SOURCE_DIR}/include/openspace/interaction/keyframerecording.h
|
||||
${PROJECT_SOURCE_DIR}/include/openspace/interaction/sessionrecording.inl
|
||||
${PROJECT_SOURCE_DIR}/include/openspace/interaction/websocketinputstate.h
|
||||
${PROJECT_SOURCE_DIR}/include/openspace/interaction/websocketcamerastates.h
|
||||
|
||||
@@ -34,6 +34,7 @@
|
||||
#include <openspace/interaction/keybindingmanager.h>
|
||||
#include <openspace/interaction/keyframerecording.h>
|
||||
#include <openspace/interaction/sessionrecording.h>
|
||||
#include <openspace/interaction/keyframerecording.h>
|
||||
#include <openspace/mission/mission.h>
|
||||
#include <openspace/mission/missionmanager.h>
|
||||
#include <openspace/navigation/navigationhandler.h>
|
||||
@@ -112,6 +113,7 @@ void registerCoreClasses(scripting::ScriptEngine& engine) {
|
||||
engine.addLibrary(interaction::OrbitalNavigator::luaLibrary());
|
||||
engine.addLibrary(interaction::PathNavigator::luaLibrary());
|
||||
engine.addLibrary(interaction::SessionRecording::luaLibrary());
|
||||
engine.addLibrary(interaction::KeyframeRecording::luaLibrary());
|
||||
engine.addLibrary(scripting::ScriptScheduler::luaLibrary());
|
||||
engine.addLibrary(scripting::generalSystemCapabilities());
|
||||
engine.addLibrary(scripting::openglSystemCapabilities());
|
||||
|
||||
@@ -39,6 +39,7 @@
|
||||
#include <openspace/interaction/joystickinputstate.h>
|
||||
#include <openspace/interaction/websocketinputstate.h>
|
||||
#include <openspace/interaction/sessionrecording.h>
|
||||
#include <openspace/interaction/keyframerecording.h>
|
||||
#include <openspace/mission/missionmanager.h>
|
||||
#include <openspace/navigation/navigationhandler.h>
|
||||
#include <openspace/network/parallelpeer.h>
|
||||
@@ -99,6 +100,7 @@ namespace {
|
||||
sizeof(interaction::KeyframeRecording) +
|
||||
sizeof(interaction::NavigationHandler) +
|
||||
sizeof(interaction::SessionRecording) +
|
||||
sizeof(interaction::KeyframeRecording) +
|
||||
sizeof(properties::PropertyOwner) +
|
||||
sizeof(properties::PropertyOwner) +
|
||||
sizeof(properties::PropertyOwner) +
|
||||
@@ -340,6 +342,14 @@ void create() {
|
||||
sessionRecording = new interaction::SessionRecording(true);
|
||||
#endif // WIN32
|
||||
|
||||
#ifdef WIN32
|
||||
keyframeRecording = new (currentPos) interaction::KeyframeRecording;
|
||||
ghoul_assert(keyframeRecording, "No keyframeRecording");
|
||||
currentPos += sizeof(interaction::KeyframeRecording);
|
||||
#else // ^^^ WIN32 / !WIN32 vvv
|
||||
keyframeRecording = new interaction::KeyframeRecording(true);
|
||||
#endif // WIN32
|
||||
|
||||
#ifdef WIN32
|
||||
rootPropertyOwner = new (currentPos) properties::PropertyOwner({ "" });
|
||||
ghoul_assert(rootPropertyOwner, "No rootPropertyOwner");
|
||||
@@ -400,6 +410,7 @@ void initialize() {
|
||||
rootPropertyOwner->addPropertySubOwner(global::keyframeRecording);
|
||||
rootPropertyOwner->addPropertySubOwner(global::interactionMonitor);
|
||||
rootPropertyOwner->addPropertySubOwner(global::sessionRecording);
|
||||
rootPropertyOwner->addPropertySubOwner(global::keyframeRecording);
|
||||
rootPropertyOwner->addPropertySubOwner(global::timeManager);
|
||||
rootPropertyOwner->addPropertySubOwner(global::scriptScheduler);
|
||||
|
||||
@@ -463,6 +474,13 @@ void destroy() {
|
||||
delete sessionRecording;
|
||||
#endif // WIN32
|
||||
|
||||
LDEBUGC("Globals", "Destroying 'KeyframeRecording'");
|
||||
#ifdef WIN32
|
||||
keyframeRecording->~KeyframeRecording();
|
||||
#else // ^^^ WIN32 / !WIN32 vvv
|
||||
delete keyframeRecording;
|
||||
#endif // WIN32
|
||||
|
||||
LDEBUGC("Globals", "Destroying 'NavigationHandler'");
|
||||
#ifdef WIN32
|
||||
navigationHandler->~NavigationHandler();
|
||||
|
||||
@@ -42,6 +42,8 @@
|
||||
#include <openspace/interaction/keybindingmanager.h>
|
||||
#include <openspace/interaction/keyframerecording.h>
|
||||
#include <openspace/interaction/sessionrecording.h>
|
||||
#include <openspace/interaction/keyframerecording.h>
|
||||
#include <openspace/json.h>
|
||||
#include <openspace/navigation/navigationhandler.h>
|
||||
#include <openspace/navigation/orbitalnavigator.h>
|
||||
#include <openspace/navigation/waypoint.h>
|
||||
|
||||
Reference in New Issue
Block a user