6 #include "IImmutableInteriorViewModel.h"
8 #include "CallbackCollection.h"
10 #include "VectorMath.h"
11 #include "Rendering.h"
12 #include "ICallback.h"
13 #include "CallbackCollection.h"
17 #include "PropModel.h"
26 struct InteriorFloorAnimationState;
35 virtual void RegisterChangedCallback(
CallbackType& callback) = 0;
37 virtual void UnregisterChangedCallback(
CallbackType& callback) = 0;
50 void SetSelectedFloorIndex(
int selectedFloorIndex);
52 int GetSelectedFloorIndex()
const;
54 void SetAlpha(
float alpha);
56 void Update(
float dt);
58 void SetNeedsRefresh();
60 bool IsVisible()
const;
62 float GetLookAtHeightAboveBase()
const;
64 float GetBaseAltitude()
const;
66 v3 GetFloorCenteredTangentSpaceLookAt()
const;
68 m44 GetFloorTransformWithTerrainFlattenedToScale(
int floorIndex,
float flatteningScale)
const;
70 m44 GetFloorTransform(
int floorIndex)
const;
72 dv3 GetFloorTransformOrigin(
int floorIndex)
const;
74 bool IsInteriorSelected()
const;
78 bool IsValidFloorIndex(
int floorIndex)
const;
86 std::vector<const InteriorsFloorCell*> GetFloorCellsForRendering()
const;
88 std::vector<Rendering::Renderables::InstancedInteriorFloorRenderable*> GetPropInstancesForRendering()
const;
96 m44 GetFloorTransformWithScale(
int floorIndex,
float environmentScale)
const;
98 void NotifyChanged()
const;
100 void ClearCurrentInterior();
104 void RefreshRenderablesForFloor(
int floorIndex,
const float flatteningScale,
const float interiorTerrainHeight,
const m44& normalTransform);
114 std::vector<CallbackType*> m_callbacks;
117 int m_selectedFloorIndex;
119 float m_lookAtHeight;