fixed some other UI logic in the python menu script
Added an option to use a vertex group for a reduction weight map to force reducing some areas more then others.
Mesh epydocs activeGroups can be None as well as string.
Takes a list of polylines and returns a list of face index triplets.
Added this so using mesh.fill() could be avoided since it requires making an object, linking to the scene and cycling editmode for every NGon imported.
Since this is so close to release, It might be good if ken, willian or stivs takes a look at the function to make sure its ok. - Ran 100's of times for importing lightwave models but would be good to doublecheck.
Blender.sys.splitext() raises an error if the path is longer then 80 chars. seems a bit short, noted this anyhow end added an example.
(hope its okay to do small doc corrections as I notice them.)
A problem with the current flag seting in Mesh is that Mesh needs to know of all possible flags or setting a flag can raise an error from the faces own unrecognezed flag.
also stopped the active face flag raising an error so pythoners can do face1.flag |= face2.flag without checking for active face flags. if the flag is a part of the arg its removed quietly.
Checked Mesh flags, face modes and edge flags, should all be ok now.
Window.py added note about the view offset being flipped.
editview.c Fly mode timed redraws so motion is the same speed erespective of scene complexity.
documented a workaround for python drawinf pixel aligned text in teh 2d view
Added links from Draw.Test to the OpenGL functions that set the location and color.
Moved .up() and .down() methods from Constraint API to Constraint sequence
API (also renamed them to moveUp() and moveDown() ). Again, methods which
modify the "parent" structure didn't seem consistent.
Moved .up() and .down() methods from Modifier API to Modifier sequence
API (also renamed them to moveUp() and moveDown() ). Locating methods
which modify the "parent" structure in objects didn't seem consistent.
Added patch by Matt Ebb, that enhances the sequencer GUI in several ways:
- It looks a lot better
- Strip colours are themeable.
- The drawing code is more readable.
- The background of the timeline makes now distinguishing the channels easier
by alternating between different shades of gray.
- Handle-scaling is clamped to min and max-values, making it possible to
grab strips at large zooming levels more easily.
- Preview-images can be panned by dragging it with the middle mouse button.
Home-Key resets the position.
- Since some people can't grab the meaning of "C 0", it is renamed to "Chan: 0"
- Effect strips have slightly different colors to distinguish them better.
Additionally:
- fixed an off by one error in Matt's patch
- Scene-rendering saves CFRA to avoid jumping current-scene on scrub
(might be academic fix, since most likely it only happens if you add
the sequencer-scene to the timeline... But nevertheless it bugs you on
testing the GUI ;-)
addProperty() and removeProperty() were each defined twice, because each
could be called with different inputs. Hence only the second definition
was showing up in the documentation. Both descriptions are merged now.
Second pass at sceneRender.c / Scene.Render API clean-up. Most of the remaining clean-up needs to wait for the API refactor, since the "good" attribute names are already used by methods.
- 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)
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.
- 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
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).