gwnavruntime/queries/utils/bubblearrayqueries.h Source File
Go to the documentation of this file.
18 class BubbleArrayQueries
21 BubbleArrayQueries() { m_bubbleArray =
nullptr; }
23 void Init(
const BubbleArray* bubbleArray) { m_bubbleArray = bubbleArray; }
25 struct RayCastFromCornerInputOutput
27 RayCastFromCornerInputOutput()
29 , m_dir2d(Vec2f::Zero())
41 KyUInt32 m_collisionSegmentStartCornerIdx;
42 KyUInt32 m_collisionSegmentEndCornerIdx;
49 Collision_OppositeSide,
50 Collision_StartCorner,
55 void RayCastFromCorner(RayCastFromCornerInputOutput& rayCastFromCornerInputOuput);
57 bool RayCanGoFromCorner(
KyUInt32 cornerIdx,
const Vec3f& dest);
59 void CollectIntersectingBubbles(
KyUInt32 startCornerIdx,
const Vec2f& dir2d,
RotationDirection rotDir, KyArrayPOD<KyUInt32>& intersectingBubbles, DisplayList* displayList);
60 void CollectIntersectingBubbles(
KyUInt32 startCornerIdx,
const Vec2f& dir2d,
RotationDirection rotDir, KyArrayPOD<KyUInt32>& intersectingBubbles);
63 template <
typename TVisualDebug>
64 void CollectIntersectingBubbles_Impl(
KyUInt32 startCornerIdx,
const Vec2f& dir2d,
RotationDirection rotDir, KyArrayPOD<KyUInt32>& intersectingBubbles,
65 const TVisualDebug& vizDebug);
68 void CastRayInTheStripForward(RayCastFromCornerInputOutput& rayCastFromBubbleInputOuput,
KyUInt32 startCornerIdx,
KyUInt32 leftCornerIdx,
KyUInt32 rightCornerIdx);
69 void CastRayInTheStripBackward(RayCastFromCornerInputOutput& rayCastFromBubbleInputOuput,
KyUInt32 startCornerIdx,
KyUInt32 leftCornerIdx,
KyUInt32 rightCornerIdx);
71 void ResolveWhenRayGoesOnOppositeBubble(RayCastFromCornerInputOutput& rayCastFromBubbleInputOuput,
KyUInt32 startCornerIdx,
KyUInt32 bubbleIdxOnOppositeSide);
73 bool IsStartOrEndBubble(
KyUInt32 cornerIdx)
75 BubbleType bubbleType = m_bubbleArray->At(cornerIdx).GetType();
76 return bubbleType == StartBubble || bubbleType == EndBubble;
86 const BubbleArray* m_bubbleArray;
std::uint32_t KyUInt32
uint32_t
Definition: types.h:29
RotationDirection
Defines the 4 possible cases of possibly constrained rotation in the horizontal plane for a given ele...
Definition: rotation.h:15
BubbleType
Defines the type of a bubble accordingly to the place it has in a BubbleArray, a BubbleList, etc.
Definition: bubble.h:22
The Autodesk Navigation namespace.
Definition: gamekitcrowddispersion.cpp:17
#define KyUInt32MAXVAL
KyUInt32 max value
Definition: types.h:68