All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
UnityInteriorRenderableFactory.h
1 #pragma once
2 
3 #include "IInteriorRenderableFactory.h"
4 #include "UnityCallbacks.h"
5 
6 namespace Eegeo
7 {
8  namespace Unity
9  {
11  {
12  public:
13 
16  Resources::Interiors::IInteriorsMaterialService& interiorsMaterialService,
17  const Resources::Interiors::InteriorsStencilMirrorClearRenderableFactory& interiorsStencilMirrorClearRenderableFactory,
18  const Resources::Interiors::IInteriorsMaterialAssignmentObserver& materialAssignmentObserver,
19  const UnityCallbacks& unityCallbacks);
20 
21  Rendering::Renderables::InteriorFloorRenderable* CreateInteriorFloorRenderable(
22  const std::string& interiorIdentifier, Resources::Interiors::Builder::InteriorRenderableCreationData& creationData, const float interiorTerrainHeight);
23 
24  Rendering::Renderables::InstancedInteriorFloorRenderable* CreateInstancedInteriorFloorRenderable(
25  const std::string& interiorIdentifier,
26  const std::string& materialGroup,
28  int floorIndex,
29  const float interiorTerrainHeight,
30  const std::vector<m44>& instanceTransforms,
31  bool ownsMesh);
32 
33  Rendering::Renderables::InteriorHighlightRenderable* CreateInteriorHighlightRenderable(
34  const std::string& interiorIdentifier, Resources::Interiors::Builder::InteriorRenderableCreationData& creationData, const float interiorTerrainHeight);
35 
36  Rendering::Renderables::InstancedInteriorFloorRenderable* CreateInstancedStencilMirrorMaskRenderable(
37  const std::string& interiorIdentifier, Resources::Interiors::Builder::InteriorRenderableCreationData& creationData, const float interiorTerrainHeight, const std::vector<m44>& instanceTransforms);
38 
39  Resources::Interiors::InteriorsStencilMirrorClearRenderable* CreateStencilMirrorClearRenderable(
40  const Rendering::Renderables::InteriorRenderable& mirrorRenderable);
41 
42  private:
43 
45 
46  std::string MakeRenderableIdFromMaterialName(const std::string& materialName, bool isEntity);
47 
48  Rendering::Materials::IMaterial* GetMaterialFromMaterialData(const std::string& interiorName, const Resources::Interiors::InteriorMaterialData& materialData);
49 
50  Rendering::Renderables::InteriorFloorRenderable* CreateStencilMirrorMaskRenderable(
51  const std::string& interiorIdentifier,
53  const float interiorTerrainHeight);
54 
56  Resources::Interiors::IInteriorsMaterialService& m_interiorsMaterialService;
57  const Resources::Interiors::InteriorsStencilMirrorClearRenderableFactory& m_interiorsStencilMirrorClearRenderableFactory;
58  const Resources::Interiors::IInteriorsMaterialAssignmentObserver& m_materialAssignmentObserver;
59  const UnityCallbacks m_unityCallbacks;
60  };
61  }
62 }