All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
EnvironmentRayCaster.h
1 // Copyright eeGeo Ltd (2012-2014), 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 "IRayCaster.h"
12 #include "RayCasterBase.h"
13 
14 #include <vector>
15 
16 namespace Eegeo
17 {
18  namespace Collision
19  {
20  class EnvironmentRayCaster : public RayCasterBase, virtual public IRayCaster
21  {
22  public:
23  EnvironmentRayCaster(const ICollisionBvhProvider& collisionBvhProvider,
24  const Eegeo::Rendering::EnvironmentFlatteningService& environmentFlatteningService);
25 
26  virtual ~EnvironmentRayCaster() {;}
27 
28  virtual RayCasterResult CastRay(const Eegeo::dv3& rayOrigin, const Eegeo::dv3& rayDirection, u32 collidableGroupsMask = Collision::CollisionGroup::CollideAll);
29 
30  private:
31 
32  const Eegeo::Rendering::EnvironmentFlatteningService& m_environmentFlatteningService;
33  };
34  }
35 }