Browse Source

Added BezierCurve:getControlPointCount (resolves issue #759)

Alex Szpakowski 12 years ago
parent
commit
e2eb99a6af

+ 8 - 0
src/modules/math/BezierCurve.h

@@ -73,6 +73,14 @@ public:
 	 **/
 	 **/
 	void insertControlPoint(const Vector &point, int pos = -1);
 	void insertControlPoint(const Vector &point, int pos = -1);
 
 
+	/**
+	 * @returns Number of control points.
+	 **/
+	size_t getControlPointCount() const
+	{
+		return controlPoints.size();
+	}
+
 	/**
 	/**
 	 * Move the curve.
 	 * Move the curve.
 	 * @param t Translation vector.
 	 * @param t Translation vector.

+ 8 - 0
src/modules/math/wrap_BezierCurve.cpp

@@ -93,6 +93,13 @@ int w_BezierCurve_insertControlPoint(lua_State *L)
 	return 0;
 	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)
 int w_BezierCurve_translate(lua_State *L)
 {
 {
 	BezierCurve *curve = luax_checkbeziercurve(L, 1);
 	BezierCurve *curve = luax_checkbeziercurve(L, 1);
@@ -164,6 +171,7 @@ static const luaL_Reg functions[] =
 	{"getControlPoint", w_BezierCurve_getControlPoint},
 	{"getControlPoint", w_BezierCurve_getControlPoint},
 	{"setControlPoint", w_BezierCurve_setControlPoint},
 	{"setControlPoint", w_BezierCurve_setControlPoint},
 	{"insertControlPoint", w_BezierCurve_insertControlPoint},
 	{"insertControlPoint", w_BezierCurve_insertControlPoint},
+	{"getControlPointCount", w_BezierCurve_getControlPointCount},
 	{"translate", w_BezierCurve_translate},
 	{"translate", w_BezierCurve_translate},
 	{"rotate", w_BezierCurve_rotate},
 	{"rotate", w_BezierCurve_rotate},
 	{"scale", w_BezierCurve_scale},
 	{"scale", w_BezierCurve_scale},

+ 1 - 0
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_getControlPoint(lua_State *L);
 int w_BezierCurve_setControlPoint(lua_State *L);
 int w_BezierCurve_setControlPoint(lua_State *L);
 int w_BezierCurve_insertControlPoint(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_translate(lua_State *L);
 int w_BezierCurve_rotate(lua_State *L);
 int w_BezierCurve_rotate(lua_State *L);
 int w_BezierCurve_scale(lua_State *L);
 int w_BezierCurve_scale(lua_State *L);