18 #ifndef B2_VORONOI_DIAGRAM
19 #define B2_VORONOI_DIAGRAM
21 #include <Box2D/Common/b2Math.h>
35 void AddGenerator(
const b2Vec2& center, int32 tag);
37 void Generate(float32 radius);
39 template<
class Callback>
40 void GetNodes(
const Callback& callback)
const
42 for (int32 y = 0; y < m_countY - 1; y++)
44 for (int32 x = 0; x < m_countX - 1; x++)
46 int32 i = x + y * m_countX;
47 const Generator* a = m_diagram[i];
48 const Generator* b = m_diagram[i + 1];
49 const Generator* c = m_diagram[i + m_countX];
50 const Generator* d = m_diagram[i + 1 + m_countX];
55 callback(a->tag, b->tag, c->tag);
59 callback(b->tag, d->tag, c->tag);
74 struct b2VoronoiDiagramTask
77 Generator* m_generator;
79 b2VoronoiDiagramTask() {}
80 b2VoronoiDiagramTask(int32 x, int32 y, int32 i, Generator* g)
90 Generator* m_generatorBuffer;
91 int32 m_generatorCount;
92 int32 m_countX, m_countY;
93 Generator** m_diagram;
Definition: b2StackAllocator.h:37
A field representing the nearest generator from each point.
Definition: b2VoronoiDiagram.h:27
An axis aligned bounding box.
Definition: b2Collision.h:161
A 2D column vector.
Definition: b2Math.h:64