blob: 240e79b4c494d3e661da68754816e755bc8c96ad [file] [log] [blame] [edit]
// 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.
part of dart.ui;
/// Same as [num.clamp] but optimized for a non-null [double].
///
/// This is faster because it avoids polymorphism, boxing, and special cases for
/// floating point numbers.
//
// See also: //dev/benchmarks/microbenchmarks/lib/foundation/clamp.dart
double _clampDouble(double x, double min, double max) {
assert(min <= max && !max.isNaN && !min.isNaN);
if (x < min) {
return min;
}
if (x > max) {
return max;
}
if (x.isNaN) {
return max;
}
return x;
}
double clampDouble(double x, double min, double max) {
assert(min <= max && !max.isNaN && !min.isNaN);
if (x < min) {
return min;
}
if (x > max) {
return max;
}
if (x.isNaN) {
return max;
}
return x;
}
Float32List _toMatrix32(Float64List matrix64) {
final Float32List matrix32 = Float32List(16);
matrix32[15] = matrix64[15];
matrix32[14] = matrix64[14];
matrix32[13] = matrix64[13];
matrix32[12] = matrix64[12];
matrix32[11] = matrix64[11];
matrix32[10] = matrix64[10];
matrix32[9] = matrix64[9];
matrix32[8] = matrix64[8];
matrix32[7] = matrix64[7];
matrix32[6] = matrix64[6];
matrix32[5] = matrix64[5];
matrix32[4] = matrix64[4];
matrix32[3] = matrix64[3];
matrix32[2] = matrix64[2];
matrix32[1] = matrix64[1];
matrix32[0] = matrix64[0];
return matrix32;
}