was not recursively restoring sound strips on paste.
also found many duplicate functions were defining the transform mode as in int but getting as an enum, use enum for both now.
Noted that a floating point exception caused by this r28953.
With the render engine using DerivedMesh normals this came up as a memory error when rendering some files.
for now zero the normals, could interpolate between vertex normals if needed.
Missing null check for "improper" driver variables.
------
Also, this commit includes some WIP NLA evaluation reshuffling which
should be harmless. I had originally intended this for a later
commit...
into account that some tools use normals for things other than display. Now
we properly initialize vertex normals at flat faces too.
Also fixed a normal refresh issue, and deduplicated CDDM/mesh normal
calculation code.
Recent renaming of Key.keys to Key.key_blocks broke converter for old
files.
Campbell Alert: However, more seriously, it has broken many current
rigs, especially those with heavy usage of (driven) Shape Keys
When rendering, during processing scene data, drawing in 3d window
is now locked. Can get extended to more areas in UI easily.
At least this solves all crashes with conflicting memory access in
render && 3d drawing. Deleting objects via operators or delete
modifiers isn't locked yet.
Also fixed: crash on quitting a renderwindow when it was rendering.
[#25725] Transform bone constraint & 'local with parent' as owners
space
[#26014] ChildOf Bone Constrain (influence) works in wrong workspace
Moved the influence calculation stuff outside of the space conversions
(i.e. so that it is done in worldspace only) fixes these problems,
which seem to arise when a constraint doesn't work in worldspace AND
doesn't need to apply inverse correct for this space conversion when
it's done, hence resulting in mismatch between spaces for old and new
matrices resulting in all the weird behaviour.
Patch to fix this from Jahka. Cheers!
restore, would not get their dependencies updated when they became visible.
It happend with a shrinkwrap modifier in these reports, but could happen with
other modifiers too.
Now we keep track of which layers have ever been updated since load, and tag
objects on them to be recalculated when they become visible.
Using environment map type "load" increased user counter on each
preview render.
Also noticed that this type of envmap use wasn't threadsafe, causing
imbufs being allocated for all threads. Also fixed that.
* Particle emission now updates all parent objects too to the exact emission time.
* This only does object level animation as updating the object data for every particle would be too slow.
* A better fix could be to interpolate the emission location directly from the current particle emission location and the location from the previous frame, but for this some point cache changes have to be made, so it will have to wait.
weighted normals as the render engine, and the render engine will copy
normals from the mesh rather than always recalculating them.
Subsurf/multires still use regular vertex normals, but they are expected
to be sufficiently high resolution to not need this.
This means that normal maps displayed in the viewport actually match the
render engine exactly and don't have artifacts due to this discrepancy.
It of course also avoids unexpected surprises where your render normals
look different than your viewport normals.
Subversion bumped to 4 for version patch to recalculate normals.
Patch by Morten Mikkelsen, with some small changes.
* The old collisions code detected particle collisions by calculating the
collision times analytically from the collision mesh faces. This was
pretty accurate, but didn't support rotating/deforming faces at all, as
the equations for these quickly become quite nasty.
* The new code uses a simple "distance to plane/edge/vert" function and
iterates this with the Newton-Rhapson method to find the closest particle
distance during a simulation step.
* The advantage in this is that the collision object can now move, rotate,
scale or even deform freely and collisions are still detected reliably.
* For some extreme movements the calculation errors could stack up so much
that the detection fails, but this can be easily fixed by increasing the
particle size or simulation substeps.
* As a side note the algorithm doesn't really do point particles anymore,
but uses a very small radius as the particle size when "size deflect" isn't
selected.
* I've also updated the collision response code a bit, so now the particles
shouldn't leak even from tight corners.
All in all the collisions code is now much cleaner and more robust than before!
old bug from r6568 (or before) in BKE_write_ibuf(), when passed TAGA format it would use whatever format the image buffer already had.
expect this is exposed by updated image saving code in 2.5x.
Not really a "bug", but it was on my todo anyways. Based on patch
[#26508] by Campbell, with a few modifications including extending
this to the Action/DopeSheet editor too.
Object.is_modified(scene, 'PREVIEW') function for python exporters to check if any modifiers or shape keys are applied (weather the original mesh can be used for exporters).
- opening a file with blender by passing it as an argument would and loading it once in blender left script auto execute flag in a different state.
- command line args --enable/disable-autoexec were being overridden by the user prefs.