15 class StringPulledBubbleList;
19 class BubbleStringPullerBetweenPivots
24 class Pivot :
public ListNode<Pivot>
28 : m_globalArrayIdx(globalArrayIdx)
29 , m_localArrayIdx(localArrayIdx)
34 m_globalArrayIdx = globalArrayIdx;
35 m_localArrayIdx = localArrayIdx;
45 class BubbleArraySubSet
61 , m_subSetSide(BeforePivot)
66 , m_startGlobalIndex(startGlobalIndex)
67 , m_endGlobalIndex(endGlobalIndex)
68 , m_refBubbleGlobalIndex(endGlobalIndex)
69 , m_startLocalIndex(startLocalIndex)
70 , m_endLocalIndex(endLocalIndex)
71 , m_subSetSide(BeforePivot)
74 BubbleArraySubSet(Pivot* pivot, SubSetSide subSetSide,
const KyUInt32 startGlobalIndex,
const KyUInt32 endGlobalIndex,
KyUInt32 startLocalIndex,
KyUInt32 endLocalIndex)
76 , m_startGlobalIndex(startGlobalIndex)
77 , m_endGlobalIndex(endGlobalIndex)
78 , m_refBubbleGlobalIndex(endGlobalIndex)
79 , m_startLocalIndex(startLocalIndex)
80 , m_endLocalIndex(endLocalIndex)
81 , m_subSetSide(subSetSide)
90 SubSetSide m_subSetSide;
93 class IncreasingProjectionDistance2dLessSorter
96 IncreasingProjectionDistance2dLessSorter(
97 const BubbleArray* bubbleArray,
const Vec2f& referencePosition,
98 const Vec2f& referenceVector,
KyUInt32 referenceEndBubbleIdx)
99 : m_bubbleArray(bubbleArray)
100 , m_referencePosition(referencePosition)
101 , m_referenceVector(referenceVector)
102 , m_referenceEndBubbleIdx(referenceEndBubbleIdx)
108 if (firstIdx == m_referenceEndBubbleIdx)
110 if (secondIdx == m_referenceEndBubbleIdx)
113 const Bubble& firstBubble = m_bubbleArray->At(firstIdx);
114 const Bubble& secondBubble = m_bubbleArray->At(secondIdx);
116 const Vec2f vecToFirst = firstBubble.GetCenter().Get2d() - m_referencePosition;
117 const Vec2f vecToSecond = secondBubble.GetCenter().Get2d() - m_referencePosition;
119 return (DotProduct(vecToFirst, m_referenceVector) < DotProduct(vecToSecond, m_referenceVector));
123 const BubbleArray* m_bubbleArray;
124 Vec2f m_referencePosition;
125 Vec2f m_referenceVector;
131 KyResult SolveLocalStringPulledBubbleList(
const BubbleArray& bubbleArray, KyArrayPOD<KyUInt32>& cornerIndexArray,
132 KyUInt32 startGlobalIndex,
KyUInt32 endGlobalIndex, StringPulledBubbleList& stringPulledBubbleList);
139 KyResult TreatNextSubStrip(
const BubbleArray& bubbleArray, KyArrayPOD<KyUInt32>& funnelCornerIndices,
140 KyArray<BubbleArraySubSet>& subSets, KyArray<Pivot>& pivotArray, List<Pivot>& pivotList);
std::uint32_t KyUInt32
uint32_t
Definition: types.h:29
Navigation return code class.
Definition: types.h:108
The Autodesk Navigation namespace.
Definition: gamekitcrowddispersion.cpp:17
#define KyUInt32MAXVAL
KyUInt32 max value
Definition: types.h:68