summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJakub Marcowski <01158831@pw.edu.pl>2023-10-16 12:26:59 +0200
committerJakub Marcowski <01158831@pw.edu.pl>2023-10-16 12:37:57 +0200
commitc33e291474cdeae2ac9678ecf30d443d139169e3 (patch)
treeb6ae3e14eabe05096cf86c8f67d271d2a121fdae
parent5fb9ff9986a8597c3afc0a0eec92da312c3811f5 (diff)
downloadredot-engine-c33e291474cdeae2ac9678ecf30d443d139169e3.tar.gz
Update `triangulate_delaunay()` to avoid needless reallocations
-rw-r--r--core/math/geometry_2d.h8
1 files changed, 5 insertions, 3 deletions
diff --git a/core/math/geometry_2d.h b/core/math/geometry_2d.h
index 0e5702e0af..b37fce9e9c 100644
--- a/core/math/geometry_2d.h
+++ b/core/math/geometry_2d.h
@@ -306,10 +306,12 @@ public:
Vector<Delaunay2D::Triangle> tr = Delaunay2D::triangulate(p_points);
Vector<int> triangles;
+ triangles.resize(3 * tr.size());
+ int *ptr = triangles.ptrw();
for (int i = 0; i < tr.size(); i++) {
- triangles.push_back(tr[i].points[0]);
- triangles.push_back(tr[i].points[1]);
- triangles.push_back(tr[i].points[2]);
+ *ptr++ = tr[i].points[0];
+ *ptr++ = tr[i].points[1];
+ *ptr++ = tr[i].points[2];
}
return triangles;
}