All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
UnityInstancedInteriorFloorRenderable.h
1 #pragma once
2 
3 #include "InstancedInteriorFloorRenderable.h"
4 #include "UnityCallbacks.h"
5 
6 namespace Eegeo
7 {
8  namespace Unity
9  {
11  {
12  public:
13 
15  Rendering::LayerIds::Values layerId,
16  int floorIndex,
18  Rendering::Mesh* pMesh,
19  Culling::CullingVolumeTree* pCullingVolumeTree,
20  const Rendering::VertexLayouts::VertexBinding& vertexBinding,
21  dv3 ecefLocalOrigin,
22  v4 positionBoundsMin,
23  v4 positionBoundsMax,
24  v2 uvBoundsMin,
25  v2 uvBoundsMax,
26  const std::string& renderableId,
27  const Resources::Interiors::IInteriorsMaterialAssignmentObserver& materialAssignmentObserver,
28  const float interiorTerrainHeight,
29  bool ownsMesh,
30  const std::vector<m44>& instanceTransforms,
31  const std::string& interiorIdentifier,
32  const std::string& meshName,
33  const UnityCallbacks& unityCallbacks);
34 
36 
37  void SetModelTransform(const m44& modelToLocalEcefTransform) override;
38 
39  void SetColor(const v4& color) override;
40 
41  void SetMaterial(const Rendering::Materials::IMaterial* pMaterial, Rendering::VertexLayouts::VertexBindingPool& vertexBindingPool) override;
42 
43  void UpdateIndexColor(int index, const v4& color) override;
44 
45  void SetInstanceTransformAtIndex(int index, const m44& transform) override;
46 
47  void AddInstanceTransform(const m44& transform) override;
48 
49  void RemoveInstanceTransformAtIndex(int index) override;
50 
51  std::string GenerateInstanceId(int instanceIndex) const;
52 
53  bool NeedsStencilMirrorDuplicates() const override { return false; }
54 
55  void SetVisible(bool visible);
56 
57  private:
58 
59  void UpdateTransformAtIndex(int index);
60 
61  const UnityCallbacks m_unityCallbacks;
62  const std::string m_meshName;
63  const std::string m_renderableId;
64  bool m_isVisible;
65  };
66  }
67 }