22 class WorkingMemBitField;
24 class WorkingMemArray;
42 EdgeIntersector() : m_debugDisplayListBeforeSnap(
nullptr), m_debugDisplayListAfterSnap(
nullptr), m_rasterPrecision(0.0f) {}
45 KyResult ComputeIntersections(WorkingMemory* workingMemory);
47 static bool Intersects_grid_rounded(
const Vec2i& hotPoint,
const Vec2i& start,
const Vec2i& end);
50 KyResult ComputeIntersections_Pass1(WorkingMemory* workingMemory,
const WorkingMemArray<InputEdge>& rawEdges,
const WorkingMemArray<Box2i>& edgeBoundingBoxes,
51 WorkingMemArray<Vec2i>& points);
53 void ComputeIntersections_Pass2(
const WorkingMemArray<InputEdge>& rawEdges,
const WorkingMemArray<Box2i>& edgeBoundingBoxes,
const WorkingMemArray<Vec2i>& points);
55 void ComputeIntersectionsOuputEdgePieces(
const WorkingMemArray<InputEdge>& rawEdges,
const WorkingMemArray<Vec2i>& points, KyArray<InputEdgePiece>& intersectedEdges);
57 void InitEdges(
const KyArray<InputEdge>& rawEdges);
59 void ComputeBoundingBoxesOfInputEdges(
const WorkingMemArray<InputEdge>& rawEdges, WorkingMemArray<Box2i>& edgeBoundingBoxes);
61 void ComputeBoundingBoxesIntersection(
const WorkingMemArray<InputEdge>& rawEdges,
const WorkingMemArray<Box2i>& edgeBoundingBoxes, WorkingMemBitField& boxIntersect);
63 KyResult SortHotPointAndRemoveDuplicate(WorkingMemory* workingMemory,
const WorkingMemArray<InputEdge>& rawEdges, WorkingMemArray<IndexedPos>& hotPoints,
64 WorkingMemArray<Vec2i>& uniqueHotPoints);
66 void SortCutList(
const WorkingMemArray<InputEdge>& rawEdges,
const WorkingMemArray<Vec2i>& points);
68 KyArray<KyArray<KyUInt32> > m_cuts;
73 void FullDebugInit(
KyFloat32 rasterPrecision,
const Vec2i& cellOffset, DisplayList* displayListBeforeSnap, DisplayList* displayListAfterSnap);
74 void FullDebugIntersections(
const WorkingMemArray<InputEdge>& rawEdges,
const WorkingMemArray<Vec2i>& hotPoints, DisplayList& displayList);
75 KyResult FullDebugCheck(
const WorkingMemArray<InputEdge>& rawEdges,
const WorkingMemArray<Vec2i>& hotPoints, DisplayList* displayList);
77 DisplayList* m_debugDisplayListBeforeSnap;
78 DisplayList* m_debugDisplayListAfterSnap;
#define KY_DEFINE_NEW_DELETE_OPERATORS(MemStat)
This macro defines new and delete operators.
Definition: memory.h:132
Navigation return code class.
Definition: types.h:108
The Autodesk Navigation namespace.
Definition: gamekitcrowddispersion.cpp:17
float KyFloat32
float
Definition: types.h:32