All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
IInteriorRenderableFactory.h
1 #pragma once
2 
3 #include "Interiors.h"
4 #include "Rendering.h"
5 #include "VectorMathDecl.h"
6 #include <string>
7 #include <vector>
8 
9 namespace Eegeo
10 {
11  namespace Resources
12  {
13  namespace Interiors
14  {
15  namespace Builder
16  {
18  {
19  public:
20 
21  virtual ~IInteriorRenderableFactory() {}
22 
23  virtual Rendering::Renderables::InteriorFloorRenderable* CreateInteriorFloorRenderable(const std::string& interiorIdentifier,
24  InteriorRenderableCreationData& creationData,
25  const float interiorTerrainHeight) = 0;
26 
27  virtual Rendering::Renderables::InstancedInteriorFloorRenderable* CreateInstancedInteriorFloorRenderable(
28  const std::string& interiorIdentifier,
29  const std::string& materialGroup,
30  InteriorRenderableCreationData& creationData,
31  int floorIndex,
32  const float interiorTerrainHeight,
33  const std::vector<m44>& instanceTransforms,
34  bool ownsMesh) = 0;
35 
36  virtual Rendering::Renderables::InteriorHighlightRenderable* CreateInteriorHighlightRenderable(const std::string& interiorIdentifier,
37  InteriorRenderableCreationData& creationData,
38  const float interiorTerrainHeight) = 0;
39 
40  virtual Rendering::Renderables::InstancedInteriorFloorRenderable* CreateInstancedStencilMirrorMaskRenderable(
41  const std::string& interiorIdentifier,
42  InteriorRenderableCreationData& creationData,
43  const float interiorTerrainHeight,
44  const std::vector<m44>& instanceTransforms) = 0;
45 
46  virtual Rendering::Renderables::InteriorFloorRenderable* CreateStencilMirrorMaskRenderable(const std::string& interiorIdentifier,
47  InteriorRenderableCreationData& creationData,
48  const float interiorTerrainHeight) = 0;
49 
50  virtual Resources::Interiors::InteriorsStencilMirrorClearRenderable* CreateStencilMirrorClearRenderable(
51  const Rendering::Renderables::InteriorRenderable& mirrorRenderable) = 0;
52  };
53  }
54  }
55  }
56 }
57