- added API examples for mathutils.Color/Euler/Quaternion/Matrix.
- corrected own bad spelling matricies --> matrices.
- minor pep8 edits.
- update CMake ignore file list.
There has been quite a bit of fuss about particle dupliobject rotation in 2.59, so here are some changes to make things work a bit more consistently and predictably in 2.60.
Much of the confusion has been about what the "Initial rotation" for particles actually means. Simply put it's just a vector that that the particles (and the dupliobjects) are aligned to and around which they can be rotated with the phase controls. I've now renamed these controls under a label "Rotation axis".
In 2.59 and previous versions the dupliobject's global x-axis was aligned to the particle rotation axis for non-hair particles. This meant that the object's own rotation (in addition to the particle rotation) could effect the dupliobjects' rotations. This old behavior can still be used with the "Rotation" option in the particle render panel when object/group is set as the visualization. This option is also activated automatically for old files to maintain backwards compatibility.
Now the default dupliobject rotations ignore the object's own rotation completely and align the object's tracking axis to the particle rotation axis. The tracking axis can be found under the Object tab -> Animation Hacks panel.
In 2.58 the way of calculating the rotation for hair didn't work as intended and enabled many non-functional combinations of options. For this reason I removed most of the rotation options for hair in 2.59. Now the options have been reimplemented better and the dupliobject's tracking axis is aligned to the hair direction by default (Rotation axis = Velocity / Hair). All the other axis options work too along with the phase controls.
- cmake/windows was installing locale & font when internationalization was disabled, twice when enabled.
- file selector was using the string size-1, where this isn't needed since string buttons expected this value to be the sizeof(), accounting for '\0'.
- use const char for extension checking funcs.
- minor pep8 edits
The cause is an unknown node socket type in node groups. Ideally the node system
should handle this better and remove the unknown sockets from groups, but this
is a bit of a risky fix to do now, so instead the shader socket type has been
added, since this is a simple change and the code has been tested well.
It helped to make things works better for some movies but it
didn't help proxies to work properly. Correct fix seems a bit larger
and better not be made atm, so to keep behavior of proxies and
original movie consistent keep resolution behaves like it was before
recent changes,
channels being set to invalid value 0. The cause of this is unclear, this adds
a version patch just to be safe, in case it turns out to be a common issue.
The image node output is the default value when no image is selected. In pre-2.60 this was always initialized to 0 alpha, the defaults written in the node socket templates were completely ignored for outputs (except for value and RGB input nodes, which use these as button values). Now the stack values are initialized with the template defaults, which are all 0 by default. This patch changes alpha to 0 for image and render layer outputs too.
The problem was that all outputs got tagged indiscriminately (esp. hidden render layer sockets), leading to full recalculation every time. This was caused by erroneous tagging of bNodeStacks with hasinput/hasoutput flags. This patch restores the old behaviour of tagging all non-static stacks as input values and all outputs that are connected to some input. Only difference is in node groups, where the hasoutput flag is no longer abused for tagging internal buffers, here the is_copy flag is used instead.
- Display running job template in all sequencer modes
It was displayed only for sequencer mode without preview.
- Fixed proxy rebuild progress indicator
It was alsways zero because of incorrect rounding.
- Fixed timecode saving on windows (and probably some other platforms)
It was caused by incorrect opening file for writting -- it should
be opened in binary format "wb". This error caused incorrect
movie duration detection on windows.
- Fixed movie resolution detection for some movies.
In file attached to report, Blender detected resolution 1920x1088
instead of 1920x1080. Not sure if this fix is correct or it's
issue in FFmpeg, but it's something what mplayer using: store
width/height before running avcodec_open().
- Fixed frame number calculation when building timecodes.
It was rounding error caused some frames be positioned incorrect
in several cases (that each 6th frame rendered as next frame
from report).
The enum items for getting the brush tool (which the UI draws), would change after the 3D view first draws on exiting editmode.
Since the panel draws before the 3D view does, the UI had a glitch.
Fix by using psys_get_current() for the enum, rather then PE_get_current() which depends on an updated particle system.
- initialize the relative_path option in ED_fileselect_get_params(), saves initializing within every operators own init functions, some even trying to initialize a non existing property.
- don't set the operator default from the user preferece, operator property defaults should be static else python scripts for eg can get different defaults depending on user settings, this also wont get updated when user-defaults are edited so generally confusing & not good practice.