mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
dart-lang/sdk@016e8880f0 Version 2.10.0-90.0.dev dart-lang/sdk@34f636ce1d Revert "[vm/io] Fix FileSystemWatcher enum name typo." dart-lang/sdk@7a02118a41 [vm/fuchsia]: Safely shutdown the async message loop. dart-lang/sdk@334d368146 [analyzer_plugin] Remove unused dart:async imports dart-lang/sdk@047c0f860a [Analyzer] Support analyzing open files without open workspaces dart-lang/sdk@f846d0e7ea [analyzer_cli] Remove unused dart:async imports dart-lang/sdk@ba372d6e8a [dartdev] Remove unused dart:async import dart-lang/sdk@30cfb228c0 [nnbd_migration] Remove unused dart:async imports dart-lang/sdk@1134a0f17c [analysis_server] Remove unused dart:async imports dart-lang/sdk@3317d47c7d [_fe_analyzer_shared] Remove unused dart:async import dart-lang/sdk@0a036db596 [vm/io] Fix FileSystemWatcher enum name typo. dart-lang/sdk@000f3135a5 [analyzer] Remove unused dart:async imports dart-lang/sdk@7817aa1796 [dartfix] Remove unused dart:async imports dart-lang/sdk@0144087619 Version 2.10.0-89.0.dev dart-lang/sdk@42dfb9d304 Add `generateCallGraphWithDominators` method to generate a `CallGraph` from a precompiler trace. dart-lang/sdk@01024dfa5a Issue 43200. Report ASSIGNMENT_TO_FINAL when 'final late' has an initializer. dart-lang/sdk@ab16d79af9 Revert "Flow analysis changes to fix mixed-mode unsoundness loophole." dart-lang/sdk@7363adca67 [infra] Update checked-in SDKs to 2.10.0-79.0.dev dart-lang/sdk@d833f2f65c Flow analysis changes to fix mixed-mode unsoundness loophole. dart-lang/sdk@33e4a6bc2a Revert "[vm] Have Read/WriteStream use (S)LEB128 for variable-length encoding." dart-lang/sdk@d9dc24b53e Version 2.10.0-88.0.dev dart-lang/sdk@7130dd4d3d [cfe] Report error on non-void setter return type dart-lang/sdk@a7cb764aa4 [tests/ffi] Reinstate deleted test dart-lang/sdk@39689eb07c [co19] Roll co19 to 9c07e26d67665de7972ba6f7e87369933a978545 dart-lang/sdk@1f92293fd5 Revert "[dart:html] Add 'creates' type description to JS calls" dart-lang/sdk@e44cf969c6 Fix creates value for getStats dart-lang/sdk@15201ebe5f Version 2.10.0-87.0.dev dart-lang/sdk@eb8dfee107 [CFE] Clean up duplicate entries in spell checker lists
51 lines
1.6 KiB
Dart
51 lines
1.6 KiB
Dart
// Copyright 2013 The Flutter Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
// @dart = 2.10
|
|
|
|
part of dart.ui;
|
|
|
|
/// Linearly interpolate between two numbers, `a` and `b`, by an extrapolation
|
|
/// factor `t`.
|
|
///
|
|
/// When `a` and `b` are equal or both NaN, `a` is returned. Otherwise, if
|
|
/// `a`, `b`, and `t` are required to be finite or null, and the result of `a +
|
|
/// (b - a) * t` is returned, where nulls are defaulted to 0.0.
|
|
double? lerpDouble(num? a, num? b, double t) {
|
|
if (a == b || (a?.isNaN == true) && (b?.isNaN == true))
|
|
return a?.toDouble();
|
|
a ??= 0.0;
|
|
b ??= 0.0;
|
|
assert(a.isFinite, 'Cannot interpolate between finite and non-finite values');
|
|
assert(b.isFinite, 'Cannot interpolate between finite and non-finite values');
|
|
assert(t.isFinite, 't must be finite when interpolating between values');
|
|
return a * (1.0 - t) + b * t;
|
|
}
|
|
|
|
/// Linearly interpolate between two doubles.
|
|
///
|
|
/// Same as [lerpDouble] but specialized for non-null `double` type.
|
|
double _lerpDouble(double a, double b, double t) {
|
|
return a * (1.0 - t) + b * t;
|
|
}
|
|
|
|
/// Linearly interpolate between two integers.
|
|
///
|
|
/// Same as [lerpDouble] but specialized for non-null `int` type.
|
|
double _lerpInt(int a, int b, double t) {
|
|
return a * (1.0 - t) + b * t;
|
|
}
|
|
|
|
/// Same as [num.clamp] but specialized for non-null [int].
|
|
int _clampInt(int value, int min, int max) {
|
|
assert(min <= max);
|
|
if (value < min) {
|
|
return min;
|
|
} else if (value > max) {
|
|
return max;
|
|
} else {
|
|
return value;
|
|
}
|
|
}
|