gwnavruntime/queries/utils/convexquadintersector.h Source File

convexquadintersector.h
Go to the documentation of this file.
1 /*
2 * Copyright 2015 Autodesk, Inc. All rights reserved.
3 * Use of this software is subject to the terms of the Autodesk license agreement and any attachments or Appendices thereto provided at the time of installation or download,
4 * or which otherwise accompanies this software in either electronic or hard copy form, or which is signed by you and accepted by Autodesk.
5 */
6 
7 
8 // Primary contact: JUBA - secondary contact: NOBODY
9 #ifndef Navigation_ConvexQuadIntersector_H
10 #define Navigation_ConvexQuadIntersector_H
11 
14 
15 namespace Kaim
16 {
17 
18 /*
19 class ConvexQuadIntersector
20 */
21 class ConvexQuadIntersector
22 {
23  KY_DEFINE_NEW_DELETE_OPERATORS(MemStat_Query)
24 
25 public:
26  ConvexQuadIntersector(const Vec3f& a, const Vec3f& b, const Vec3f& c, const Vec3f& d, KyFloat32 integerPrecision)
27  {
28  m_a = a;
29  m_b = b;
30  m_c = c;
31  m_d = d;
32  m_integerPrecision = integerPrecision;
33  }
34 
35  bool DoesIntersectEdge(const CoordPos64& startEdgeCoordPos, const CoordPos64& endEdgeCoordPos)
36  {
37  const Vec3f startEdgePos(startEdgeCoordPos.x * m_integerPrecision, startEdgeCoordPos.y * m_integerPrecision, 0.f);
38  const Vec3f endEdgePos(endEdgeCoordPos.x * m_integerPrecision, endEdgeCoordPos.y * m_integerPrecision, 0.f);
39 
40  return Intersections::SegmentVsConvexQuad2D(startEdgePos, endEdgePos, m_a, m_b, m_c, m_d);
41  }
42 
43 private:
44  Vec3f m_a;
45  Vec3f m_b;
46  Vec3f m_c;
47  Vec3f m_d;
48  KyFloat32 m_integerPrecision;
49 };
50 
51 
52 }
53 
54 
55 #endif //Navigation_ConvexQuadIntersector_H
56 
Vec2LL CoordPos64
A type that represents the position of a point within the 2D integer grid.
Definition: navmeshtypes.h:19
Definition: gamekitcrowddispersion.h:20
#define KY_DEFINE_NEW_DELETE_OPERATORS(MemStat)
This macro defines new and delete operators.
Definition: memory.h:137
float KyFloat32
Type used internally to represent a 32-bit floating-point number.
Definition: types.h:43