Sketcher: Control Polygon incomplete for periodic BSplines

==========================================================

Bug fix:
https://forum.freecadweb.org/viewtopic.php?p=565127#p565127

Incorrect indexing of lineset fixed
This commit is contained in:
Abdullah Tahiri
2022-02-05 05:10:48 +01:00
parent d9f8516c4a
commit 7aefd2366f

View File

@@ -114,10 +114,14 @@ void EditModeInformationOverlayCoinConverter::calculate(const Part::Geometry * g
controlPolygon.coordinates.clear();
controlPolygon.indices.clear();
size_t nvertices;
if (spline->isPeriodic())
controlPolygon.coordinates.reserve(poles.size()+1);
nvertices = poles.size()+1;
else
controlPolygon.coordinates.reserve(poles.size());
nvertices = poles.size();
controlPolygon.coordinates.reserve(nvertices);
for (auto & v : poles)
controlPolygon.coordinates.emplace_back(v);
@@ -125,7 +129,7 @@ void EditModeInformationOverlayCoinConverter::calculate(const Part::Geometry * g
if (spline->isPeriodic())
controlPolygon.coordinates.emplace_back(poles[0]);
controlPolygon.indices.push_back(poles.size()); // single continuous polygon starting at index 0
controlPolygon.indices.push_back(nvertices); // single continuous polygon starting at index 0
}
else if constexpr (calculation == CalculationType::BSplineCurvatureComb ) {