Geometry2D minor optimization

This commit is contained in:
Mounir Tohami
2025-08-23 03:46:20 +03:00
parent 6efa557e9b
commit 081cebb2f7

View File

@ -292,14 +292,16 @@ Vector<Vector<Point2>> Geometry2D::_polypaths_do_operation(PolyBooleanOperation
} }
Vector<Vector<Point2>> polypaths; Vector<Vector<Point2>> polypaths;
for (PathsD::size_type i = 0; i < paths.size(); ++i) { polypaths.resize(paths.size());
for (PathsD::size_type i = 0; i < paths.size(); i++) {
const PathD &path = paths[i]; const PathD &path = paths[i];
Vector<Vector2> polypath; Vector<Vector2> polypath;
polypath.resize(path.size());
for (PathsD::size_type j = 0; j < path.size(); ++j) { for (PathsD::size_type j = 0; j < path.size(); ++j) {
polypath.push_back(Point2(static_cast<real_t>(path[j].x), static_cast<real_t>(path[j].y))); polypath.set(j, Point2(static_cast<real_t>(path[j].x), static_cast<real_t>(path[j].y)));
} }
polypaths.push_back(polypath); polypaths.set(i, polypath);
} }
return polypaths; return polypaths;
} }
@ -353,14 +355,16 @@ Vector<Vector<Point2>> Geometry2D::_polypath_offset(const Vector<Point2> &p_poly
// to attain the desired precision. // to attain the desired precision.
Vector<Vector<Point2>> polypaths; Vector<Vector<Point2>> polypaths;
polypaths.resize(paths.size());
for (PathsD::size_type i = 0; i < paths.size(); ++i) { for (PathsD::size_type i = 0; i < paths.size(); ++i) {
const PathD &path = paths[i]; const PathD &path = paths[i];
Vector<Vector2> polypath2; Vector<Vector2> polypath2;
polypath2.resize(path.size());
for (PathsD::size_type j = 0; j < path.size(); ++j) { for (PathsD::size_type j = 0; j < path.size(); ++j) {
polypath2.push_back(Point2(static_cast<real_t>(path[j].x), static_cast<real_t>(path[j].y))); polypath2.set(j, Point2(static_cast<real_t>(path[j].x), static_cast<real_t>(path[j].y)));
} }
polypaths.push_back(polypath2); polypaths.set(i, polypath2);
} }
return polypaths; return polypaths;
} }