mirror of
https://github.com/OpenSpace/OpenSpace.git
synced 2026-03-15 18:19:58 -05:00
Merge branch 'master' of github.com:OpenSpace/OpenSpace into feature/data-management
Conflicts: include/openspace/scene/scenegraphnode.h src/engine/openspaceengine.cpp src/interaction/interactionhandler.cpp src/interaction/interactionmode.cpp
This commit is contained in:
@@ -66,8 +66,8 @@
|
||||
#include <openspace/openspace.h>
|
||||
#include <openspace/engine/openspaceengine.h>
|
||||
#include <openspace/engine/wrapper/windowwrapper.h>
|
||||
#include <openspace/interaction/interactionhandler.h>
|
||||
#include <openspace/interaction/interactionmode.h>
|
||||
#include <openspace/interaction/navigationhandler.h>
|
||||
#include <openspace/interaction/keyframenavigator.h>
|
||||
#include <openspace/scene/scenegraphnode.h>
|
||||
#include <openspace/scripting/script_helper.h>
|
||||
#include <openspace/util/time.h>
|
||||
@@ -580,14 +580,16 @@ void ParallelConnection::dataMessageReceived(const std::vector<char>& messageCon
|
||||
datamessagestructures::CameraKeyframe kf(buffer);
|
||||
kf._timestamp = calculateBufferedKeyframeTime(kf._timestamp);
|
||||
|
||||
OsEng.interactionHandler().removeKeyframesAfter(kf._timestamp);
|
||||
interaction::KeyframeInteractionMode::CameraPose pose;
|
||||
OsEng.navigationHandler().keyframeNavigator().removeKeyframesAfter(
|
||||
kf._timestamp);
|
||||
interaction::KeyframeNavigator::CameraPose pose;
|
||||
pose.focusNode = kf._focusNode;
|
||||
pose.position = kf._position;
|
||||
pose.rotation = kf._rotation;
|
||||
pose.followFocusNodeRotation = kf._followNodeRotation;
|
||||
|
||||
OsEng.interactionHandler().addKeyframe(kf._timestamp, pose);
|
||||
OsEng.navigationHandler().keyframeNavigator().addKeyframe(
|
||||
kf._timestamp, pose);
|
||||
break;
|
||||
}
|
||||
case datamessagestructures::Type::TimeData: {
|
||||
@@ -755,7 +757,7 @@ void ParallelConnection::connectionStatusMessageReceived(const std::vector<char>
|
||||
|
||||
setStatus(status);
|
||||
|
||||
OsEng.interactionHandler().clearKeyframes();
|
||||
OsEng.navigationHandler().keyframeNavigator().clearKeyframes();
|
||||
OsEng.timeManager().clearKeyframes();
|
||||
|
||||
}
|
||||
@@ -1012,7 +1014,7 @@ void ParallelConnection::sendScript(std::string script) {
|
||||
}
|
||||
|
||||
void ParallelConnection::resetTimeOffset() {
|
||||
OsEng.interactionHandler().clearKeyframes();
|
||||
OsEng.navigationHandler().keyframeNavigator().clearKeyframes();
|
||||
OsEng.timeManager().clearKeyframes();
|
||||
std::lock_guard<std::mutex> latencyLock(_latencyMutex);
|
||||
_latencyDiffs.clear();
|
||||
@@ -1082,21 +1084,21 @@ const std::string& ParallelConnection::hostName() {
|
||||
}
|
||||
|
||||
void ParallelConnection::sendCameraKeyframe() {
|
||||
SceneGraphNode* focusNode = OsEng.interactionHandler().focusNode();
|
||||
SceneGraphNode* focusNode = OsEng.navigationHandler().focusNode();
|
||||
if (!focusNode) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Create a keyframe with current position and orientation of camera
|
||||
datamessagestructures::CameraKeyframe kf;
|
||||
kf._position = OsEng.interactionHandler().focusNodeToCameraVector();
|
||||
kf._position = OsEng.navigationHandler().focusNodeToCameraVector();
|
||||
|
||||
kf._followNodeRotation = OsEng.interactionHandler().interactionMode()->followingNodeRotation();
|
||||
kf._followNodeRotation = OsEng.navigationHandler().orbitalNavigator().followingNodeRotation();
|
||||
if (kf._followNodeRotation) {
|
||||
kf._position = glm::inverse(focusNode->worldRotationMatrix()) * kf._position;
|
||||
kf._rotation = OsEng.interactionHandler().focusNodeToCameraRotation();
|
||||
kf._rotation = OsEng.navigationHandler().focusNodeToCameraRotation();
|
||||
} else {
|
||||
kf._rotation = OsEng.interactionHandler().camera()->rotationQuaternion();
|
||||
kf._rotation = OsEng.navigationHandler().camera()->rotationQuaternion();
|
||||
}
|
||||
|
||||
kf._focusNode = focusNode->name();
|
||||
|
||||
Reference in New Issue
Block a user