| OLD | NEW |
| 1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
| 2 <!-- | 2 <!-- |
| 3 Copyright (c) 2014 The Chromium Authors. All rights reserved. | 3 Copyright (c) 2014 The Chromium Authors. All rights reserved. |
| 4 Use of this source code is governed by a BSD-style license that can be | 4 Use of this source code is governed by a BSD-style license that can be |
| 5 found in the LICENSE file. | 5 found in the LICENSE file. |
| 6 --> | 6 --> |
| 7 <link rel="import" href="/tracing/base/quad.html"> | 7 <link rel="import" href="/tracing/base/math/quad.html"> |
| 8 <link rel="import" href="/tracing/base/rect.html"> | 8 <link rel="import" href="/tracing/base/math/rect.html"> |
| 9 <script> | 9 <script> |
| 10 'use strict'; | 10 'use strict'; |
| 11 | 11 |
| 12 function assertQuadEquals(a, b, opt_message) { | 12 function assertQuadEquals(a, b, opt_message) { |
| 13 var ok = true; | 13 var ok = true; |
| 14 ok &= a.p1[0] === b.p1[0] && a.p1[1] === b.p1[1]; | 14 ok &= a.p1[0] === b.p1[0] && a.p1[1] === b.p1[1]; |
| 15 ok &= a.p2[0] === b.p2[0] && a.p2[1] === b.p2[1]; | 15 ok &= a.p2[0] === b.p2[0] && a.p2[1] === b.p2[1]; |
| 16 ok &= a.p3[0] === b.p3[0] && a.p3[1] === b.p3[1]; | 16 ok &= a.p3[0] === b.p3[0] && a.p3[1] === b.p3[1]; |
| 17 ok &= a.p4[0] === b.p4[0] && a.p4[1] === b.p4[1]; | 17 ok &= a.p4[0] === b.p4[0] && a.p4[1] === b.p4[1]; |
| 18 if (ok) | 18 if (ok) |
| 19 return; | 19 return; |
| 20 var message = opt_message || 'Expected "' + a.toString() + | 20 var message = opt_message || 'Expected "' + a.toString() + |
| 21 '", got "' + b.toString() + '"'; | 21 '", got "' + b.toString() + '"'; |
| 22 assert.fail(a, b, message); | 22 assert.fail(a, b, message); |
| 23 } | 23 } |
| 24 | 24 |
| 25 tr.b.unittest.testSuite(function() { | 25 tr.b.unittest.testSuite(function() { |
| 26 test('pointInTri', function() { | 26 test('pointInTri', function() { |
| 27 var res = tr.b.pointInTriangle2( | 27 var res = tr.b.math.pointInTriangle2( |
| 28 [0.25, 0.25], | 28 [0.25, 0.25], |
| 29 [0, 0], | 29 [0, 0], |
| 30 [1, 0], | 30 [1, 0], |
| 31 [0, 1]); | 31 [0, 1]); |
| 32 assert.isTrue(res); | 32 assert.isTrue(res); |
| 33 }); | 33 }); |
| 34 | 34 |
| 35 test('pointNotInTri', function() { | 35 test('pointNotInTri', function() { |
| 36 var res = tr.b.pointInTriangle2( | 36 var res = tr.b.math.pointInTriangle2( |
| 37 [0.75, 0.75], | 37 [0.75, 0.75], |
| 38 [0, 0], | 38 [0, 0], |
| 39 [1, 0], | 39 [1, 0], |
| 40 [0, 1]); | 40 [0, 1]); |
| 41 assert.isFalse(res); | 41 assert.isFalse(res); |
| 42 }); | 42 }); |
| 43 | 43 |
| 44 test('pointInside', function() { | 44 test('pointInside', function() { |
| 45 var q = tr.b.Quad.from4Vecs([0, 0], | 45 var q = tr.b.math.Quad.from4Vecs([0, 0], |
| 46 [1, 0], | 46 [1, 0], |
| 47 [1, 1], | 47 [1, 1], |
| 48 [0, 1]); | 48 [0, 1]); |
| 49 var res = q.pointInside([0.5, 0.5]); | 49 var res = q.pointInside([0.5, 0.5]); |
| 50 assert.isTrue(res); | 50 assert.isTrue(res); |
| 51 }); | 51 }); |
| 52 | 52 |
| 53 test('pointNotInQuad', function() { | 53 test('pointNotInQuad', function() { |
| 54 var q = tr.b.Quad.from4Vecs([0, 0], | 54 var q = tr.b.math.Quad.from4Vecs([0, 0], |
| 55 [1, 0], | 55 [1, 0], |
| 56 [1, 1], | 56 [1, 1], |
| 57 [0, 1]); | 57 [0, 1]); |
| 58 var res = q.pointInside([1.5, 0.5]); | 58 var res = q.pointInside([1.5, 0.5]); |
| 59 assert.isFalse(res); | 59 assert.isFalse(res); |
| 60 }); | 60 }); |
| 61 | 61 |
| 62 test('isRectangle', function() { | 62 test('isRectangle', function() { |
| 63 assert.isTrue(tr.b.Quad.fromXYWH(0, 0, 10, 10).isRectangle()); | 63 assert.isTrue(tr.b.math.Quad.fromXYWH(0, 0, 10, 10).isRectangle()); |
| 64 assert.isTrue(tr.b.Quad.fromXYWH(-10, -10, 5, 5).isRectangle()); | 64 assert.isTrue(tr.b.math.Quad.fromXYWH(-10, -10, 5, 5).isRectangle()); |
| 65 assert.isTrue(tr.b.Quad.fromXYWH(-10, -10, 20, 20).isRectangle()); | 65 assert.isTrue(tr.b.math.Quad.fromXYWH(-10, -10, 20, 20).isRectangle()); |
| 66 assert.isTrue(tr.b.Quad.fromXYWH(-10, 10, 5, 5).isRectangle()); | 66 assert.isTrue(tr.b.math.Quad.fromXYWH(-10, 10, 5, 5).isRectangle()); |
| 67 | 67 |
| 68 assert.isFalse(tr.b.Quad.fromXYWH(0, 0, -10, -10).isRectangle()); | 68 assert.isFalse(tr.b.math.Quad.fromXYWH(0, 0, -10, -10).isRectangle()); |
| 69 assert.isFalse( | 69 assert.isFalse( |
| 70 tr.b.Quad.from8Array([0, 1, 2, 3, 4, 5, 6, 7]).isRectangle()); | 70 tr.b.math.Quad.from8Array([0, 1, 2, 3, 4, 5, 6, 7]).isRectangle()); |
| 71 assert.isFalse( | 71 assert.isFalse( |
| 72 tr.b.Quad.from8Array([0, 0, 0, 5, 5, 5, 0, 0]).isRectangle()); | 72 tr.b.math.Quad.from8Array([0, 0, 0, 5, 5, 5, 0, 0]).isRectangle()); |
| 73 }); | 73 }); |
| 74 | 74 |
| 75 test('projectUnitRect', function() { | 75 test('projectUnitRect', function() { |
| 76 var container = tr.b.Quad.fromXYWH(0, 0, 10, 10); | 76 var container = tr.b.math.Quad.fromXYWH(0, 0, 10, 10); |
| 77 var srcRect = tr.b.Rect.fromXYWH(0.1, 0.8, 0.8, 0.1); | 77 var srcRect = tr.b.math.Rect.fromXYWH(0.1, 0.8, 0.8, 0.1); |
| 78 var expectedRect = srcRect.scale(10); | 78 var expectedRect = srcRect.scale(10); |
| 79 | 79 |
| 80 var q = new tr.b.Quad(); | 80 var q = new tr.b.math.Quad(); |
| 81 container.projectUnitRectFast(q, srcRect); | 81 container.projectUnitRectFast(q, srcRect); |
| 82 | 82 |
| 83 assertQuadEquals(tr.b.Quad.fromRect(expectedRect), q); | 83 assertQuadEquals(tr.b.math.Quad.fromRect(expectedRect), q); |
| 84 }); | 84 }); |
| 85 | 85 |
| 86 test('projectUnitRectOntoUnitQuad', function() { | 86 test('projectUnitRectOntoUnitQuad', function() { |
| 87 var container = tr.b.Quad.fromXYWH(0, 0, 1, 1); | 87 var container = tr.b.math.Quad.fromXYWH(0, 0, 1, 1); |
| 88 var srcRect = tr.b.Rect.fromXYWH(0.0, 0, 1, 1); | 88 var srcRect = tr.b.math.Rect.fromXYWH(0.0, 0, 1, 1); |
| 89 var expectedRect = srcRect; | 89 var expectedRect = srcRect; |
| 90 | 90 |
| 91 var q = new tr.b.Quad(); | 91 var q = new tr.b.math.Quad(); |
| 92 container.projectUnitRectFast(q, srcRect); | 92 container.projectUnitRectFast(q, srcRect); |
| 93 | 93 |
| 94 assertQuadEquals(tr.b.Quad.fromRect(expectedRect), q); | 94 assertQuadEquals(tr.b.math.Quad.fromRect(expectedRect), q); |
| 95 }); | 95 }); |
| 96 | 96 |
| 97 test('projectUnitRectOntoSizeTwoQuad', function() { | 97 test('projectUnitRectOntoSizeTwoQuad', function() { |
| 98 var container = tr.b.Quad.fromXYWH(0, 0, 2, 2); | 98 var container = tr.b.math.Quad.fromXYWH(0, 0, 2, 2); |
| 99 var srcRect = tr.b.Rect.fromXYWH(0.0, 0, 1, 1); | 99 var srcRect = tr.b.math.Rect.fromXYWH(0.0, 0, 1, 1); |
| 100 var expectedRect = srcRect.scale(2); | 100 var expectedRect = srcRect.scale(2); |
| 101 | 101 |
| 102 var q = new tr.b.Quad(); | 102 var q = new tr.b.math.Quad(); |
| 103 container.projectUnitRectFast(q, srcRect); | 103 container.projectUnitRectFast(q, srcRect); |
| 104 | 104 |
| 105 assertQuadEquals(tr.b.Quad.fromRect(expectedRect), q); | 105 assertQuadEquals(tr.b.math.Quad.fromRect(expectedRect), q); |
| 106 }); | 106 }); |
| 107 | 107 |
| 108 test('projectUnitRectOntoTranslatedQuad', function() { | 108 test('projectUnitRectOntoTranslatedQuad', function() { |
| 109 var container = tr.b.Quad.fromXYWH(1, 1, 1, 1); | 109 var container = tr.b.math.Quad.fromXYWH(1, 1, 1, 1); |
| 110 var srcRect = tr.b.Rect.fromXYWH(0.0, 0, 1, 1); | 110 var srcRect = tr.b.math.Rect.fromXYWH(0.0, 0, 1, 1); |
| 111 var expectedRect = srcRect.translate([1, 1]); | 111 var expectedRect = srcRect.translate([1, 1]); |
| 112 | 112 |
| 113 var q = new tr.b.Quad(); | 113 var q = new tr.b.math.Quad(); |
| 114 container.projectUnitRectFast(q, srcRect); | 114 container.projectUnitRectFast(q, srcRect); |
| 115 | 115 |
| 116 assertQuadEquals(tr.b.Quad.fromRect(expectedRect), q); | 116 assertQuadEquals(tr.b.math.Quad.fromRect(expectedRect), q); |
| 117 }); | 117 }); |
| 118 | 118 |
| 119 test('projectShrunkUnitRectOntoUnitQuad', function() { | 119 test('projectShrunkUnitRectOntoUnitQuad', function() { |
| 120 var container = tr.b.Quad.fromXYWH(0, 0, 1, 1); | 120 var container = tr.b.math.Quad.fromXYWH(0, 0, 1, 1); |
| 121 var srcRect = tr.b.Rect.fromXYWH(0.1, 0.1, 0.8, 0.8); | 121 var srcRect = tr.b.math.Rect.fromXYWH(0.1, 0.1, 0.8, 0.8); |
| 122 var expectedRect = srcRect; | 122 var expectedRect = srcRect; |
| 123 | 123 |
| 124 var q = new tr.b.Quad(); | 124 var q = new tr.b.math.Quad(); |
| 125 container.projectUnitRectFast(q, srcRect); | 125 container.projectUnitRectFast(q, srcRect); |
| 126 | 126 |
| 127 assertQuadEquals(tr.b.Quad.fromRect(expectedRect), q); | 127 assertQuadEquals(tr.b.math.Quad.fromRect(expectedRect), q); |
| 128 }); | 128 }); |
| 129 }); | 129 }); |
| 130 </script> | 130 </script> |
| OLD | NEW |