Commit Graph

1223 Commits

Author SHA1 Message Date
bff99b10a3 Fix T38720: Clear preview range operator missing notifier to redraw
timeline.
2014-02-19 13:34:50 +01:00
5cf987cff8 Patch T38282/D295: Add a time offset to the FCurve Noise Modifier
FCurve Noise Modifer now has an extra float property which offsets the noise in time.
This is useful for creating follow through in procedurally animated noise.

For example, if you've used a noise modifier on a parent bone to add additional movement,
a quick and easy way to add overlapping motion is to create copies of that modifier on
its children, and then offset the time those curves play at. See this in action at:
http://youtu.be/Ph6fk_z_k3k

Reviewed By: Joshua Leung
2014-02-10 16:21:12 +13:00
b3afbcab8f ListBase API: add utility api funcs for clearing and checking empty 2014-02-08 06:24:05 +11:00
37026b12ec Code cleanup: use bool for static methods 2014-02-05 22:36:15 +11:00
d900f5be55 Code cleanup: use bools where possible 2014-02-03 19:35:44 +11:00
b320139c67 Use bool where appropriate 2014-02-03 19:23:49 +13:00
39eb314cb9 UI: Refactor timecode functions into BLI_timecode
- deduplicate timecode_simple_string from image.c
- replace V2D_UNIT_SECONDSSEQ with V2D_UNIT_SECONDS
- avoid possible buffer overflow bugs (sprintf -> BLI_snprintf)
- remove option not to use timecode and split into 2 functions

Patch D227 by Andrew Buttery with own refactoring.
2014-01-29 20:44:01 +11:00
a5c35fb27f Code cleanup: use booleans where appropriate 2014-01-28 04:00:04 +11:00
257f408864 Fix T38347: adding object visibility keyframes in the outliner groups and
libraries view not working.

This was disabled in the operator, there may have been a reason for this at
some point, but I can't see any reason to disallow it in the current code or
find a good reason why it was done in the commit logs.
2014-01-24 16:12:56 +01:00
4ae7ae6f2e Code Cleanup: use bool for return values and correct comments
also remove CDDM_Check, theres no need for it.
2014-01-22 02:53:48 +11:00
e27dcc3423 Cleanup: no need to use constraint space transform API here, we can directly call
BKE_armature_mat_pose_to_bone (and avoids the need to get an Object pointer!).
Note the former just calls the later internally, in this case.
2014-01-21 09:18:48 +01:00
607df8090b Fix for long keyframes not getting faded out with their associated keyframes on protected channels 2014-01-17 14:53:03 +13:00
d8fa72bfb1 Assorted polish fixes for keyframe theme settings patch
* Version patching fixes for theme settings
* Added missing support for NLA (needed for the keyframes drawn in the action lines)
* Fix for a lack of contrast between selected and unselected extreme keyframe type
  (restoring it back to the pre-patch color scheme)
* Fix for keyframes on protected channels not being drawn with partial opacity
2014-01-17 14:53:02 +13:00
5e5b0cee4f T37579: Theme settings for Keyframe Colours
This patch makes it possible to customise the colours used for the different
keyframe types (Keyframe, Breakdown, Extreme, Jitter) and the border colours
(normal and selected).

Reviewed by: Joshua Leung
2014-01-17 14:42:10 +13:00
af93ebcb50 Code Cleanup: style and redundant casts 2014-01-16 19:15:53 +11:00
b8b412230b Code Cleanup: use iroundf
also increase precision of rctf print functions
2014-01-15 13:40:40 +11:00
6734936c13 RNA API: use bool's for enum itemf callbacks. 2014-01-04 18:10:01 +11:00
6727bf3a21 Avoid temporary change of animation data flags for nodes filter
Use temporary runtime flag of filter_mode argument instead.

This commit also fixes some weirdo mix of filter_mode with
filterflag bits.
2013-12-26 18:50:22 +06:00
c1c26c36f6 Style Cleanup: remove preprocessor indentation (updated wiki style guide too) 2013-12-22 14:12:19 +11:00
87cc890aef Support units in modal numinput
Summary:
This completly changes the way modal numinput is handled. Now, edited expression is a string, which then gets unit- and py-evaluated to get a float value.

We gain many power and flexibility, but lose a few "shortcuts" like '-' to negate, or '/' to inverse (if they are really needed, we still can add them with modifiers, like e.g. ctrl-/ or so).

Features:
- units (cm, ", deg, etc.).
- basic operations from python/BKE_unit (+, *, **, etc.), and math constants and functions (pi, sin, etc.).
- you can navigate in edited value (left/right key, ctrl to move by block) and insert/delete chars, e.g. to fix a typo without having to rewrite everything.
- you can go to next/previous value with (ctrl-)TAB key.
- As before, hitting backspace after having deleted all leading chars will first reset the edited value to init state, and on second press, the whole "modal numinput" editing will be cancelled, going back to usual transform with mouse.

Notes:
- Did not touch to how values are shown in header when modal numinput is not enabled (would do that in another commit), so this is still quite inconsistent.
- Added back radian support in BKE_unit.
- Added arcminute/arcsecond to BKE_unit.
(those unit changes affect all angle UI controls, btw, so you can now enter radians or longitude/latitude values when in degrees units).

Related to T37600.

Reviewers: brecht, campbellbarton, carter2422

Reviewed By: brecht, campbellbarton, carter2422
Thanks everybody!

Differential Revision: http://developer.blender.org/D61
2013-12-21 17:44:48 +01:00
48b9680578 Fix T37883: Dope Sheet - Selecting object channels in AnimEditors doesn't make them active
There was probably a reason in the past why this wasn't desirable, but since we allow
bones to be properly selected when clicking on corresponding channels here, we may as
well allow this case too.
2013-12-20 23:55:44 +13:00
b2fdc591c3 UI: restore confirmation popups for delete operators.
It turned out this was leading to accidental deleting in some cases when the
info message was missed by users. Fixes T37801.
2013-12-20 01:40:33 +01:00
db795b66fa Fix bplayer broken in own rB51f5c994e9f0. 2013-12-17 10:47:32 +01:00
51f5c994e9 Fix T37103: Keyframing custom properties issue (FCurve would not reflect Custom props type changes).
Add an helper func to re-compute integer-only fcurve flags, and call it when editing custom props.

Reviewed by aligorith, thanks!

Summary: Proposal fix for "keyframing custom properties issue" (T37103).

Reviewers: aligorith

Maniphest Tasks: T37103

Differential Revision: http://developer.blender.org/D111
2013-12-17 09:51:27 +01:00
ff6bf133ad Fix T37811: Delete key shortcut missing for deleting markers
The keymap here used WM_keymap_verify_item(), which only allows for a
single hotkey to be bound to an operator. In most cases, this really
isn't justified.
2013-12-14 13:42:42 +13:00
ac38f2584f Code Cleanup: replace ABS() with fabsf() when used with float expressions. 2013-12-01 13:11:12 +11:00
cedc90b607 Fix errors and inconsistencies in confirmation popup removal.
* Improve some clip editor messages
* Remove popup for metastrips, seems unnecessary
* Renamed some variables for consistency
* Avoid unnecessary call to CTX_DATA_COUNT

Reviewed By: sergey, campbellbarton, aligorith

Differential Revision: http://developer.blender.org/D44
2013-11-29 17:49:01 +01:00
63caaa2b12 Code Cleanup: rename vars for detecting change to be more consistent
rename change/is_change/is_changed/modified -> changed
also use bools over int/short/char and once accidental float.
2013-11-26 06:39:14 +11:00
3ca4387bc8 UI: remove unnecessary confirmation popups
This makes a number of operators no longer ask for confirmation, rather it will
show an info message after performing the operation. Ref T37422 for decision. In
particular, these were changed:

* Delete objects, bones, keyframes, masks, mask curves, motion tracks, markers.
* Clear and delete keyframes in the 3D view.
* Align bone to parents.
* Separate bones from armature.
* Group/ungroup metastrips in sequencer.
* Copy/paste objects to/from buffer.

Reviewed By: brecht, dingto

Differential Revision: http://developer.blender.org/D35
2013-11-25 12:21:45 +01:00
1d33098314 More short->bool refactoring work for anim channel type define callbacks
Changed the "neg" flag for acf.setting_flag() to be a bool
2013-11-23 18:59:21 +13:00
ff66f3d3ad Anim Editors: Refactored animchannel type definition callbacks to use bools
Changes:
- acf.name_prop() and acf.has_setting() now return bools instead of shorts
- Renamed a few name_prop() callbacks whose names ended in "_nameprop"
  instead of "_name_prop", which made it difficult to safely find all
  such instances
2013-11-23 18:59:21 +13:00
efdd4894e9 NLA Channel Drawing Refactor: Remove rest of old drawing code for NLA Track channels
NLA Track drawing has now been ported over to use the UI widgets
like the rest of the anim channels do in the DopeSheet and Graph
Editors. The main benefit of this for users is that these buttons
will now show tooltips when you hover over them. Hopefully this
will help make the "solo" buttons more discoverable.

I've decided to postpone porting the "Action Line" channels to the
widget system for now, since there are quite a few more issues there
which need quite a bit more time to work through.
2013-11-21 01:33:02 +13:00
905085228f Anim Editors: Ensure that "solo" flag doesn't get accidentally handled on channels which don't support it 2013-11-21 01:33:02 +13:00
96a4ee725e Anim Editors: Improve some tooltips to be more accurate for the type of editor/data they're shown for
This commit fixes some problems where some tooltips were not adapting
as intended when used for different channel types in different places.
2013-11-21 01:33:02 +13:00
be971959bc Added button callback so that toggling solo mode on NLA Tracks now works correctly 2013-11-21 01:33:02 +13:00
5efad6f6c6 Ported code for setting colour of NLA Track anim channel 2013-11-21 01:33:02 +13:00
eb72712485 Ported over logic for which animchannel settings are supported by NLA Tracks 2013-11-21 01:33:02 +13:00
2f88fc35de Skeleton of type defines for NlaTrack animchannel 2013-11-21 01:33:01 +13:00
c4bb2e9774 Updating icons for NLA Track "solo" button (as used in standard widgets) 2013-11-21 01:33:01 +13:00
a8a4431fcf Bugfix [#36687] Animation channels can't be grouped in action editor
Internal filtering flags used to obtain AnimData blocks as result were not
working correctly in Action and ShapeKey modes. Instead, in these modes, they
were often returning F-Curves instead, which lead to the grouping operating
failing (and perhaps other unidentified bugs)
2013-11-02 13:11:06 +00:00
f9d5bccb06 code cleanup: spelling 2013-10-31 23:52:44 +00:00
beae4f498d code cleanup: spelling 2013-10-31 14:10:01 +00:00
7267221715 remove return argument from wmOperatorType->cancel, was only ever returning OPERATOR_CANCELLED. 2013-10-30 23:08:53 +00:00
bced18155f fix for uninitialized value use in newly added fcurve normalized view.
also quiet warning without openmp.
2013-10-30 22:13:28 +00:00
16d13e0db9 Project Pampa request: FCurves normalized display
Added two options to a header of FCurve editor:

- Normalize which makes it so every individual
  curve is fit into -1..1 space.

- Auto-normalize, which probably is to be called
  "Lock" which "locks" curve normalization scale.
  This is useful to prevent curves from jumping
  around when tweaking it.

It's debatable whether it need to be a button to
normalize curves n purpose only, and it's fully
depends on animator's workflow.

Here during Project Pampa we've got Francesco
who get used to auto-renormalization and Hjalti
who prefers locked behavior.

Docs are to be ready soon by Francesco.
Thanks Brecht for the review!
2013-10-29 18:10:52 +00:00
f6e504cee9 Make anim system safer for threading
Remove usages of ANIM_unit_mapping_apply_fcurve in favor of
runtime scale factor apply.

There're still calls to ANIM_nla_mapping_apply_fcurve are
hanging around, they're the next t be cleaned up!
2013-10-29 18:10:48 +00:00
304a32bf1f style cleanup 2013-10-23 02:52:27 +00:00
67e262069a Minor UI messages fixes. 2013-10-22 08:21:00 +00:00
2454793190 DopeSheet Group Select => Bone Select Tweak: Don't change selection status of
bones if "Only Selected" dopesheet filter is enabled.

When this was enabled, it would be too easy to accidentally change the selected
bones, causing the keyframes you were just editing to disappear
2013-10-22 06:24:47 +00:00
5d132e722e Followup to r60857: code was assuming markers were sorted, which is not guaranted. Also heavily simplified it (previous code was supposed to have optimizations, but ended just looping twice over the markers' list...).
Many thanks to Brecht and Sergey for noting the quirk and reviews! :)
2013-10-21 14:40:14 +00:00