mirror of
https://github.com/OpenSpace/OpenSpace.git
synced 2026-05-06 19:39:56 -05:00
committed by
Alexander Bock
parent
04846e3adf
commit
43e115d651
@@ -58,6 +58,7 @@ public:
|
||||
void setFocusNode(SceneGraphNode* node);
|
||||
void setCamera(Camera* camera);
|
||||
void resetCameraDirection();
|
||||
void setInterpolationTime(float durationInSeconds);
|
||||
|
||||
void setCameraStateFromDictionary(const ghoul::Dictionary& cameraDict);
|
||||
|
||||
@@ -72,6 +73,7 @@ public:
|
||||
const InputState& inputState() const;
|
||||
const OrbitalNavigator& orbitalNavigator() const;
|
||||
KeyframeNavigator& keyframeNavigator() const;
|
||||
float interpolationTime() const;
|
||||
|
||||
// Callback functions
|
||||
void keyboardCallback(Key key, KeyModifier modifier, KeyAction action);
|
||||
|
||||
@@ -55,6 +55,8 @@ public:
|
||||
|
||||
void setFocusNode(SceneGraphNode* focusNode);
|
||||
void startInterpolateCameraDirection(const Camera& camera);
|
||||
float rotateToFocusInterpolationTime() const;
|
||||
void setRotateToFocusInterpolationTime(float durationInSeconds);
|
||||
|
||||
JoystickCameraStates& joystickStates();
|
||||
|
||||
|
||||
@@ -153,6 +153,19 @@ void GuiSpaceTimeComponent::render() {
|
||||
);
|
||||
}
|
||||
|
||||
float interpolationTime = global::navigationHandler.interpolationTime();
|
||||
const bool interpolationTimeChanged = ImGui::SliderFloat(
|
||||
"Interpolation Time",
|
||||
&interpolationTime,
|
||||
0.f,
|
||||
10.f,
|
||||
"%.1f seconds"
|
||||
);
|
||||
|
||||
if (interpolationTimeChanged) {
|
||||
global::navigationHandler.setInterpolationTime(interpolationTime);
|
||||
}
|
||||
|
||||
ImGui::SetCursorPosY(ImGui::GetCursorPosY() + 20.f);
|
||||
|
||||
ImGui::Separator();
|
||||
|
||||
@@ -135,6 +135,14 @@ KeyframeNavigator& NavigationHandler::keyframeNavigator() const {
|
||||
return *_keyframeNavigator;
|
||||
}
|
||||
|
||||
float NavigationHandler::interpolationTime() const {
|
||||
return _orbitalNavigator->rotateToFocusInterpolationTime();
|
||||
}
|
||||
|
||||
void NavigationHandler::setInterpolationTime(float durationInSeconds) {
|
||||
_orbitalNavigator->setRotateToFocusInterpolationTime(durationInSeconds);
|
||||
}
|
||||
|
||||
void NavigationHandler::updateCamera(double deltaTime) {
|
||||
ghoul_assert(_inputState != nullptr, "InputState must not be nullptr");
|
||||
ghoul_assert(_camera != nullptr, "Camera must not be nullptr");
|
||||
|
||||
@@ -404,6 +404,14 @@ void OrbitalNavigator::startInterpolateCameraDirection(const Camera& camera) {
|
||||
_cameraToSurfaceDistanceInterpolator.start();
|
||||
}
|
||||
|
||||
float OrbitalNavigator::rotateToFocusInterpolationTime() const {
|
||||
return _rotateToFocusInterpolationTime;
|
||||
}
|
||||
|
||||
void OrbitalNavigator::setRotateToFocusInterpolationTime(float durationInSeconds) {
|
||||
_rotateToFocusInterpolationTime = durationInSeconds;
|
||||
}
|
||||
|
||||
bool OrbitalNavigator::followingNodeRotation() const {
|
||||
return _followRotationInterpolator.value() >= 1.0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user