Ocular Engine
BVHSceneNode.hpp
1 
17 #pragma once
18 #ifndef __H__OCULAR_CORE_SCENE_BVH_SCENE_NODE__H__
19 #define __H__OCULAR_CORE_SCENE_BVH_SCENE_NODE__H__
20 
21 #include "SceneNode.hpp"
22 #include "Math/Bounds/BoundsAABB.hpp"
23 
24 //------------------------------------------------------------------------------------------
25 
30 namespace Ocular
31 {
36  namespace Core
37  {
44  class BVHSceneNode : public SceneNode
45  {
46  public:
47 
48  BVHSceneNode();
49  virtual ~BVHSceneNode();
50 
51  virtual void attachObject(SceneObject* object) override;
52 
53  //------------------------------------------------------------
54  // Public Variables
55 
57  uint64_t morton;
58 
61 
63 
64  protected:
65 
66  private:
67 
68  };
69  }
73 }
78 //------------------------------------------------------------------------------------------
79 
80 #endif
BVHSceneNode * left
The 'left' child node (null if this is a leaf).
Definition: BVHSceneNode.hpp:59
BVHSceneNode * right
The 'right' child node (null if this is a leaf).
Definition: BVHSceneNode.hpp:60
virtual void attachObject(SceneObject *object) override
Definition: BVHSceneNode.cpp:49
Note: Once this library is made dynamic, this will no longer be needed.
Definition: Common.hpp:70
uint64_t morton
The morton index value for this node.
Definition: BVHSceneNode.hpp:57
Definition: BVHSceneNode.hpp:44
Definition: SceneNode.hpp:51
Definition: SceneObject.hpp:93
Math::BoundsAABB bounds
Bounds of this BVH node that encompass all children.
Definition: BVHSceneNode.hpp:56
SceneObject * object
The object attached to this node (null unless this is a leaf).
Definition: BVHSceneNode.hpp:62
Definition: BoundsAABB.hpp:63