diff options
author | Jakub Marcowski <01158831@pw.edu.pl> | 2023-10-16 12:26:59 +0200 |
---|---|---|
committer | Jakub Marcowski <01158831@pw.edu.pl> | 2023-10-16 12:37:57 +0200 |
commit | c33e291474cdeae2ac9678ecf30d443d139169e3 (patch) | |
tree | b6ae3e14eabe05096cf86c8f67d271d2a121fdae | |
parent | 5fb9ff9986a8597c3afc0a0eec92da312c3811f5 (diff) | |
download | redot-engine-c33e291474cdeae2ac9678ecf30d443d139169e3.tar.gz |
Update `triangulate_delaunay()` to avoid needless reallocations
-rw-r--r-- | core/math/geometry_2d.h | 8 |
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; } |