| Index: tracing/tracing/base/quad.html
|
| diff --git a/tracing/tracing/base/quad.html b/tracing/tracing/base/quad.html
|
| deleted file mode 100644
|
| index 2ba997efc6913c23b3a2ae52c12887aca6d4b7ff..0000000000000000000000000000000000000000
|
| --- a/tracing/tracing/base/quad.html
|
| +++ /dev/null
|
| @@ -1,235 +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/math.html">
|
| -<script>
|
| -'use strict';
|
| -
|
| -tr.exportTo('tr.b', function() {
|
| - var tmpVec2s = [];
|
| - for (var i = 0; i < 8; i++)
|
| - tmpVec2s[i] = vec2.create();
|
| -
|
| - var tmpVec2a = vec4.create();
|
| - var tmpVec4a = vec4.create();
|
| - var tmpVec4b = vec4.create();
|
| - var tmpMat4 = mat4.create();
|
| - var tmpMat4b = mat4.create();
|
| -
|
| - var p00 = vec2.createXY(0, 0);
|
| - var p10 = vec2.createXY(1, 0);
|
| - var p01 = vec2.createXY(0, 1);
|
| - var p11 = vec2.createXY(1, 1);
|
| -
|
| - var lerpingVecA = vec2.create();
|
| - var lerpingVecB = vec2.create();
|
| - function lerpVec2(out, a, b, amt) {
|
| - vec2.scale(lerpingVecA, a, amt);
|
| - vec2.scale(lerpingVecB, b, 1 - amt);
|
| - vec2.add(out, lerpingVecA, lerpingVecB);
|
| - vec2.normalize(out, out);
|
| - return out;
|
| - }
|
| -
|
| - /**
|
| - * @constructor
|
| - */
|
| - function Quad() {
|
| - this.p1 = vec2.create();
|
| - this.p2 = vec2.create();
|
| - this.p3 = vec2.create();
|
| - this.p4 = vec2.create();
|
| - }
|
| -
|
| - Quad.fromXYWH = function(x, y, w, h) {
|
| - var q = new Quad();
|
| - vec2.set(q.p1, x, y);
|
| - vec2.set(q.p2, x + w, y);
|
| - vec2.set(q.p3, x + w, y + h);
|
| - vec2.set(q.p4, x, y + h);
|
| - return q;
|
| - };
|
| -
|
| - Quad.fromRect = function(r) {
|
| - return new Quad.fromXYWH(
|
| - r.x, r.y,
|
| - r.width, r.height);
|
| - };
|
| -
|
| - Quad.from4Vecs = function(p1, p2, p3, p4) {
|
| - var q = new Quad();
|
| - vec2.set(q.p1, p1[0], p1[1]);
|
| - vec2.set(q.p2, p2[0], p2[1]);
|
| - vec2.set(q.p3, p3[0], p3[1]);
|
| - vec2.set(q.p4, p4[0], p4[1]);
|
| - return q;
|
| - };
|
| -
|
| - Quad.from8Array = function(arr) {
|
| - if (arr.length !== 8)
|
| - throw new Error('Array must be 8 long');
|
| - var q = new Quad();
|
| - q.p1[0] = arr[0];
|
| - q.p1[1] = arr[1];
|
| - q.p2[0] = arr[2];
|
| - q.p2[1] = arr[3];
|
| - q.p3[0] = arr[4];
|
| - q.p3[1] = arr[5];
|
| - q.p4[0] = arr[6];
|
| - q.p4[1] = arr[7];
|
| - return q;
|
| - };
|
| -
|
| - Quad.prototype = {
|
| - pointInside: function(point) {
|
| - return pointInImplicitQuad(point,
|
| - this.p1, this.p2, this.p3, this.p4);
|
| - },
|
| -
|
| - boundingRect: function() {
|
| - var x0 = Math.min(this.p1[0], this.p2[0], this.p3[0], this.p4[0]);
|
| - var y0 = Math.min(this.p1[1], this.p2[1], this.p3[1], this.p4[1]);
|
| -
|
| - var x1 = Math.max(this.p1[0], this.p2[0], this.p3[0], this.p4[0]);
|
| - var y1 = Math.max(this.p1[1], this.p2[1], this.p3[1], this.p4[1]);
|
| -
|
| - return new tr.b.Rect.fromXYWH(x0, y0, x1 - x0, y1 - y0);
|
| - },
|
| -
|
| - clone: function() {
|
| - var q = new Quad();
|
| - vec2.copy(q.p1, this.p1);
|
| - vec2.copy(q.p2, this.p2);
|
| - vec2.copy(q.p3, this.p3);
|
| - vec2.copy(q.p4, this.p4);
|
| - return q;
|
| - },
|
| -
|
| - scale: function(s) {
|
| - var q = new Quad();
|
| - this.scaleFast(q, s);
|
| - return q;
|
| - },
|
| -
|
| - scaleFast: function(dstQuad, s) {
|
| - vec2.copy(dstQuad.p1, this.p1, s);
|
| - vec2.copy(dstQuad.p2, this.p2, s);
|
| - vec2.copy(dstQuad.p3, this.p3, s);
|
| - vec2.copy(dstQuad.p3, this.p3, s);
|
| - },
|
| -
|
| - isRectangle: function() {
|
| - // Simple rectangle check. Note: will not handle out-of-order components.
|
| - var bounds = this.boundingRect();
|
| - return (
|
| - bounds.x === this.p1[0] &&
|
| - bounds.y === this.p1[1] &&
|
| - bounds.width === this.p2[0] - this.p1[0] &&
|
| - bounds.y === this.p2[1] &&
|
| - bounds.width === this.p3[0] - this.p1[0] &&
|
| - bounds.height === this.p3[1] - this.p2[1] &&
|
| - bounds.x === this.p4[0] &&
|
| - bounds.height === this.p4[1] - this.p2[1]
|
| - );
|
| - },
|
| -
|
| - projectUnitRect: function(rect) {
|
| - var q = new Quad();
|
| - this.projectUnitRectFast(q, rect);
|
| - return q;
|
| - },
|
| -
|
| - projectUnitRectFast: function(dstQuad, rect) {
|
| - var v12 = tmpVec2s[0];
|
| - var v14 = tmpVec2s[1];
|
| - var v23 = tmpVec2s[2];
|
| - var v43 = tmpVec2s[3];
|
| - var l12;
|
| - var l14;
|
| - var l23;
|
| - var l43;
|
| -
|
| - vec2.sub(v12, this.p2, this.p1);
|
| - l12 = vec2.length(v12);
|
| - vec2.scale(v12, v12, 1 / l12);
|
| -
|
| - vec2.sub(v14, this.p4, this.p1);
|
| - l14 = vec2.length(v14);
|
| - vec2.scale(v14, v14, 1 / l14);
|
| -
|
| - vec2.sub(v23, this.p3, this.p2);
|
| - l23 = vec2.length(v23);
|
| - vec2.scale(v23, v23, 1 / l23);
|
| -
|
| - vec2.sub(v43, this.p3, this.p4);
|
| - l43 = vec2.length(v43);
|
| - vec2.scale(v43, v43, 1 / l43);
|
| -
|
| - var b12 = tmpVec2s[0];
|
| - var b14 = tmpVec2s[1];
|
| - var b23 = tmpVec2s[2];
|
| - var b43 = tmpVec2s[3];
|
| - lerpVec2(b12, v12, v43, rect.y);
|
| - lerpVec2(b43, v12, v43, 1 - rect.bottom);
|
| - lerpVec2(b14, v14, v23, rect.x);
|
| - lerpVec2(b23, v14, v23, 1 - rect.right);
|
| -
|
| - vec2.addTwoScaledUnitVectors(tmpVec2a,
|
| - b12, l12 * rect.x,
|
| - b14, l14 * rect.y);
|
| - vec2.add(dstQuad.p1, this.p1, tmpVec2a);
|
| -
|
| - vec2.addTwoScaledUnitVectors(tmpVec2a,
|
| - b12, l12 * -(1.0 - rect.right),
|
| - b23, l23 * rect.y);
|
| - vec2.add(dstQuad.p2, this.p2, tmpVec2a);
|
| -
|
| -
|
| - vec2.addTwoScaledUnitVectors(tmpVec2a,
|
| - b43, l43 * -(1.0 - rect.right),
|
| - b23, l23 * -(1.0 - rect.bottom));
|
| - vec2.add(dstQuad.p3, this.p3, tmpVec2a);
|
| -
|
| - vec2.addTwoScaledUnitVectors(tmpVec2a,
|
| - b43, l43 * rect.left,
|
| - b14, l14 * -(1.0 - rect.bottom));
|
| - vec2.add(dstQuad.p4, this.p4, tmpVec2a);
|
| - },
|
| -
|
| - toString: function() {
|
| - return 'Quad(' +
|
| - vec2.toString(this.p1) + ', ' +
|
| - vec2.toString(this.p2) + ', ' +
|
| - vec2.toString(this.p3) + ', ' +
|
| - vec2.toString(this.p4) + ')';
|
| - }
|
| - };
|
| -
|
| - function sign(p1, p2, p3) {
|
| - return (p1[0] - p3[0]) * (p2[1] - p3[1]) -
|
| - (p2[0] - p3[0]) * (p1[1] - p3[1]);
|
| - }
|
| -
|
| - function pointInTriangle2(pt, p1, p2, p3) {
|
| - var b1 = sign(pt, p1, p2) < 0.0;
|
| - var b2 = sign(pt, p2, p3) < 0.0;
|
| - var b3 = sign(pt, p3, p1) < 0.0;
|
| - return ((b1 === b2) && (b2 === b3));
|
| - }
|
| -
|
| - function pointInImplicitQuad(point, p1, p2, p3, p4) {
|
| - return pointInTriangle2(point, p1, p2, p3) ||
|
| - pointInTriangle2(point, p1, p3, p4);
|
| - }
|
| -
|
| - return {
|
| - pointInTriangle2,
|
| - pointInImplicitQuad,
|
| - Quad,
|
| - };
|
| -});
|
| -</script>
|
|
|