gwnavruntime/queries/utils/halfedgeintersection.h Source File

halfedgeintersection.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 // Primary contact: JUBA - secondary contact: LASI
8 #ifndef Navigation_HalfEdgeIntersection_H
9 #define Navigation_HalfEdgeIntersection_H
10 
12 
13 
14 namespace Kaim
15 {
16 
17 // This class is a "volatile" version of the HalfEdgeIntersection class. It used internally during computation
20 {
21  KY_DEFINE_NEW_DELETE_OPERATORS(MemStat_Query)
22 
23 public:
25  RawHalfEdgeIntersection(const NavHalfEdgeRawPtr& navHalfEdgeRawPtr, const Vec3f& intersectionPos3f) :
26  m_navHalfEdgeRawPtr(navHalfEdgeRawPtr), m_intersectionPos3f(intersectionPos3f) {}
27 
28 public:
31 };
32 
41 {
42  KY_DEFINE_NEW_DELETE_OPERATORS(MemStat_Query)
43 
44 public:
45  HalfEdgeIntersection() : m_intersectionPos3f(KyFloat32MAXVAL, KyFloat32MAXVAL, KyFloat32MAXVAL) {}
46  HalfEdgeIntersection(const RawHalfEdgeIntersection& rawHalfEdgeIntersection) :
47  m_navHalfEdgePtr(rawHalfEdgeIntersection.m_navHalfEdgeRawPtr.GetNavFloor(), rawHalfEdgeIntersection.m_navHalfEdgeRawPtr.GetHalfEdgeIdx()),
48  m_intersectionPos3f(rawHalfEdgeIntersection.m_intersectionPos3f) {}
49 
50 public:
51  NavHalfEdgePtr m_navHalfEdgePtr;
52  Vec3f m_intersectionPos3f;
53 };
54 
55 }
56 
57 
58 #endif //Navigation_HalfEdgeIntersection_H
59 
60 
#define KyFloat32MAXVAL
The maximum value that can be stored in the KyFloat32 variable type.
Definition: types.h:227
Vec3f m_intersectionPos3f
Records the intersections Between the ray and the halfEdge.
Definition: halfedgeintersection.h:58
Definition: gamekitcrowddispersion.h:20
and then finally stored as NavTagSubSegment in the QueryDynamicOutput. see HalfEdgeIntersection for d...
Definition: halfedgeintersection.h:19
#define KY_DEFINE_NEW_DELETE_OPERATORS(MemStat)
This macro defines new and delete operators.
Definition: memory.h:137
NavHalfEdgePtr m_navHalfEdgePtr
Records the NavHalfEdge crossed by this sub-segment.
Definition: halfedgeintersection.h:57
Vec3f m_intersectionPos3f
Records the intersections between the ray and the HalfEdge.
Definition: halfedgeintersection.h:32
Each instance of this class uniquely identifies a singleNavHalfEdge in a NavFloor.
Definition: navhalfedgerawptr.h:34
This class represents an intersection between an NavHalfEdge and a ray (within a RayCastQuery or a Ra...
Definition: halfedgeintersection.h:44
This class defines a three-dimensional vector whose coordinates are stored using floating-point numbe...
Definition: vec3f.h:23
NavHalfEdgeRawPtr m_navHalfEdgeRawPtr
Records the NavHalfEdge crossed by this sub-segment.
Definition: halfedgeintersection.h:31