All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
SceneModelRenderableFilter.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 #include "Types.h"
6 #include "IRenderableFilter.h"
7 #include <vector>
8 #include "SceneModel.h"
9 #include "SceneModelNode.h"
10 #include "SceneModelRenderable.h"
11 #include "RenderContext.h"
12 #include "RenderQueue.h"
13 #include "SceneModelNodeVisitors.h"
14 #include "DebugRendering.h"
15 #include <algorithm>
16 #include <stack>
17 
18 namespace Eegeo
19 {
20  namespace Rendering
21  {
22  namespace Filters
23  {
25  {
26  public:
27 
29 
30  void AddSceneModel(SceneModels::SceneModel& sceneModel);
31  void RemoveSceneModel(SceneModels::SceneModel& sceneModel);
32 
33  void EnqueueRenderables(const Rendering::RenderContext& renderContext, RenderQueue& renderQueue);
34  void EnqueueForRendering(SceneModels::SceneModelNode& node, const Rendering::RenderContext& renderContext, RenderQueue& renderQueue);
35  void EnqueueForRendering(SceneModels::SceneModelRenderableNode& node, const Rendering::RenderContext& renderContext, RenderQueue& renderQueue);
36 
37  private:
38  std::vector<SceneModels::SceneModel*> m_sceneModels;
39 
40  DebugRendering::DebugRenderer& m_debugRenderer;
41  bool m_drawNodeSpheres;
42  };
43  }
44  }
45 }