All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
RayCasterMultipleIntersectionBuilder.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 "RayMeshIntersectionResult.h"
8 #include "RayNodeIntersectionResult.h"
9 #include "RayCasterResult.h"
10 #include "VectorMath.h"
11 #include "IVerifyRaycastResultDelegate.h"
12 #include "RayCasterIntersectionBuilder.h"
13 
14 #include <functional>
15 #include <vector>
16 
17 namespace Eegeo
18 {
19  namespace Collision
20  {
22  {
24  const dv3& rayOriginEcef,
25  const dv3& rayDirection,
26  float environmentFlatteningScale,
27  const IVerifyRaycastResultDelegate& validIntersectionVerfification);
28 
29  bool operator () (const RayNodeIntersectionResult& nodeIntersection);
30 
31  std::vector<RayCasterResult> BuildResult();
32  private:
33  RayMeshIntersectionResult m_furthest;
34  std::vector<RayCasterResult> m_intersections;
35  };
36  }
37 }