PyRNA API support for matrix types as Mathutils matrix (with callbacks) rather then...
authorCampbell Barton <ideasman42@gmail.com>
Tue, 23 Jun 2009 13:34:45 +0000 (13:34 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Tue, 23 Jun 2009 13:34:45 +0000 (13:34 +0000)
commiteb22a7b2102cceb432e3545cd342956e92873a49
treec87ad1de81cc216403568b44f289ff9af3a2ae9e
parentbf74f105bc5ec98980fa087347203244750fb669
PyRNA API support for matrix types as Mathutils matrix (with callbacks) rather then a generic rna sequence of floats.

Any 3x3 or 4x4 rna matrix will automatically be returned as a Mathutils matrix.
This makes useful stuff like multiplying a vector location by an object matrix possible.
 ob = bpy.data.scenes[0].objects[0]
 print (ob.data.verts[0].co * ob.matrix)

Also added mathutils matrix types to the BGE GameObject.localOrientation, worldOrientation

* MT_Matrix3x3 added getValue3x3 and setValue3x3, assumed a 4x3 float array.
* KX_GameObject.cpp convenience functions NodeSetGlobalOrientation, NodeGetLocalOrientation, NodeGetLocalScaling, NodeGetLocalPosition.
* 2.5 python api now initializes modules BGL, Mathutils and Geometry
* modules py3 PyModuleDef's use PyModuleDef_HEAD_INIT, rather then {}, was making msvc fail to build.
* added macros for Vector_ReadCallback, Vector_WriteCallback etc. to check if the callback pointer is set before calling the function.
14 files changed:
intern/moto/include/MT_Matrix3x3.h
source/blender/python/generic/BGL.c
source/blender/python/generic/Geometry.c
source/blender/python/generic/Mathutils.c
source/blender/python/generic/Mathutils.h
source/blender/python/generic/matrix.c
source/blender/python/generic/matrix.h
source/blender/python/generic/quat.c
source/blender/python/generic/vector.c
source/blender/python/generic/vector.h
source/blender/python/intern/bpy_interface.c
source/blender/python/intern/bpy_rna.c
source/gameengine/Ketsji/KX_GameObject.cpp
source/gameengine/Ketsji/KX_GameObject.h