Add BezierCurve:getSegment(t1, t2)

Returns a BezierCurve that corresponds to the curve-segment between t1 and t2
on the original curve.
This commit is contained in:
vrld
2015-03-22 19:22:18 +01:00
parent f7cb16be87
commit f32d770cf6
4 changed files with 64 additions and 0 deletions
+15
View File
@@ -157,6 +157,20 @@ int w_BezierCurve_evaluate(lua_State *L)
}
int w_BezierCurve_getSegment(lua_State *L)
{
BezierCurve *curve = luax_checkbeziercurve(L, 1);
double t1 = luaL_checknumber(L, 2);
double t2 = luaL_checknumber(L, 3);
BezierCurve *segment;
luax_catchexcept(L, [&](){ segment = curve->getSegment(t1, t2); });
luax_pushtype(L, MATH_BEZIER_CURVE_ID, segment);
segment->release();
return 1;
}
int w_BezierCurve_render(lua_State *L)
{
BezierCurve *curve = luax_checkbeziercurve(L, 1);
@@ -212,6 +226,7 @@ static const luaL_Reg functions[] =
{"rotate", w_BezierCurve_rotate},
{"scale", w_BezierCurve_scale},
{"evaluate", w_BezierCurve_evaluate},
{"getSegment", w_BezierCurve_getSegment},
{"render", w_BezierCurve_render},
{"renderSegment", w_BezierCurve_renderSegment},
{ 0, 0 }