| // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file |
| // for details. 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.9 |
| |
| part of touch; |
| |
| // TODO(jacobr): pick a better name. This was goog.math in Closure. |
| /// Math utility functions originally from the closure Math library. |
| class GoogleMath { |
| /// Takes a [value] and clamps it to within the bounds specified by |
| /// [min] and [max]. |
| static num clamp(num value, num min, num max) { |
| return Math.min(Math.max(value, min), max); |
| } |
| |
| /// Tests whether the two values are equal to each other, within a certain |
| /// tolerance to adjust for floating point errors. |
| /// The optional [tolerance] value d Defaults to 0.000001. If specified, |
| /// it should be greater than 0. |
| /// Returns whether [a] and [b] are nearly equal. |
| static bool nearlyEquals(num a, num b, [num tolerance = 0.000001]) { |
| return (a - b).abs() <= tolerance; |
| } |
| } |