in crash.
This commit fixes the crash (missing null check for nu==NULL).
However, there is still a problem here with Curve Ctrl-Click not
behaving the same as Mesh EditMode Ctrl-Click, which adds a new vert
no matter what (i.e. no previous selection required). Then again,
that's a separate "todo" issue, so we can close this report now :)
I still have to learn more of the recent changes in code :)
Didn't know the handle type options became a menu for Curve edit mode.
Providing much-used tools non-modal (direct) really should have
preference. Pull down is not very accessible here though, will
check on it later. :)
This restores H, Shift+H, V and alt+H for handle setting.
when starting playback after undo-ing topology changes
The simpliest way was to change data at which undoCurve_to_editCurve and
editCurve_to_undoCurve works from curve to object. Maybe it's not very
cool, but still better than moving curve animation handlers outside of
editcurve module.
===================
Update fcurves RNA pathes after making changes to curve topology, so
animation will no longer lost after edit and wouldn't lead to crash.
Will be very useful for RotoBezier addon.
Also NodeKeyIndex renamed to CVNodeIndex due to node is an entity from
another module and better not used in others.
only tags the ID and does the actual flush/update delayed, before the next
redraw. For objects the update was already delayed, just flushing wasn't
yet.
This should help performance in python and animation editors, by making
calls to RNA property update quicker. Still need to add calls in a few
places where this was previously avoided due to bad performance.
- pep8 script was giving an error on non utf8 scons source files.
- use PyList_SET_ITEM macro when list type is ensured.
- all mathutils types use subtypes to create new types when available.
- use defines MAT3_UNITY, MAT4_UNITY to initialize unit matrices.
On entering editmode Curve/Nurbs, the undo buffer was not
correct; storing old Curve/Nurbs object name. This caused
for example the Operator tool redo options to fail; it added
another curve on first use (with user pref "enter editmode).
Solved with adding good undo push + nicer code for curve and
nurbs naming.
With some own changes:
- Select pick moved to invoke()
- Used editsurfcurve_region_view3d as poll function for this operator
due to ogl dependency
Thanks to Elia Sarti (vekoon)!
Also use const char in many other parts of blenders code.
Currently this gives warnings for setting operator id, label and description since these are an exception and allocated beforehand.
After discussions with Campbell regarding #24336 and #24309, we've decided to make this property for curves to only get set when an F-Curve explicitly animates it.
As a consequence...
- ALL OLD FILES using follow-path constraints that depended on this changed behaviour will currently need manual patching to add an appropriate F-Curve
- Ctrl-P (Parenting to Curves -> Follow Path option) will now automatically create such F-Curves mimicking the old behaviour so that creating camera-following-path setups still works smoothly.
- Directly adding a Follow Path constraint bypasses this, so you'll need to manually add such F-Curves if you need them.
The main problem with the old approach was that there were many cases in which curve data could get added but the ctime would be incorrect until a frame change (i.e. on render) flushed this.
committed r32598 to fix [#24309] Reloading file with incorrect path location.
Setting the curves ctime when updating the object data overrode the animated value.
For now just set the ctime on newly added curves with will work as the user expects in most cases.
This is weak design IMHO because the ctime value can be set to anything but is reset on changing frames even if its not keyed.
With curves created via python or linked in this can still result in a bad ctime value.
Nurb's material number used to be clamped to [0;-1] for case object hasn't got
materials. Forced to keep material number on zero if object hasn't got any materials.
http://www.vrchannel.de/blender/cylinder_rename.png
Mesh Tube > Mesh Cylinder
NURBS Tube > NURBS Cylinder
Metaball Cylinder > Metaball Capsule
I know that naming is something not everyone agrees on, but these terms look geometrically correct.
patch [#23317] Changed some operators' RNA to accept lengths
by Lorenzo Tozzi (oni_niubbo)
with the minor change to use XYZ subtype rather then LENGTH.
- Fixed incorrect working of "from mix" insert keyblock operator property
shapekey coordinated are applying on curve's data when creating displist,
so curve's nurbs can't be used as unchanged data -- use basis keyblock data instead
- Fixed tilt damaging when loading editcurve -- made a typo in array indexes
Fix#21498: Edit curve Shape key /252_r 27318
Added full support of shape keys for curves and nurbs surfaces including
topology changing in edit mode, undo stuff, updating relative keys when
working under basis and so on.