private void Reduce() { if (_backup == null) { TakeBackup(); } _reduceUI.button.interactable = false; _reduceUI.label = "Please be patient..."; var settings = new ReduceSettings { fps = (int)_reduceMaxFramesPerSecondJSON.val, avgToSnap = _averageToSnapJSON.val, removeFlats = _removeFlatSectionsKeyframes.val, simplify = _simplifyKeyframes.val, minMeaningfulDistance = _reduceMinDistanceJSON.val, minMeaningfulRotation = _reduceMinRotationJSON.val, minMeaningfulFloatParamRangeRatio = _reduceMinFloatParamRangeRatioJSON.val, }; var targets = animationEditContext.GetAllOrSelectedTargets().OfType <ICurveAnimationTarget>().ToList(); StartCoroutine(operations.Reduce(settings).ReduceKeyframes( targets, progress => { _reduceUI.label = $"{progress.stepsDone} of {progress.stepsTotal} ({progress.timeLeft:0}s left)"; }, () => { _reduceUI.button.interactable = true; _reduceUI.label = "Reduce"; })); }
public ReduceOperations(AtomAnimationClip clip, ReduceSettings settings) { _clip = clip; _settings = settings; }
public FloatParamTargetReduceProcessor(FloatParamAnimationTarget source, ReduceSettings settings) : base(source, settings) { }
public ReduceOperations Reduce(ReduceSettings settings) { return(new ReduceOperations(_clip, settings)); }
public ControllerTargetReduceProcessor(FreeControllerAnimationTarget source, ReduceSettings settings) : base(source, settings) { }