-
Notifications
You must be signed in to change notification settings - Fork 524
Description
I might have been staring at my IDE for too long, but aren't both 'else if' statements essentially the same thing and the second one is never triggered?
vector<Vector2> BezierCurve::renderSegment(double start, double end, int accuracy) const
{
if (controlPoints.size() < 2)
throw Exception("Invalid Bezier curve: Not enough control points.");
vector<Vector2> vertices(controlPoints);
subdivide(vertices, accuracy);
if (start == end)
{
vertices.clear();
}
else if (start < end)
{
size_t start_idx = size_t(start * vertices.size());
size_t end_idx = size_t(end * vertices.size() + 0.5);
return std::vector<Vector2>(vertices.begin() + start_idx, vertices.begin() + end_idx);
}
else if (end > start)
{
size_t start_idx = size_t(end * vertices.size() + 0.5);
size_t end_idx = size_t(start * vertices.size());
return std::vector<Vector2>(vertices.begin() + start_idx, vertices.begin() + end_idx);
}
return vertices;
}ancientstraits and ej-sanmartin
Metadata
Metadata
Assignees
Labels
No labels