Ocular Engine
CameraRenderable.hpp
1 
17 #pragma once
18 #ifndef __H__OCULAR_CORE_RENDERABLE_CAMERA__H__
19 #define __H__OCULAR_CORE_RENDERABLE_CAMERA__H__
20 
21 #include "Scene/ARenderable.hpp"
22 
23 //------------------------------------------------------------------------------------------
24 
29 namespace Ocular
30 {
31  namespace Graphics
32  {
33  class Material;
34  class Mesh;
35  }
36 
41  namespace Core
42  {
50  {
51  public:
52 
53  CameraRenderable(std::string const& name = "CameraRenderable", SceneObject* parent = nullptr);
54  virtual ~CameraRenderable();
55 
56  virtual bool initialize() override;
57 
58  virtual bool preRenderDebug() override;
59  virtual void renderDebug() override;
60  virtual void postRenderDebug() override;
61 
62  protected:
63 
64  bool buildFrustumMesh();
65  bool buildFrustumMaterial();
66 
67  // Graphics objects used to render the debug view frustum bounds
68 
69  Graphics::Mesh* m_FrustumMesh;
70  Graphics::Material* m_FrustumMaterial;
71 
72  private:
73  };
74  }
78 }
83 //------------------------------------------------------------------------------------------
84 
85 #endif
virtual bool preRenderDebug() override
Definition: CameraRenderable.cpp:80
virtual void renderDebug() override
Definition: CameraRenderable.cpp:87
Note: Once this library is made dynamic, this will no longer be needed.
Definition: Common.hpp:70
Combination of a VertexBuffer and IndexBuffer.
Definition: Mesh.hpp:49
Definition: SceneObject.hpp:93
Definition: ARenderable.hpp:53
virtual void postRenderDebug() override
Definition: CameraRenderable.cpp:100
Definition: CameraRenderable.hpp:49
Definition: Material.hpp:62