All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
SceneModelRenderableNode.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 #include "SceneModelNode.h"
6 #include "Rendering.h"
7 #include "VectorMathDecl.h"
8 #include "LayerIds.h"
9 #include <vector>
10 #include <string>
11 
12 namespace Eegeo
13 {
14  namespace Rendering
15  {
16  namespace SceneModels
17  {
19  {
20  public:
21 
22  SceneModelRenderableNode(std::string name, Renderables::SceneModelRenderable* pRenderable);
24 
25  Renderables::SceneModelRenderable* GetRenderable() const { return m_pRenderable; }
26 
27  virtual void SetLayer(Rendering::LayerIds::Values layerId);
28  virtual void SetDepthTestingRecursive(bool enabled);
29 
30  SceneModelMaterialResource& GetMaterialResource() const;
31  void SetMaterialResource(SceneModelMaterialResource& materialResource, Rendering::VertexLayouts::VertexBindingPool& vertexBindingPool);
32 
33  virtual void UpdateTransforms(const dv3& ecefOrigin, const m44& parentTransform, bool dirtyParent);
34 
35  virtual void VisitForRendering(ISceneModelNodeRenderVisitor &visitor, const Rendering::RenderContext &renderContext, Eegeo::Rendering::RenderQueue &renderQueue);
36 
37  virtual SceneModelNode* Clone(SceneModelNode* pNewParent);
38 
39  void SetDepthRangeRecursive(float near, float far);
40 
41  private:
42 
43  Renderables::SceneModelRenderable* m_pRenderable;
44  };
45  }
46  }
47 }