All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
IImmutableInteriorViewModel.h
1 // Copyright eeGeo Ltd (2012-2016), All Rights Reserved
2 
3 #pragma once
4 
5 #include "Types.h"
6 #include "Interiors.h"
7 #include "VectorMathDecl.h"
8 #include "Space.h"
9 #include "Geometry.h"
10 
11 #include <vector>
12 
13 namespace Eegeo
14 {
15  namespace Resources
16  {
17  namespace Interiors
18  {
20  {
21  public:
22  virtual ~IImmutableInteriorViewModel() {;}
23 
24  virtual bool IsVisible() const = 0;
25 
26  virtual bool IsInteriorSelected() const = 0;
27 
28  virtual InteriorId GetSelectedInteriorId() const = 0;
29 
30  virtual int GetSelectedFloorIndex() const = 0;
31 
32  virtual bool IsValidFloorIndex(int floorIndex) const = 0;
33 
34  virtual float GetLookAtHeightAboveBase() const = 0;
35 
36  virtual float GetBaseAltitude() const = 0;
37 
38  virtual v3 GetFloorCenteredTangentSpaceLookAt() const = 0;
39 
40  // Get the floor transform with concertina expand & collapse animation applied, applying the specified flattening scale to
41  // the terrain beneath the interior so that the base of the interior sits on the terrain.
42  virtual m44 GetFloorTransformWithTerrainFlattenedToScale(int floorIndex, float flatteningScale) const = 0;
43 
44  // Gets the floor transform with concertina expand & collapse animation applied, but without taking account of any flattening
45  // of the terrain beneath the interior.
46  virtual m44 GetFloorTransform(int floorIndex) const = 0;
47 
48  // Gets the floor transform origin with the current terrain flattening applied, but no concertina animation.
49  virtual dv3 GetFloorTransformOrigin(int floorIndex) const = 0;
50 
51  virtual Space::EcefTangentBasis GetTangentBasis() const = 0;
52 
53  virtual Geometry::Bounds3D GetTangentSpaceBounds() const = 0;
54 
55  virtual Geometry::Bounds3D GetFloorTangentSpaceBounds() const = 0;
56 
57  virtual std::vector<const InteriorsFloorCell*> GetFloorCellsForRendering() const = 0;
58 
59  };
60  }
61  }
62 }