Introduce engine modes to handle Camera path and session recording transitions

* Clarifies which system is control over time and camera at what time
* Fixes #1845
* Prevent invalid switching between session recoring and camera path playback
* Some cleanup, mosly of SessionRecording and NavigationHandler. Also, remove ExternInteraction and some other unused/nonexisting functions
This commit is contained in:
Emma Broman
2022-01-26 11:00:54 +01:00
parent 6bc7d36920
commit 91b0581d39
22 changed files with 355 additions and 378 deletions

View File

@@ -126,8 +126,6 @@ public:
void removeTimeChangeCallback(CallbackHandle handle);
void removeDeltaTimeChangeCallback(CallbackHandle handle);
void removeDeltaTimeStepsChangeCallback(CallbackHandle handle);
void triggerPlaybackStart();
void stopPlayback();
void removeTimeJumpCallback(CallbackHandle handle);
void removeTimelineChangeCallback(CallbackHandle handle);
@@ -142,6 +140,8 @@ private:
double currentApplicationTimeForInterpolation() const;
double previousApplicationTimeForInterpolation() const;
bool isPlayingBackSessionRecording() const;
Timeline<TimeKeyframeData> _timeline;
SyncData<Time> _currentTime;
SyncData<Time> _integrateFromTime;
@@ -171,7 +171,6 @@ private:
double _latestConsumedTimestamp = -std::numeric_limits<double>::max();
int _nextCallbackHandle = 0;
bool _playbackModeEnabled = false;
std::vector<std::pair<CallbackHandle, TimeChangeCallback>> _timeChangeCallbacks;
std::vector<std::pair<CallbackHandle, TimeChangeCallback>> _deltaTimeChangeCallbacks;