diff --git a/src/modules/math/BezierCurve.h b/src/modules/math/BezierCurve.h index 4f176248e..dbd28f434 100644 --- a/src/modules/math/BezierCurve.h +++ b/src/modules/math/BezierCurve.h @@ -73,6 +73,14 @@ public: **/ void insertControlPoint(const Vector &point, int pos = -1); + /** + * @returns Number of control points. + **/ + size_t getControlPointCount() const + { + return controlPoints.size(); + } + /** * Move the curve. * @param t Translation vector. diff --git a/src/modules/math/wrap_BezierCurve.cpp b/src/modules/math/wrap_BezierCurve.cpp index 3ced090cd..374a43248 100644 --- a/src/modules/math/wrap_BezierCurve.cpp +++ b/src/modules/math/wrap_BezierCurve.cpp @@ -93,6 +93,13 @@ int w_BezierCurve_insertControlPoint(lua_State *L) return 0; } +int w_BezierCurve_getControlPointCount(lua_State *L) +{ + BezierCurve *curve = luax_checkbeziercurve(L, 1); + lua_pushinteger(L, curve->getControlPointCount()); + return 1; +} + int w_BezierCurve_translate(lua_State *L) { BezierCurve *curve = luax_checkbeziercurve(L, 1); @@ -164,6 +171,7 @@ static const luaL_Reg functions[] = {"getControlPoint", w_BezierCurve_getControlPoint}, {"setControlPoint", w_BezierCurve_setControlPoint}, {"insertControlPoint", w_BezierCurve_insertControlPoint}, + {"getControlPointCount", w_BezierCurve_getControlPointCount}, {"translate", w_BezierCurve_translate}, {"rotate", w_BezierCurve_rotate}, {"scale", w_BezierCurve_scale}, diff --git a/src/modules/math/wrap_BezierCurve.h b/src/modules/math/wrap_BezierCurve.h index bbd688c5d..a8b9ceb5d 100644 --- a/src/modules/math/wrap_BezierCurve.h +++ b/src/modules/math/wrap_BezierCurve.h @@ -36,6 +36,7 @@ int w_BezierCurve_getDerivative(lua_State *L); int w_BezierCurve_getControlPoint(lua_State *L); int w_BezierCurve_setControlPoint(lua_State *L); int w_BezierCurve_insertControlPoint(lua_State *L); +int w_BezierCurve_getControlPointCount(lua_State *L); int w_BezierCurve_translate(lua_State *L); int w_BezierCurve_rotate(lua_State *L); int w_BezierCurve_scale(lua_State *L);