All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
CollisionMeshRayPicker.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 #include "Types.h"
6 #include "IRayPicker.h"
7 #include "VectorMath.h"
8 #include "RayNodeIntersectionResult.h"
9 
10 #include <vector>
11 #include <deque>
12 
13 namespace Eegeo
14 {
15  namespace Collision
16  {
22  {
23  public:
25 
26  virtual ~CollisionMeshRayPicker();
27 
39  virtual bool TryGetRayIntersection(const Eegeo::dv3& rayOrigin, const Eegeo::dv3& rayDirection, Eegeo::dv3& out_ecefIntersectionPoint, double& out_param);
40 
41  private:
42  const ICollisionBvhProvider& m_collisionBvhProvider;
43 
44  typedef std::vector<const CollisionBvh*> CollisionBvhBuffer;
45  CollisionBvhBuffer m_collisionBvhBuffer;
46 
47  typedef std::deque<RayNodeIntersectionResult> RayNodeIntersectionsBuffer;
48  RayNodeIntersectionsBuffer m_rayNodeIntersectionsBuffer;
49  };
50  }
51 }