Fix issue #724: Bezier curve rendering/eval crashes with empty curves.

This commit is contained in:
vrld
2013-08-29 08:31:58 +02:00
parent eb052d99e8
commit 6b51c5aadc
2 changed files with 13 additions and 1 deletions
+4
View File
@@ -162,6 +162,8 @@ Vector BezierCurve::eval(double t) const
{
if (t < 0 || t > 1)
throw Exception("Invalid evaluation parameter: must be between 0 and 1");
if (controlPoints.size() < 2)
throw Exception("Invalid Bezier curve: Not enough control points.");
// de casteljau
vector<Vector> points(controlPoints);
@@ -174,6 +176,8 @@ Vector BezierCurve::eval(double t) const
vector<Vector> BezierCurve::render(size_t accuracy) const
{
if (controlPoints.size() < 2)
throw Exception("Invalid Bezier curve: Not enough control points.");
vector<Vector> vertices(controlPoints);
subdivide(vertices, accuracy);
return vertices;