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