Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(256)

Unified Diff: tracing/tracing/base/range.html

Issue 2771723003: [tracing] Move math utilities from base into their own subdirectory (attempt 2) (Closed)
Patch Set: rebase Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tracing/tracing/base/quad_test.html ('k') | tracing/tracing/base/range_test.html » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tracing/tracing/base/range.html
diff --git a/tracing/tracing/base/range.html b/tracing/tracing/base/range.html
deleted file mode 100644
index e81862ece135ad7fd0d6cf37e7e807994e28e3cd..0000000000000000000000000000000000000000
--- a/tracing/tracing/base/range.html
+++ /dev/null
@@ -1,294 +0,0 @@
-<!DOCTYPE html>
-<!--
-Copyright (c) 2014 The Chromium Authors. All rights reserved.
-Use of this source code is governed by a BSD-style license that can be
-found in the LICENSE file.
--->
-
-<link rel="import" href="/tracing/base/base.html">
-<link rel="import" href="/tracing/base/iteration_helpers.html">
-<link rel="import" href="/tracing/base/math.html">
-
-<script>
-'use strict';
-
-/**
- * @fileoverview Quick range computations.
- */
-tr.exportTo('tr.b', function() {
- function Range() {
- this.isEmpty_ = true;
- this.min_ = undefined;
- this.max_ = undefined;
- }
-
- Range.prototype = {
- __proto__: Object.prototype,
-
- reset: function() {
- this.isEmpty_ = true;
- this.min_ = undefined;
- this.max_ = undefined;
- },
-
- get isEmpty() {
- return this.isEmpty_;
- },
-
- addRange: function(range) {
- if (range.isEmpty)
- return;
- this.addValue(range.min);
- this.addValue(range.max);
- },
-
- addValue: function(value) {
- if (this.isEmpty_) {
- this.max_ = value;
- this.min_ = value;
- this.isEmpty_ = false;
- return;
- }
- this.max_ = Math.max(this.max_, value);
- this.min_ = Math.min(this.min_, value);
- },
-
- set min(min) {
- this.isEmpty_ = false;
- this.min_ = min;
- },
-
- get min() {
- if (this.isEmpty_)
- return undefined;
- return this.min_;
- },
-
- get max() {
- if (this.isEmpty_)
- return undefined;
- return this.max_;
- },
-
- set max(max) {
- this.isEmpty_ = false;
- this.max_ = max;
- },
-
- get range() {
- if (this.isEmpty_)
- return undefined;
- return this.max_ - this.min_;
- },
-
- get center() {
- return (this.min_ + this.max_) * 0.5;
- },
-
- get duration() {
- if (this.isEmpty_)
- return 0;
- return this.max_ - this.min_;
- },
-
- /**
- * Get a new Range spanning the powers (of opt_base || 10) that enclose
- * |this| Range.
- * If |this| is empty, returns a new empty Range.
- *
- * @param {number=} opt_base Defaults to 10.
- * @return {!Range}
- */
- enclosingPowers(opt_base) {
- if (this.isEmpty) return new Range();
- return Range.fromExplicitRange(
- tr.b.lesserPower(this.min_, opt_base),
- tr.b.greaterPower(this.max_, opt_base));
- },
-
- normalize: function(x) {
- return tr.b.normalize(x, this.min, this.max);
- },
-
- lerp: function(x) {
- return tr.b.lerp(x, this.min, this.max);
- },
-
- clamp: function(x) {
- return tr.b.clamp(x, this.min, this.max);
- },
-
- equals: function(that) {
- if (this.isEmpty && that.isEmpty)
- return true;
- if (this.isEmpty !== that.isEmpty)
- return false;
- return (tr.b.approximately(this.min, that.min) &&
- tr.b.approximately(this.max, that.max));
- },
-
- containsExplicitRangeInclusive: function(min, max) {
- if (this.isEmpty)
- return false;
- return this.min_ <= min && max <= this.max_;
- },
-
- containsExplicitRangeExclusive: function(min, max) {
- if (this.isEmpty)
- return false;
- return this.min_ < min && max < this.max_;
- },
-
- intersectsExplicitRangeInclusive: function(min, max) {
- if (this.isEmpty)
- return false;
- return this.min_ <= max && min <= this.max_;
- },
-
- intersectsExplicitRangeExclusive: function(min, max) {
- if (this.isEmpty)
- return false;
- return this.min_ < max && min < this.max_;
- },
-
- containsRangeInclusive: function(range) {
- if (range.isEmpty)
- return false;
- return this.containsExplicitRangeInclusive(range.min_, range.max_);
- },
-
- containsRangeExclusive: function(range) {
- if (range.isEmpty)
- return false;
- return this.containsExplicitRangeExclusive(range.min_, range.max_);
- },
-
- intersectsRangeInclusive: function(range) {
- if (range.isEmpty)
- return false;
- return this.intersectsExplicitRangeInclusive(range.min_, range.max_);
- },
-
- intersectsRangeExclusive: function(range) {
- if (range.isEmpty)
- return false;
- return this.intersectsExplicitRangeExclusive(range.min_, range.max_);
- },
-
- findExplicitIntersectionDuration: function(min, max) {
- var min = Math.max(this.min, min);
- var max = Math.min(this.max, max);
- if (max < min)
- return 0;
- return max - min;
- },
-
- findIntersection: function(range) {
- if (this.isEmpty || range.isEmpty)
- return new Range();
-
- var min = Math.max(this.min, range.min);
- var max = Math.min(this.max, range.max);
-
- if (max < min)
- return new Range();
-
- return Range.fromExplicitRange(min, max);
- },
-
- toJSON: function() {
- if (this.isEmpty_)
- return {isEmpty: true};
- return {
- isEmpty: false,
- max: this.max,
- min: this.min
- };
- },
-
- /**
- * Returns a slice of the input array that intersects with this range
- * inclusively.
- * If the range does not have a min, it is treated as unbounded from below.
- * Similarly, if max is undefined, the range is unbounded from above.
- *
- * @param {Array} array The array of elements to be filtered.
- * @param {Funcation=} opt_keyFunc A function that extracts a numeric value,
- * to be used in comparisons, from an element of the array. If not
- * specified, array elements themselves will be used.
- * @param {Object=} opt_this An optional this argument to be passed to
- * opt_keyFunc.
- */
- filterArray: function(array, opt_keyFunc, opt_this) {
- if (this.isEmpty_)
- return [];
- // Binary search. |test| is a function that should return true when we
- // need to explore the left branch and false to explore the right branch.
- function binSearch(test) {
- var i0 = 0;
- var i1 = array.length;
- while (i0 < i1) {
- var i = Math.trunc((i0 + i1) / 2);
- if (test(i))
- i1 = i; // Explore the left branch.
- else
- i0 = i + 1; // Explore the right branch.
- }
- return i1;
- }
-
- var keyFunc = opt_keyFunc || tr.b.identity;
- function getValue(index) {
- return keyFunc.call(opt_this, array[index]);
- }
-
- var first = binSearch(function(i) {
- return this.min_ === undefined || this.min_ <= getValue(i);
- }.bind(this));
- var last = binSearch(function(i) {
- return this.max_ !== undefined && this.max_ < getValue(i);
- }.bind(this));
- return array.slice(first, last);
- }
- };
-
- Range.fromDict = function(d) {
- if (d.isEmpty === true)
- return new Range();
- if (d.isEmpty === false) {
- var range = new Range();
- range.min = d.min;
- range.max = d.max;
- return range;
- }
- throw new Error('Not a range');
- };
-
- Range.fromExplicitRange = function(min, max) {
- var range = new Range();
- range.min = min;
- range.max = max;
- return range;
- };
-
- Range.compareByMinTimes = function(a, b) {
- if (!a.isEmpty && !b.isEmpty)
- return a.min_ - b.min_;
-
- if (a.isEmpty && !b.isEmpty)
- return -1;
-
- if (!a.isEmpty && b.isEmpty)
- return 1;
-
- return 0;
- };
-
- Range.PERCENT_RANGE = Range.fromExplicitRange(0, 1);
- Object.freeze(Range.PERCENT_RANGE);
-
- return {
- Range,
- };
-});
-</script>
« no previous file with comments | « tracing/tracing/base/quad_test.html ('k') | tracing/tracing/base/range_test.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698