The main advantage with this is that its close to twice as fast to do 'vertex.co[:]' then 'tuple(vertex.co)', this is common for writing a vertex array.
the correct python behavior in this case is to return a copy of the original type, however euler and quats don't support different sizes so we cant do so easily.
Child-of constraint issue: on adding, it wasn't checking owner
correctly for Bones, resulting in a constraint working in wrong
space; it looked as if transform was applied double when moving
the object. Only adding via Py API went wrong btw.
Also found a silly check for drawing constraints, which caused
constraint initialization to happen for every object on every
redraw!
Implementation note: con->flag CONSTRAINT_SPACEONCE was only used
for child-of constraints in Bones, so I've patched it on file
reading to always set the flag. Marked with XXX, so it can be
removed one day. Now at least things get corrected well for
imported armatures.
In some cases, a LMB-drag was drawing a stippled line. Leftover of
WIP code for support of gestures in Blender.
Disabled drawing for now, until gestures is back in control.
Since 2.5x blender has been using CD_MASK_BAREMESH for updating objects since object_handle_update() no longer has access to G.curscreen to calculate the mask from viewports.
The problem with this is after an initial calculation, CD_MASK_MTFACE may be required on draw, so it would recalculate the modifier stack multiple times per frame.
One case which caused this is armature animated mesh with texface in a dupligroup.
Fix this by having customdata_mask member in the scene, this isn't great design but at least fixes the bug and only changes a few files.
Loopcut check for deformed meshes was far too wide, it even disabled
loopcut on subsurfs.
Now added a check for armature/lattice only, and only give a warning,
not a return from the tool.
Porting the fix when Fullscreen flag is on (~ scene.gm->fullscreen)
I still see some issues with that, a difference between width/height. To be addressed later.
Porting the fix when Fullscreen flag is on (~ scene.gm->fullscreen)
I still see some issues with that, a difference between width/height. To be addressed later.
view rotate precision was lost over time, make view3d rotate normalize rv3d->viewquat.
note, this no longer crashes blender, just prints.
also commented some RegionView3D struct members.
* Timeline didn't listen to file read notifier, so the pointcache frames indicator didn't get updated.
* Also added listens to particle & modifier (cloth, sb & smoke) notifiers as changes that cleared a pointcache weren't shown directly in the timeline either.
* The timeline display was also always one frame behind the actual state, since the notifiers are handled before the actual dynamics are calculated.
** This is now fixed too, by creating the actual drawn data always at drawtime.
An operator Error throws up a menu, a Warning only a flashy header print.
In mesh editmode the menus for simple failures got very annoying, like
"Already a face" for Fkey on a face.
Proposal is to use warning for contextual failures, like:
- wrong selection
- unsupported combination
- wrong modes
And use errors for cases you really need user attention, for example when
issues are invisble or potentially damaging work.
- Memory failures
- Files not found
List can grow in future :) let's test this for mesh now.
I'll tackle this for other ops later after review.
(Also changed: loopcut disabled when editmode shows deformed result)
- SSS Presets were not working on pinned materials.
- added ability for save-presets to define variables to stop them becoming too verbose.
- remove object.active_node_material
ED_curve_updateAnimPaths now updates fcurves from animation data rather than
from local copy of curves: nurb and point index from keyIndex data gets
updated in this function and for correct handling undo stuff copy of
fcurves is stored in UndoCurve.
Additional changes:
- Revert of rev33640 and more proper fix: do not copy remained
spline-related rna fcurves after renaming pathes but all the rest
fcurves woulddbe copied back to animation data
- Refresh graph and dopesheet editor after updating animation data
"Make Local" option "Objects and Data" made materials get
lost on save, the tagging was incorrect. Now it makes
Materials local too.
Implementation note: the code is new (not 2.4) so it misses
some of the hairy goodies we had. It's something for another
time to really make this reliably work.
File Window draw error:
On start Blender in smaller sized window, a scalled down screen
causes the File Window main area to draw too high, clipping off
half of the top line. This case (scroll horizontal only) is not
handled as view2d type.
Material Node trees:
SSS wasn't displaying in Nodes.
Implementation notes:
- Currently copying local data for preview render, only copies
the base material. Node materials are re-used.
- This causes data to be in 2 "main" databases... complex.
- To make it work for preview, I had to add another loop in the
SSS code that checks the original Main dbase. That's marked
as warning in code to be fixed up.
Another bug:
- Material properties "SSS presets" copied settings to the
active material, not to the displayed one. Added RNA call
to retrieve this from Objects.
(Next commit will fix preset scripts)
Code cleanup to allow switching active output nodes in Compositor
made shader nodes output not set correctly.
Now you can have multiple output nodes in shaders too, and switch
on click-activate.
* Show unborn was on by default, so smoke got emitted from all particles regardless of their birth time, not a good default in my opinion.
* What made things worse was that particles weren't shown in viewport, so you didn't even know the particles were considered alive from the very first frame! (Not rendering is a good default, but they should still be visible in viewport!)