fix last commit

This commit is contained in:
muddmaker
2014-10-02 18:22:54 -07:00
parent 238656ecc1
commit ccd856255d
2 changed files with 22 additions and 19 deletions
+9 -6
View File
@@ -189,9 +189,14 @@ vector<Vector> BezierCurve::renderSegment(double start, double end, size_t accur
throw Exception("Invalid Bezier curve: Not enough control points.");
vector<Vector> vertices(controlPoints);
subdivide(vertices, accuracy);
if (start > 0)
if (start == end)
{
vertices.clear();
}
else if (start < end)
{
if (start > 0 && start < 1)
{
Vector startPoint = evaluate(start);
for (size_t i = 0; i < vertices.size(); ++i)
{
if ((double)i / vertices.size() > start)
@@ -200,11 +205,9 @@ vector<Vector> BezierCurve::renderSegment(double start, double end, size_t accur
break;
}
}
vertices.insert(vertices.begin(), startPoint);
}
if (end < 1)
if (end < 1 && end > 0)
{
Vector endPoint = evaluate(end);
for (size_t i = vertices.size(); i > 0; --i)
{
if ((double)(i - 1) / vertices.size() < end)
@@ -213,7 +216,7 @@ vector<Vector> BezierCurve::renderSegment(double start, double end, size_t accur
break;
}
}
vertices.insert(vertices.end(), endPoint);
}
}
return vertices;
}
+1 -1
View File
@@ -179,7 +179,7 @@ int w_BezierCurve_renderSegment(lua_State *L)
for (size_t i = 0; i < points.size(); ++i)
{
lua_pushnumber(L, points[i].x);
lua_rawseti(L, -2, 2*i+2);
lua_rawseti(L, -2, 2*i+1);
lua_pushnumber(L, points[i].y);
lua_rawseti(L, -2, 2*i+2);
}