Ocular Engine
PointLightRenderable.hpp
1 
17 #pragma once
18 #ifndef __H__OCULAR_CORE_RENDERABLE_POINT_LIGHT__H__
19 #define __H__OCULAR_CORE_RENDERABLE_POINT_LIGHT__H__
20 
21 #include "Scene/ARenderable.hpp"
22 
23 #include "Math/Quaternion.hpp"
24 #include "Math/Vector3.hpp"
25 
26 //------------------------------------------------------------------------------------------
27 
32 namespace Ocular
33 {
34  namespace Graphics
35  {
36  class Material;
37  class Mesh;
38  }
39 
44  namespace Core
45  {
54  {
55  public:
56 
57  PointLightRenderable(std::string const& name = "PointLightRenderable", SceneObject* parent = nullptr);
58  virtual ~PointLightRenderable();
59 
60  virtual bool initialize() override;
61 
62  virtual bool preRenderDebug() override;
63  virtual void renderDebug() override;
64  virtual void postRenderDebug() override;
65 
66  protected:
67 
68  bool buildExtentsMaterial();
69  bool buildExtentsMesh();
70 
71  // Graphics objects used to render the optional light extents rings
72 
73  static Graphics::Material* m_ExtentsMaterial;
74  static Graphics::Mesh* m_ExtentsMesh;
75 
76  static uint32_t m_InternalReference;
77 
78  Math::Quaternion m_StoredRotation;
79  Math::Vector3f m_StoredScale;
80 
81  private:
82  };
83  }
87 }
92 //------------------------------------------------------------------------------------------
93 
94 #endif
virtual bool preRenderDebug() override
Definition: PointLightRenderable.cpp:91
Note: Once this library is made dynamic, this will no longer be needed.
Definition: Common.hpp:70
Definition: Quaternion.hpp:50
Combination of a VertexBuffer and IndexBuffer.
Definition: Mesh.hpp:49
Definition: SceneObject.hpp:93
Definition: ARenderable.hpp:53
virtual void postRenderDebug() override
Definition: PointLightRenderable.cpp:128
Definition: PointLightRenderable.hpp:53
Definition: Material.hpp:62
virtual void renderDebug() override
Definition: PointLightRenderable.cpp:115