All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
RayCasterBase.h
1 // Copyright eeGeo Ltd (2012-2017), All Rights Reserved
2 
3 #pragma once
4 
5 #include "Collision.h"
6 #include "VectorMath.h"
7 #include "CollisionGroup.h"
8 #include "RayCasterResult.h"
9 #include "RayNodeIntersectionResult.h"
10 #include "Rendering.h"
11 #include "InteriorsPresentationModule.h"
12 
13 #include <vector>
14 
15 namespace Eegeo
16 {
17  namespace Collision
18  {
20  {
21  public:
22  RayCasterBase(const ICollisionBvhProvider& collisionBvhProvider);
23 
24  protected:
25  typedef std::vector<const CollisionBvh*> CollisionBvhVector;
26  typedef std::vector<RayNodeIntersectionResult> RayNodeIntersectionResultVector;
27 
28  void CreateBvhBuffer(u32 collidableGroupsMask);
29  void ClearBuffers();
30 
31  const ICollisionBvhProvider& m_collisionBvhProvider;
32  CollisionBvhVector m_collisionBvhBuffer;
33  RayNodeIntersectionResultVector m_rayNodeIntersectionResults;
34  };
35  }
36 }