[ #4228 ] Blender.Image.Load(filename) loads only on the first loading
- Image.Load() will now reload the image buffer when a image of the same name is loaded again
- small textual change in render code
- save_rendered_image_cb_real has a popup window embedded in it that prevents automation through python as a result python scripts would get a popup which is ignorned by the script
- modified so python scripts overwrite the image by default
- added documentation to Render - saveRenderedImage has an option to save the zbuffer along with the image
(off by default)
- fixed a really annoying runtime error of uninitialized data being passed to a method in pipeline.c during a render
Fulfilling a very old feature request: a new Mesh Primitives module is
introduced, which gives script writers access to the Blender mesh datablocks
created from the "Add->Mesh" menu. You can now do this:
from Blender import *
me = Mesh.Primitives.UVsphere(10,20,3) # 10 segments, 20 rings, diameter 3
ob = Object.New('Mesh','mySphere')
ob.link(me)
sc = Scene.GetCurrent()
sc.link(ob)
- added a method Action.getFrameNumbers()
returns the frames at which keyframes were inserted for this action
example usage:
import Blender
myobj = Blender.Object.Get('Armature')
myaction = myobj.getAction()
frames = myaction.getFrameNumbers()
for frame in frames:
print 'bones at frame %d' % frame
myobj.evaluatePose(frame)
pose = myobj.getPose()
for bone in pose.bones.values():
print bone.head, bone.tail
Something to try making import/export script writers happy; Mesh.New() will
not create a new Blender mesh datablock unless the mesh is linked to an
object.
(although it did this one char too 'friendly'), but still happily copying
the string even if it was too long.
Pythoneerz, please check if this is the correct fix :)
- the new methods will advance an object's pose correctly to any frame
Example:
myobj = Blender.Object.Get('obert')
for x in range(10):
myobj.evaluatePose(x)
pose = myobj.getPose()
print 'Data at Frame %d' % x
for bone in pose.bones.values():
print bone.head, bone.tail
print bone.head, bone.tail
[ #4143 ] Methods for reading bone movement limits
Submitted By:
Aron Cristian (criller)
Gives the ability to return/set the limitations on a posebone when that bone is part of an IK chain.
Make me.faces.sel and me.edges.sel behave like EM_select_face() and
EM_select_edge() in source/blender/src/editmesh_lib.c.
Script users should note that if they change ANY of the selection states
(vertex, edge, face) and then call a mesh "tool" method (like me.remDoubles)
that the selection states of the mesh MAY change, since these tools use the
edit mode (which updates select states).
* use CONSTRAINT_LOCAL instead of SELECT in "Copy Rotate" constraint
* remove "LOCAL" key for now from "Copy Size" constraint; not supported
right now in Blender UI
Added NULL constraint (and fixed bug that didn't allow appending FLOOR
constraint), and added support for Constraint.Settings.LOCAL key support in
COPYLOC, COPYROT and COPYSIZE constraints when target object is an armature.
renamed meshPrettyNormals to meshCalcNormals, and it now writes to normals rather then returning a list of vecs.
updated vertexpaint_selfshadow_ao to be a bit more efficient and make use of the above changes.
New Constraint API. Constraints are accessible through a "constraints"
attribute in poses and objects. Would be REALLY NICE for armature users to
pound on this code.
- Found several places, where people explicitly casted the frame number
to short.
- Fixed the crash in BPY_interface by adding an empty line (to make it
recompile everywhere, make clean doesn't help...)
For the build system maintainers:
Problem was: The change in makesdna changed the position of the
scriptlink structure. BPY_interface.c somehow didn't get recompiled
(not even after a make clean!!!) which triggered crashes on adding
scriptlinks.
Made the frame boost from short to int (30000 -> 300000 frames) complete
by walking through the source and finally changing all frame-variables
to ints.
This should finally fix the framecounter warp around seen in some buttons.
If you step on any further problems that may arise starting from frame
32768 please just give me a hint and I'll fix it.
(Sorry about that, didn't know enough about Blender, when I did it the first
time...)
Also needed to seperate
view3d_paintmenu
into
view3d_vpaintmenu
view3d_tpaintmenu
view3d_wpaintmenu
The view3d_paintmenu and do_view3d_paintmenu were getting messy and had a lot of if's in it.