All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
DebugCameraSplinePlaybackService.h
1 // Copyright (c) 2014 eeGeo. All rights reserved.
2 
3 #pragma once
4 
5 #include "VectorMathDecl.h"
6 #include "Geometry.h"
7 #include "Camera.h"
8 #include "Streaming.h"
9 #include "CatmullRomSpline.h"
10 #include "Camera.h"
11 #include "VectorMath.h"
12 #include "CameraState.h"
13 #include "Rendering.h"
14 #include "CameraSplinePlaybackController.h"
15 #include "Space.h"
16 #include <vector>
17 
18 namespace Eegeo
19 {
20  namespace Debug
21  {
22  namespace SplinePlayback
23  {
25  {
26  public:
27 
30 
31  void AddPoint(const dv3& camPositionEcef, const dv3& focusPointEcef);
32  void AddPoint(const Space::LatLongAltitude& camPosition, const Space::LatLongAltitude& focusPoint);
33  void RemoveLastPoint();
34  void Clear();
35  void Play(float speed);
36  void Stop();
37 
38  bool IsPlaying() const;
39 
40  void Update(float dt);
41 
42  void SetInterpolation(Geometry::TimeParameterizationMethod::Values interpolationMethodValue);
43  void SetPlaybackSpeed(float speed);
44  void TogglePlaybackDirection();
45 
46  Camera::RenderCamera GetPlaybackRenderCamera() const;
47 
48  void GetPointEcefPositions(std::vector<dv3>& out_cameraPositionsEcef, std::vector<dv3>& out_targetPositionsEcef) const;
49 
50  void RegisterPlaybackStateCallback(Eegeo::Camera::SplinePlayback::TPlaybackStateChangedCallback& callback);
51  void UnregisterPlaybackStateCallback(Eegeo::Camera::SplinePlayback::TPlaybackStateChangedCallback& callback);
52 
53  Camera::CameraState GetCameraState() const;
54 
55  void UpdateScreenProperties(const Eegeo::Rendering::ScreenProperties& screenProperties);
56 
57  private:
58 
59  Geometry::CatmullRomSpline* m_pPositionSpline;
60  Geometry::CatmullRomSpline* m_pTargetSpline;
62  };
63  }
64  }
65 }