Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2015-08-21Fix T45864: Wrong NLA Control Curves keyed when using the Graph Editor slidersJoshua Leung
This commit simplifies the logic for finding the control curves for NLA strips, thus eliminating a whole bunch of weird errors that were happening here. It should also fix a number of other related issues here.
2015-08-18Refactor translation code out of blenfontCampbell Barton
- Add blentranslation `BLT_*` module. - moved & split `BLF_translation.h` into (`BLT_translation.h`, `BLT_lang.h`). - moved `BLF_*_unifont` functions from `blf_translation.c` to new source file `blf_font_i18n.c`.
2015-07-09Curve selection, de-duplicate & cleanupCampbell Barton
2015-07-02Fix: Keyframe indicators for NLA Strip properties fails if the AnimData has ↵Joshua Leung
an active action
2015-07-01Cleanup: use swap math funcsCampbell Barton
2015-05-19Building without Python works againCampbell Barton
2015-05-18Attempt to make drivers more safe for threadingSergey Sharybin
There were some reported data race conditions in the python interpreter which seems to be rather valid. Surely this is not very pretty solution, but it might solve some annoying bugs related on threading.
2015-03-30Cleanup: use const for typeinfoCampbell Barton
2015-03-28Fix for various small issues which may cause crashesJoshua Leung
2015-03-28Keyframes on NLA-Strip F-Curves are detected by RNA buttons tooJoshua Leung
2015-03-28Code Cleanup / Preemptive Bug Fixing: "action" parameter may get set when it ↵Joshua Leung
shouldn't be Logically, it makes sense that this parameter only gets used to describe the action that the F-Curve actually belongs to (if it belongs to one). Otherwise, it should not be set at all.
2015-02-20Fix for unlikely NULL pointer dereferenceCampbell Barton
Potential crash reading freestyle modifiers from future blend-files
2015-01-26Cleanup: strcmp/strncmp -> STREQ/STREQLEN (in boolean usage).Bastien Montagne
Makes usage of those funcs much more clear, we even had mixed '!strcmp(foo, bar)' and 'strcmp(foo, bar) == 0' in several places...
2015-01-16FCurve RNA API: add funcs to convert to samples/to keyframes.Bastien Montagne
So far, we had an operator to 'bake' keyframe curves into samples, but no way to make the fcurve editable again (i.e. to convert it back into a keyframes one). Needed to fix mocap addon (see T43259). Also, fixed a glitch in `fcurve_store_samples()`, since given end frame is included in range, it is valid to give same start and end frame (in case you want a single point in samples, not much practical cases, but...).
2015-01-11Fix T43204: Shrinkwrap constraint, project mode: Space ignored in bone case.Bastien Montagne
Own fault in rBb154aa8c060a60d to fix T42447... Reverted that commit, and added kind of not-so-nice hack instead. Note root of the issue comes from the special case we are doing here re 'Local' space of parent-less objects. In that case, local space should be the same as world one, but instead we apply the object rotation to it... This is inconsistent with all other cases and could very well lead to other issues as T42447, but afraid fixing that properly would be rather hairy - not to mention it would likely break all existing riggings etc. :( Should be safe for a 2.73a, shall we need it.
2014-12-01Cleanup: more int->bool.Bastien Montagne
2014-11-24SCons: correct include for win, also minor cleanupCampbell Barton
2014-11-16[T40372] FCurve Eval/Drawing Optimisation: Skip Bezier handle eval when all ↵Joshua Leung
handles are flat Small optimisation (which shouldn't have much of an effect) where we skip complex handle calculations if all the handles/verts for a Bezier curve segment are all flat. Patch by Campbell (T40372 -> F91346)
2014-11-16Bugfix T41525: Button keyframe indicators don't work correctly when editing ↵Joshua Leung
NLA Strips When the active action is a NLA strip, the keyframe indicator colors for buttons and the 3D view indicator (i.e. the current frame indicator changes color) didn't work correctly. This was because they were still checking for keyframes in "global" time space, whereas they needed to be applying NLA corrections to "look inside" the remapped action.
2014-10-06Fix Cycles crashing with previous own commit.Bastien Montagne
Behavior with NULL context was wrong.
2014-10-06Fix T40350: Some texture prop did not have visual feedback they were driven.Bastien Montagne
This is only a (hacky) partial fix, actually, since `RNA_property_animated()` will still not work in those cases... Better that than nothing, though. Thanks to Campbell for review.
2014-07-30Bugfix T41240: Home key doesn't show everything on F-CurvesJoshua Leung
Own copy and paste typo in 73d157e meant that this was not in some cases, the bounds calculated may be incorrect.
2014-07-20Bugfix T41042: Irrelevant Bezier handles still affect Graph Editor Show AllJoshua Leung
The "Show All" and "Show Selected" operators in the Graph Editor was taking into account all handles on keyframes, even when some of those would be invalid and/or set to nonsense values (e.g. for any interpolation mode other than "Bezier")
2014-07-19Defines: replace ELEM3-16 with ELEM(...), that can take varargsCampbell Barton
2014-06-13Code cleanup: remove redundant arg from ARRAY_LAST_ITEMCampbell Barton
2014-06-11Regression Bugfix T40332: Bad driver behaviour on small distances.Joshua Leung
!!! ANIMATORS/RIGGERS PLEASE TEST !!! I've reduced the size of the threshold for the keyframe lookup here. This threshold determines the minimum time in frames between keyframes (i.e. "how close" to each other they can get). Making this too small causes problems like T39207, but it seems that the threshold we've been using makes it impossible to get accurate behaviour on driver curves with keyframes, when the driver target only moves 2cm (i.e. 0.02 BU). So far, all of the test cases from T39207 seem to work fine, as well as Caminandes 2 files, and Kenny the Caterpillar. The Kiribati rigs/shots (thanks jpbouza for helping to check on these!) also seem to be fine.
2014-04-28f-curve easing: Adjustments to Robert Penner elastic easingCampbell Barton
Compensate for the clamped amplitude by blending the elastic effect. Allows for a subtle elastic effect which wasn't possible before.
2014-04-28"Auto" option for Keyframe.easingJoshua Leung
This option (alongside the Ease In/Out/InOut options already available) aims to make it easier to get an initial curve that looks closer to the one you were expecting, by automatically picking whether Ease In or Ease Out should be used based on the type of interpolation being used for the curve segment in question. Notes: * The types chosen may need some adjustments (e.g. using ease in-out instead of just ease in) * This does break compatability with files saved in previous dev builds, but only if you were using Bounce/Elastic/Back with "Ease In"
2014-04-19Math Lib: add shell_v3v3_normalized_to_dist and v2 versionCampbell Barton
bypass angle calculation to avoids (asin, sqrt, cos).
2014-04-15Move binary-search threshold used for FCurves to BKE_fcurve.h headerJoshua Leung
Since this is now pretty much the de-facto "minimum distance between keyframes", we might as well expose this in this header so that other places which need similar thresholds can perform similar checks (needed for my next commit)
2014-04-11Code cleanup: use boolCampbell Barton
2014-04-01Code cleanup: remove TRUE/FALSE & WITH_BOOL_COMPAT defineCampbell Barton
2014-03-31Fix T39291: "Stepped" F-curve modifier does not work as expected when ↵Joshua Leung
stacked after other modifiers Evaluation of time-warping modifiers ("Stepped" is one of them) didn't actually end up distorting the time to look up what values other modifiers in the stack generate. This meant that when a "stepped" fmodifier was on top of a "generator", the stepped fmodifier looked like it didn't have any effect. (This fix requires a bit of testing still, so should be left for 2.71)
2014-03-31Fix T39405: Make "amplitude" for elastic easing more intuitive to useJoshua Leung
Previously, amplitude was more of an "absolute" value in the sense that whatever value you set it to became a sort of "maximum bounce" height. However, it turns out that this approach isn't so nice when dealing with large gaps between the values of two keyframes, as the elastic easing equations expect that "amplitude > |change|" (where change is the difference in values from key1 to key2). Now, the "amplitude" value we pass to the easing functions are "|change| + amplitude". This is easier to control, as now, as soon as you start changing that value, there are immediately visible effects.
2014-03-25Code cleanup: rename easing functions with BLI_easing_ prefixCampbell Barton
2014-03-25Code cleanup: rename BLI_math_easing to BLI_easingCampbell Barton
Many hard coded values and really specific to time & keyframes.
2014-03-21Patch T22084: Robert Penner Easing Equations for FCurvesJoshua Leung
This commit introduces support for a number of new interpolation types which are useful for motion-graphics work. These define a number of "easing equations" (basically, equations which define some preset ways that one keyframe transitions to another) which reduce the amount of manual work (inserting and tweaking keyframes) to achieve certain common effects. For example, snappy movements, and fake-physics such as bouncing/springing effects. The additional interpolation types introduced in this commit can be found in many packages and toolkits (notably Qt and all modern web browsers). For more info and a few live demos, see [1] and [2]. Credits: * Dan Eicher (dna) - Original patch * Thomas Beck (plasmasolutions) - Porting/updating patch to 2.70 codebase * Joshua Leung (aligorith) - Code review and a few polishing tweaks Additional Resources: [1] http://easings.net [2] http://www.robertpenner.com/easing/
2014-03-21Fix T39207: FCurve evaluation regressions following 2aff243 (again)Joshua Leung
Yet another attempt at fixing the problems here. This time, I've added a new function/version of the binary search utility so that we can pass in custom thresholds (Note: This ability is only used for evaluation currently, with everything else using a wrapper which still uses the old default threshold), making it ok to start trusting the "exact" parameter.
2014-03-21Debug prints weren't getting triggered, since they no longer use the old flagJoshua Leung
2014-03-19A simpler fix for the "clive" part of T39207 without the precision ↵Joshua Leung
granularity risks
2014-03-19Fix T39207: FCurve evaluation regressions following 2aff243Joshua Leung
This commit attempts to fix some of the FCurve evaluation regressions arising from an earlier commit to speed up the process using binary search. Further tweaks may still be needed though to get this to an acceptable level of reliability (namely, tuning the threshold defining which keyframes get considered "close together"). Since we're still in an early stage of the 2.71 dev cycle, for now it's still worth trying to get this working instead of simply reverting this (which can still be done later if it proves too problematic). Specific fixes: * The previous code was somewhat dangerous in that it allowed out-of-bounds accessing of memory when a == 0. It turns out this was more common than originally anticipated (as the assert I added here ended up failing in the "action_bug.blend" file in the report) * Tweaked the code used to test for closely-spaced points so that the "Clive.blend" example for driver curves won't fail. The approach used here has the downside though that since "exact" uses a might coarser threshold for equality, there may be some precision loss issues causing backwards compat issues (namely with closely spaced keyframes, or for certain NLA strips). For now, I've left in some debug prints that can be enabled by running Blender in debug mode (i.e. "blender -d"), which can provide some useful tuning info should we need to look more into our approach here.
2014-03-15Patch T36209: Use binary search function for evaluating F-CurvesJoshua Leung
This provides a speedup to evaluating long F-Curves in fcurve_eval_keyframes() by using the pre-existing binarysearch_bezt_index() function (used for keyframe insertion) to find the relevant BezTriple on the FCurve at the current evaltime. The current code loops over all BezTriples (sometimes not even breaking from the loop after cvalue has been evaluated). Reviewer Notes: - Unlike in the original patch, we use the old/existing logic instead of checking that (exact == true). See comments in code and also on the tracker entry for this patch for more details. Patch By: Josh Wedlake
2014-03-01Fix for baked FCurve subframe interpolation (bad abs use)Campbell Barton
2014-03-01Code cleanup: comment unused code in calchandleNurb_internCampbell Barton
Also remove outdated comments.
2014-02-07ListBase API: add utility api funcs for clearing and checking emptyCampbell Barton
2014-02-03Code cleanup: use bools where possibleCampbell Barton
2014-01-01Fix crash happening in Cycles fcurve modifierSergey Sharybin
Summary: Crash was happening because of fcurve modifier stack used modifier's DNA to store temporary data. Now made it so storage for such a thing is being allocated locally per object update so multiple objects which shares the same animation wouldn't run into threading conflict anymore. This storage might be a part of EvaluationContext, but that'd mean passing this context all over in object_where_is which will clutter API for now without actual benefit for this. Optimization notes: storage is only being allocated if there're Cycles modifier in the stack, so there're no extra allocations happening in all other cases. To make code a bit less cluttered with this storage passing all over the place added extra callbacks to the FModifier storage which runs evaluation with the given storage. Reviewers: brecht, campbellbarton, aligorith CC: plasmasolutions Differential Revision: https://developer.blender.org/D147
2013-12-01Fix T37667: rotational difference driver target marked invalid even though ↵Brecht Van Lommel
valid.
2013-11-04Bugfix [#36950] Restrict Frame Range not being obeyed on Driver F-CurvesJoshua Leung
By default, drivers (used to) automatically map the driver result (i.e. "evaltime" or the x-coordinates in the driver graphs) to results. This evaltime => cvalue mapping is necessary when there are absolutely no keyframes or modifiers on a driver F-Curve, or else nothing would happen. However, when there are modifiers on these driver F-Curves, and these modifiers only work within certain ranges, there would be confusing and unwanted situations where even if you clamped the modifiers to only generating a curve within certain frame ranges, the final driver output would still ignore the results of the curve due to the underlying 1-1 mapping. This commit introduces a check to ensure that this automatic mapping won't happen during such invalid ranges.
2013-10-02fix [#36919] Cannot delete keyframe of animated simulation parameter if ↵Campbell Barton
simulation has been disabled