All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
FeatureRayCastResult.h
1 #pragma once
2 
3 #include "Types.h"
4 #include "Collision.h"
5 #include "CollisionGroup.h"
6 #include "VectorMath.h"
7 
8 #include <string>
9 
10 namespace Eegeo
11 {
12  namespace Collision
13  {
15  {
16  public:
18  : m_didIntersect(false)
19  , m_intersectionParam(0.0)
20  , m_intersectionPointEcef(dv3::Zero())
21  , m_intersectionSurfaceNormal(v3::Zero())
22  , m_intersectionCollisionGroup(Collision::CollisionGroup::Default)
23  {}
24 
26  bool didIntersect,
27  double intersectionParam,
28  const dv3& intersectionPointEcef,
29  const v3& intersectionSurfaceNormal,
30  Collision::CollisionGroup::Type intersectionCollisionGroup,
31  const std::string& intersectionCollisionMaterialId
32  );
33 
34  bool DidIntersect() const { return m_didIntersect; }
35  double GetIntersectionParam() const { return m_intersectionParam; }
36  const dv3& GetIntersectionPointEcef() const { return m_intersectionPointEcef; }
37  const v3& GetIntersectionSurfaceNormal() const { return m_intersectionSurfaceNormal; }
38  Collision::CollisionGroup::Type GetIntersectionCollisionGroup() const { return m_intersectionCollisionGroup; }
39  const std::string& GetIntersectionCollisionMaterialId() const { return m_intersectionCollisionMaterialId; }
40 
41  private:
42  bool m_didIntersect;
43  double m_intersectionParam;
44  dv3 m_intersectionPointEcef;
45  v3 m_intersectionSurfaceNormal;
46  Collision::CollisionGroup::Type m_intersectionCollisionGroup;
47  std::string m_intersectionCollisionMaterialId;
48  };
49  }
50 }