Continuing on from my previous 'Expandable/Collapsable Action Channel' commit, this commit introduces the ability to show/hide the keyframes in each ipo-curve represented by an Action Channel.
When you expand an Action-Channel by clicking on the triangle beside its name, you will now be presented with options to show/hide the ipo-curves represented by
the Action-Channel, and/or the Constraint Channels belonging to that Action-Channel. Actual ipo-curves will not be drawn in the Action-Editor, but the keyframes
will be shown.
Screenshot:
* http://wiki.blender.org/index.php/Image:244_ActionEditor_SubTracks_01.png
Possibly Coming Soon/Further Work:
* 'Protection' options for ipo-curves (currently disabled in code, as all IPO-related
tools will need to be made aware of this)
* Sliders for IPO-Curve Channels of the active Action-Channel
Added checks to the following areas
* half the material buttons
* multires, shapekeys, vert groups
* renaming a linked Object in the links could loose the object on next reload.
Made center functions check for library data as well as changing
the way it works.
Rather then centering all objects in the selection and stopping if it finds libdata, or a multiuser mesh.
It centers all that it can, and reports any objects that didnt center and why.
Node system: new typedefinition system caused button callbacks for group
node not to work.
Since this is not configurable, added it hardcoded. with a "XXX Ugly Hack"
note.
Now all windows open in a border as opposed to fullscreen. blender -W restores
old functionality, blender -w is now default. This lets each platform's window
manager deal with it's own issues.
As per issue 6391 in the patch tracker.
some were 18, most 19, and others 21. made all 21 since this is the real limit.
Also new image name limit length of input field to 21 (was 255 but shortened to 21)
The one place this could be useful is if somebody names a metaball with a 21 char name, the copy will not use the motherball.
but this is not as bad as having to use the python console for fixing library linking problems.
Transform Properties panel in 3d window.
New button "Parbone" showing when parent relation is to a specific bone.
This information was nowhere reveiled in the UI until now.
Code remark:
The code isn't getting more beautiful now with all if() options added.
The idea to move the rotation buttons down when a parent bone was set isn't
very good, buttons should stay as much as possible on the same location.
However, I dont have time for a solution either...
Displacement option for render only works without Nodes (it is calculated
as a Texture effect in advance, not a render option). To illustrate that,
the button to enable diplacement mapping is hidden for Node materials.
Existing data is flagged with LIB_APPEND_TAG and all_local only has an option to only operate on un-flagged data.
If you append an object thats linked to a material alredy linked in your scene, the material will not be made local.
So at worst youll need to make local some of the datablocks.
This is fairly simple and though my tests show it to work, do some tests on your own libraries before assuming its problem free.
scripttemplate_mesh_edit wasnt updated with PyAPI changes and moved some functions into generic places.
This (new) constraint limits the location of an object/bone to the range of locations
on a given curve. It works by comparing the location of the owner on one axis, to
the extents of the curve's bounding-box on the same axis, to find the location on
the curve.
Usage Notes:
* 'Ob:' field must point to a valid curve object
* This curve should have 'Path' turned on in order for this constraint to work. You
don't really need to do this as it will be taken care of by the code.
* 'Auto' toggle automically determines which axis should be used for the distance estimations/calculations. It is the default option, but may not work that well for
some cases.
* X/Y/Z toggles can be used to select the axis to use for these calculations. Try
to choose the axis along which the curve stretches out for most.
Python Notes:
Python API access for this constraint is not included in this commit. Will be coming
soon.
Adding Python counterparts to the Invert params for Copy Rot and Copy Loc.
I had to align the constants being used, so if you had files using those options (introduced after 2.43), you'll have to modify the INVERT settings for ROTLIKE constraints (didn't feel like making a minor version bump for this, if people thing otherwise, please say so).
Based on a patch by Juho Vepsäläinen (bebraw)
Now, the 'Only Needed' Auto-Keyframing tool only adds keyframes for the relevant transforms when working with bones in PoseMode. Previously, all transform channels were keyed in such cases, as Auto-IK used to make things difficult.
The problem was that new ID's that didnt have any naming collisions whould not run sort_alpha_id, which lead to most images not being sorted.
Simple fix is to make sort_alpha_id run on all new ID's. but we need to make sure all data is kept sorted. maybe a check when running in debug mode would help.
This time, it's temporarily hidden by default, but active with rt: set to 5.
If anyone that was having probs with it before could test and let me know if
things go without issues, that would be appreciated!
This commit should hopefully fix some of the problems some people were
having with tablet support in sculpt mode, and also the problems I made
visible with my previous commit related to number field dragging.
Now, all the ghost related stuff is tucked away in ghostwinlay.c and a
simple Blender API, similar to the existing get_mbut() for example, is
provided to access the tablet data. As with the other mouse related data in
Blender, the tablet data is cached upon each mouse move or click, in the
Window struct.
You can now just use:
float get_pressure(void);
void get_tilt(float *xtilt, float *ytilt);
short get_activedevice(void);
to get such data from the tablet. Documentation on the returned data
is in ghostwinlay.c in the _Window struct definition.
Brecht and Nicholas, I've updated the painting and sculpt code and it works
just fine here, you may want to give it a check though to make sure I
haven't done anything silly.