New Ipo and IpoCurve API. Ipo and IpoCurve objects support the [] operator,
for accessing the curves of a particular Ipo and for accessing the value
of an IpoCurve at a specific time. Both modules were also "tp_getset"-ified.
Also, code for an alternative method (Antont wanted this) of accessing curves
via Ipo attributes is included for now, for people to try and see if it's
actually preferable to the Ipo [] operator.
These are all new additions; nothing was intentionally removed from the API.
If you find the something in the existing API has changed, let me know.
a fairly obvious bug- with flipping armature names in armature edit mode.
All Objects names would flip if they had names from the armature, even if they did NOT use use armature. (this could realy mess up a scene)
fix was a 1 liner.
replaced
modob = modifiers_isDeformedByArmature(ob);
if(modob) {
with
/* or is there an armature deforming object */
/* this is a bit sloppy, what if we have more then 1 armature deforming a mesh?
TODO: Should have a function modifiers_isUsingArmature(ob, arm) - Campbell */
modob = modifiers_isDeformedByArmature(ob);
if(modob && modob->data==arm) {
Notice that before it didnt care what armature, just that it had one.
If the maintainer Ton? gives me the OK. Ill make this support multiple armatures by adding modifiers_isUsingArmature.
notice that if you pressed Akey when no objects in the view it still pushed an undo event, redrew and counted all and change the memory usage in the status.
mainly added not to waist undo slots.
version 1.58 assumes the usage of the BUILD_DATE macro. When this macro is not defined the extern declarations cause the linker to fail.
As a sidenote there is no 'winbuildinfo.c' file that the BUILD_DATE macro assumes is present on win32 systems....
When the 'reference shape key' (drawn yellow) was not the first key, the
channels as drawn in IpoWindow didn't match the actual shape keys.
This was caused by an exception in code that skips drawing the reference
shape when 'relative' was used.
Now I've added a rule that the first shape in a list always becomes the
reference, that way you can also edit it. To keep backwards compatibility,
this is only activated on translating the shape key lines.
Finally after 5 months! :)
Patch was already approved, but needed testing on existing files & time...
Description is here:
http://mediawiki.blender.org/index.php/BlenderDev/Transmissivity
In short: patch adds filtering based on thickness of material, and support
for internal reflection (resulting in better looking glass).
Thanks!
(Only note; appearance of glass render now differs... is acceptable, but for
the factor to control transmissivity a scaling factor could be added in UI,
the length of a ray is a relative thing...)
Patch #4044 patch to change the step when changing frame with up or down arrow keys.
This adds a per Scene setting to specify the number of frames skipped by the up and down arrow.
This setting can be changed in the Timeline header and in the Anim/Playback section of the Scene settings.
Upon loading a file without that setting or creating a new scene, it is set to 10
Also fixed the Start and End frame buttons in the Scene buttons to do a proper refresh.
implicit declarations, redundant redeclarations, missing initializers,
nested externs and other cruft.
Cleaned up includes and moved extern _Type decls from Types.h into
Types.c since that is the only place where they are needed now.
Did not touch Ipo.[ch] since work is on-going there.
NLA and Action window sometimes suffered from very weird scaled display,
caused by making the subwindow very small. Was a missing check for small
sizes.
Also in this commit removal of debug print N_T left in for ipos.
was found. Restore warm fuzzy msg. Text is now
Looking for installed Python version XXX
followed by either
Got it!
or
'import site' failed; use -v for traceback
No installed Python found.
Only built-in modules are available. Some scripts may not run.
Continuing happily.
And while we are at it, clean up a couple of compiler warnings.
Using "International Fonts" (silly name, it's pixmap fonts) the special
characters (values above 127) were disregarded completely.
This was caused with the extremely confusing unicode conversion call, which
actually only was needed when translations were set.
Disabling the unicode conversion then gives correct text drawing. However,
I suspect that this code will give issues for translations too... that I
cannot judge nor fix.
Zero-sized bones in an Armature didn't result in a stable rest position.
This caused bones to rotate to random positions on each editmode exit.
This commit will automatically remove such bones on exit editmode now, and
adds a warning print for it. I've tried to code exception handling for
zero-sized bones, but this is just too hard to get stable. Better to define
by default that Bones always should have a length.
Typically zero-sized bones only get added by accident, for example while
ctrl+clicking new bones.
Bug #3779: In camera view with center cursor (on camera), it's impossible to use translations.
Initgrabz didn't account for negative zero values (nor near zero values). Works now.
Of course, this is just a safety to give back the appearance of working, since the cursor is on the point of convergence, there's no way to properly calibrate anything.
Word of advice: Always check where the transform center is.
Bug #3733
Constraining on a perpendicular axis was broken on (half - 1) cases.
Silly oversight on my side which didn't turn out in the test case (moving camera in and out) and only appeared in front view (not side nor top) because of positive reasons.
Frankly, I still think translating an object perpendicular to the viewport is a bit silly, but now, at least, people can be silly in a predictable fashion.
Using stride-bone in an NLA, on a path without speed Ipo, didn't correct
the case when an action starts on a non-zero value.
Patch provided by Roland Hess. Thanks!
Removed the haha-fun "eekadoodle" error, which was popping up for each
faulty face (could be 1000s), and renamed it to give a proper message:
"This Mesh has old style edgecodes, please put it in the bugtracker!"
Using the new "Add constraint" hotkey (CTRL+ALT+C) or the option in the
pulldown menu, didn't set a proper flag in Curve object when a "Follow
Path" constraint was choosen.
Restored animated background picture, using a bad call actually, but thats
clearly noted in comments in code. Is remainder work for cleaning up the
whole render api. :)
Wire render normals were exactly opposite to the normals for solid faces.
This caused displacement to work inverse too. Flipped them.
(Note; for shading normals are corrected to point towards viewer)
Reading DXF curves can result in corrupted edges (with 2 identical
vertex indices). Probably thats OK for autocad or so.. but it made
Blender crash on entering editmode.
The issue was that particle emittors were still transformed by the object
matrix itself. That was solved in the previous commit, but there was
still an error in correctly evaluating dependencies for the object...
Current commit uses depsgraph to recalculate all objects that influence
the emittor.
The depsgraph code doesn't like particles much (because it uses baking).
Current construct is still weak, is on the list to solve nice.
"Full OSA" render used wrong subsample pattern for accumulating passrender
info. Was only noticable for the 'normal' pass, for example on raytraced
images. Image looked as if it had a wireframe render.
Raymirror didn't use proper texture-space 'osa vectors' for sky texture,
causing extremely blurred reflections of sky.
Error was actually a mixup of arguments for sky render...
When using CTRL+L for materials, you can end up with non-existing material
indices in faces. The drawing code then was still happily drawing the old
situation (or something random, its a static array).
This commit checks the maximum amount of materials on an object, and draws
the last available material for a non-existing index. It uses an ugly
global yes, but this code is bad anyway. :)