Added new method Stroke.remove_all_vertices() for removing all vertices from the stroke.

Patch from flokkievids in the BA Freestyle thread, thanks!
This commit is contained in:
2013-05-21 22:59:44 +00:00
parent 07ee0e6f7d
commit 6fd12c5310
3 changed files with 25 additions and 0 deletions

View File

@@ -218,6 +218,17 @@ static PyObject *Stroke_remove_vertex( BPy_Stroke *self, PyObject *args, PyObjec
Py_RETURN_NONE; Py_RETURN_NONE;
} }
PyDoc_STRVAR(Stroke_remove_all_vertices_doc,
".. method:: remove_all_vertices()\n"
"\n"
" Removes all vertices from the Stroke.");
static PyObject *Stroke_remove_all_vertices(BPy_Stroke *self)
{
self->s->RemoveAllVertices();
Py_RETURN_NONE;
}
PyDoc_STRVAR(Stroke_update_length_doc, PyDoc_STRVAR(Stroke_update_length_doc,
".. method:: update_length()\n" ".. method:: update_length()\n"
"\n" "\n"
@@ -285,6 +296,7 @@ static PyMethodDef BPy_Stroke_methods[] = {
{"compute_sampling", (PyCFunction)Stroke_compute_sampling, METH_VARARGS | METH_KEYWORDS, {"compute_sampling", (PyCFunction)Stroke_compute_sampling, METH_VARARGS | METH_KEYWORDS,
Stroke_compute_sampling_doc}, Stroke_compute_sampling_doc},
{"resample", (PyCFunction)Stroke_resample, METH_VARARGS | METH_KEYWORDS, Stroke_resample_doc}, {"resample", (PyCFunction)Stroke_resample, METH_VARARGS | METH_KEYWORDS, Stroke_resample_doc},
{"remove_all_vertices", (PyCFunction)Stroke_remove_all_vertices, METH_NOARGS, Stroke_remove_all_vertices_doc},
{"remove_vertex", (PyCFunction)Stroke_remove_vertex, METH_VARARGS | METH_KEYWORDS, Stroke_remove_vertex_doc}, {"remove_vertex", (PyCFunction)Stroke_remove_vertex, METH_VARARGS | METH_KEYWORDS, Stroke_remove_vertex_doc},
{"insert_vertex", (PyCFunction)Stroke_insert_vertex, METH_VARARGS | METH_KEYWORDS, Stroke_insert_vertex_doc}, {"insert_vertex", (PyCFunction)Stroke_insert_vertex, METH_VARARGS | METH_KEYWORDS, Stroke_insert_vertex_doc},
{"update_length", (PyCFunction)Stroke_update_length, METH_NOARGS, Stroke_update_length_doc}, {"update_length", (PyCFunction)Stroke_update_length, METH_NOARGS, Stroke_update_length_doc},

View File

@@ -644,6 +644,15 @@ void Stroke::Resample(float iSampling)
} }
} }
void Stroke::RemoveAllVertices()
{
vertex_container::iterator it = _Vertices.begin(), itend = _Vertices.end();
for (; it != itend; ++it)
delete (*it);
_Vertices.clear();
UpdateLength();
}
void Stroke::RemoveVertex(StrokeVertex *iVertex) void Stroke::RemoveVertex(StrokeVertex *iVertex)
{ {
vertex_container::iterator it = _Vertices.begin(), itend = _Vertices.end(); vertex_container::iterator it = _Vertices.begin(), itend = _Vertices.end();

View File

@@ -589,6 +589,10 @@ public:
*/ */
void Resample(float iSampling); void Resample(float iSampling);
/*! Removes all vertices from the Stroke.
*/
void RemoveAllVertices();
/*! Removes the stroke vertex iVertex /*! Removes the stroke vertex iVertex
* from the stroke. * from the stroke.
* The length and curvilinear abscissa are updated * The length and curvilinear abscissa are updated