|
@@ -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)
|
|
int w_BezierCurve_render(lua_State *L)
|
|
{
|
|
{
|
|
BezierCurve *curve = luax_checkbeziercurve(L, 1);
|
|
BezierCurve *curve = luax_checkbeziercurve(L, 1);
|
|
@@ -212,6 +226,7 @@ static const luaL_Reg functions[] =
|
|
{"rotate", w_BezierCurve_rotate},
|
|
{"rotate", w_BezierCurve_rotate},
|
|
{"scale", w_BezierCurve_scale},
|
|
{"scale", w_BezierCurve_scale},
|
|
{"evaluate", w_BezierCurve_evaluate},
|
|
{"evaluate", w_BezierCurve_evaluate},
|
|
|
|
+ {"getSegment", w_BezierCurve_getSegment},
|
|
{"render", w_BezierCurve_render},
|
|
{"render", w_BezierCurve_render},
|
|
{"renderSegment", w_BezierCurve_renderSegment},
|
|
{"renderSegment", w_BezierCurve_renderSegment},
|
|
{ 0, 0 }
|
|
{ 0, 0 }
|