I've left the old code commented out for now hough - do we still want to
be able to edit all rotation types as eulers in the transform properties buttons?
Seems a bit odd to me, what do animators think? If so, maybe we need some
ui-level conversion options in the RNA buttons code...
Converted the Object transform properties to use rna/rna buttons. This has the advantage of not only displaying/editing units, but also RMB menu, keyframing, drivers, etc too. Part of this was to convert 'Dimensions' to an rna property, converting to and from scale. This also allows you to set the object's dimensions via fcurves or python, but note that it's driving the object scale setting internally so if you animate both dimension and scale at the same time one will override the other (i don't expect many people to attempt this).
- more detailed exceptions (always give file:line incase the python exception doesnt)
- fix some errors in the edit docs
editing docs still fails, need to figure out why.
* Smooth: vert-face map is now only created when this tool is used, would be
best to also avoid using it here to avoid a sudden increase in memory, but
is not trivial.
* Grab: now no longer uses active verts list and loops over nodes like other
tools.
* Layer: uses original coordinates from undo now to save memory when not
using persistent layer.
* Anchored: this option works again now, though is still quite slow as it
loops over all verts/faces.
Smooth, layer tools and the anchored option could still be improved to use
less memory and/or work faster by only doing things per node.
that it is able to store changes in the mesh more compact than global undo.
It doesn't integrate well with multires yet, will tackle that when I start
looking into multires, for now still focusing on sculpt on regular meshes.
The weak point now is the thread-safe atomic access to normals from multiple
threads, did not seem to be a bottleneck in my tests but I don't really trust
it to be fast.
- made all exporters default to the blend filename with the extension replaced
- MDD's poll function now checks for an active mesh
- multiline docstrings are written as multiline docs when generating epydocs
ob.driver_add("location")
ob.driver_add("location", 0) # x location only
Also changed ANIM_add_driver so an index of -1 adds drivers to every item in the array
made this default for python so you can do...
pose_bone.keyframe_insert("location")
rather then
pose_bone.keyframe_insert("location", 0)
pose_bone.keyframe_insert("location", 1)
pose_bone.keyframe_insert("location", 2)
Recoded the way that Spline-IK computes the x+z axes of the bones so that flipping artifacts are minimised, and the rotation of individual bones can be used to affect the results of the solution, as per requests from Cessen.
The bone matrices are now computed normally, and then made to conform to the orientation + scaling imposed by the splines, using the Damped-Track method. Previously, the axes of the bones were calculated without regarding the prior orientation of other bones in the chain, which lead to "z-twists".
Notes for further investigation:
- There appears to be some shearing that gets introduced now. Unforunately, I can't seem to isolate the cause of this, but I hope it's not going to become too much of a problem in general.
- Maybe inverse corrections for rotation will now be necessary when using transform tools?
- split into 2 operators: object.make_links_data() & object.make_links_scene since they are quite different.
- added reusable functions RNA_group_itemf & RNA_scene_itemf which can be used for any operator that takes ID data (easy to add more types Mesh, Text etc)
- DummyRNA_NULL_items for dynamic items so each operator need not define its own empty enum.
Non-ID pointers in DNA can only point to data from own ID block, so
now instead it uses an index into the particle system list, but still
exposed as a pointer through RNA.
by Adrian Winchell (slightly modified)
This adds a center circle (like translation and resize) to the rotation manipulator that triggers trackball rotation.
- use OBJECT_OT_mode_set rather then OBJECT_OT_*_toggle, better for using report output for script input. OBJECT_OT_posemode_toggle and OBJECT_OT_editmode_toggle are called by OBJECT_OT_mode_set.