All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
CameraState.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 #include "Camera.h"
6 #include "VectorMath.h"
7 
8 namespace Eegeo
9 {
10  namespace Camera
11  {
12  CameraState MakeDefaultCameraState();
13 
15  {
16  public:
18  const dv3& locationEcef,
19  const dv3& interestPointEcef,
20  const m44& modelToWorldMatrix,
21  const m44& viewMatrix,
22  const m44& projectionMatrix,
23  const m44& viewProjectionMatrix,
24  const m44& inverseViewProjectionMatrix,
25  const v2& viewportDimensions
26  );
27 
30  const dv3& locationEcef,
31  const dv3& interestPointEcef,
32  const m44& viewMatrix,
33  const m44& projectionMatrix
34  );
35 
36  const dv3& LocationEcef() const { return m_locationEcef; }
37 
38  const dv3& InterestPointEcef() const { return m_interestPointEcef; }
39 
40  const m44& ModelToWorldMatrix() const { return m_modelToWorldMatrix; }
41 
42  const m44& ViewMatrix() const { return m_viewMatrix; }
43 
44  const m44& ProjectionMatrix() const { return m_projectionMatrix; }
45 
46  const m44& ViewProjectionMatrix() const { return m_viewProjectionMatrix; }
47 
48  const m44& InverseViewProjectionMatrix() const { return m_inverseViewProjectionMatrix; }
49 
50  const v2& ViewportDimensions() const { return m_viewportDimensions; }
51  private:
52  dv3 m_locationEcef;
53  dv3 m_interestPointEcef;
54  m44 m_modelToWorldMatrix;
55  m44 m_viewMatrix;
56  m44 m_projectionMatrix;
57  m44 m_viewProjectionMatrix;
58  m44 m_inverseViewProjectionMatrix;
59  v2 m_viewportDimensions;
60  };
61  }
62 }