Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTamito Kajiyama <rd6t-kjym@asahi-net.or.jp>2013-02-04 04:23:37 +0400
committerTamito Kajiyama <rd6t-kjym@asahi-net.or.jp>2013-02-04 04:23:37 +0400
commit3c064f4553e4be988fe4fcec450b59b935fa3c80 (patch)
tree1c3d16fa18865bac305ea1bb0b365308bba26b2d /source/blender/freestyle/intern/python/BPy_Convert.cpp
parent7f8a17118bef19016e916c5c9775871ccb9e22db (diff)
* Added a generic helper function for parsing PyObject arguments as N-dimensional float array.
* Local helpers were replaced with the generic one. This also fixed a memory leak in the setter function StrokeVertex_point_set. * Made minor code style changes.
Diffstat (limited to 'source/blender/freestyle/intern/python/BPy_Convert.cpp')
-rw-r--r--source/blender/freestyle/intern/python/BPy_Convert.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/source/blender/freestyle/intern/python/BPy_Convert.cpp b/source/blender/freestyle/intern/python/BPy_Convert.cpp
index 04e778a0f80..59cee23409f 100644
--- a/source/blender/freestyle/intern/python/BPy_Convert.cpp
+++ b/source/blender/freestyle/intern/python/BPy_Convert.cpp
@@ -601,6 +601,25 @@ Vec3r * Vec3r_ptr_from_PyTuple( PyObject* obj ) {
return new Vec3r(x,y,z);
}
+// helper for argument parsing
+
+int float_array_from_PyObject(PyObject *obj, float *v, int n)
+{
+ if (VectorObject_Check(obj) && ((VectorObject *)obj)->size == n) {
+ for (int i = 0; i < n; i++)
+ v[i] = ((VectorObject *)obj)->vec[i];
+ } else if (PyList_Check(obj) && PyList_Size(obj) == n) {
+ for (int i = 0; i < n; i++)
+ v[i] = PyFloat_AsDouble(PyList_GetItem(obj, i));
+ } else if (PyTuple_Check(obj) && PyTuple_Size(obj) == n) {
+ for (int i = 0; i < n; i++)
+ v[i] = PyFloat_AsDouble(PyTuple_GetItem(obj, i));
+ } else {
+ return 0;
+ }
+ return 1;
+}
+
///////////////////////////////////////////////////////////////////////////////////////////