Blender Git Commit Log

Git Commits -> Revision 706a4c2

Revision 706a4c2 by Arystanbek Dyussenov (master)
August 25, 2009, 17:06 (GMT)
Implemented dynamic and multidimensional array support in RNA.

Example code: http://www.pasteall.org/7332/c.
New API functions: http://www.pasteall.org/7330/c.

Maximum number of dimensions is currently limited to 3, but can be increased arbitrarily if needed.

What this means for ID property access:

* MeshFace.verts - dynamic array, size 3 or 4 depending on MFace.v4
* MeshTextureFace.uv - dynamic, 2-dimensional array, size depends on MFace.v4
* Object.matrix - 2-dimensional array

What this means for functions:

* more intuitive API possibility, for example:
Mesh.add_vertices([(x, y, z), (x, y, z), ...])
Mesh.add_faces([(1, 2, 3), (4, 5, 6), ...])

Python part is not complete yet, e.g. it is possible to:

MeshFace.verts = (1, 2, 3) # even if Mesh.verts is (1, 2, 3, 4) and vice-versa
MeshTextureFace.uv = [(0.0, 0.0)] * 4 # only if a corresponding MFace is a quad

but the following won't work:

MeshTextureFace.uv[3] = (0.0, 0.0) # setting uv[3] modifies MTFace.uv[1][0] instead of MTFace.uv[3]

Commit Details:

Full Hash: 706a4c22b54ede250fbdb2c2bd772c63cdbf7d09
SVN Revision: 22772
Parent Commit: 7288bac
Lines Changed: +513, -164

1 Added Path:

/source/blender/python/intern/bpy_array.c (+235, -0) (View)

23 Modified Paths:

/source/blender/blenkernel/intern/anim_sys.c (+6, -6) (Diff)
/source/blender/blenkernel/intern/fcurve.c (+3, -3) (Diff)
/source/blender/editors/animation/anim_ipo_utils.c (+1, -1) (Diff)
/source/blender/editors/animation/drivers.c (+3, -3) (Diff)
/source/blender/editors/animation/keyframing.c (+5, -5) (Diff)
/source/blender/editors/animation/keyingsets.c (+2, -2) (Diff)
/source/blender/editors/interface/interface.c (+9, -9) (Diff)
/source/blender/editors/interface/interface_anim.c (+1, -1) (Diff)
/source/blender/editors/interface/interface_layout.c (+5, -5) (Diff)
/source/blender/editors/interface/interface_templates.c (+1, -1) (Diff)
/source/blender/editors/interface/interface_utils.c (+2, -2) (Diff)
/source/blender/editors/space_outliner/outliner.c (+2, -2) (Diff)
/source/blender/makesrna/intern/makesrna.c (+8, -0) (Diff)
/source/blender/makesrna/intern/rna_access.c (+35, -10) (Diff)
/source/blender/makesrna/intern/rna_define.c (+44, -2) (Diff)
/source/blender/makesrna/intern/rna_internal_types.h (+11, -0) (Diff)
/source/blender/makesrna/intern/rna_mesh.c (+97, -0) (Diff)
/source/blender/makesrna/intern/rna_object.c (+3, -1) (Diff)
/source/blender/makesrna/RNA_access.h (+3, -1) (Diff)
/source/blender/makesrna/RNA_define.h (+7, -1) (Diff)
/source/blender/makesrna/RNA_types.h (+2, -1) (Diff)
/source/blender/python/intern/bpy_rna.c (+23, -108) (Diff)
/source/blender/python/intern/bpy_rna.h (+5, -0) (Diff)
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021