Upstream version 5.34.98.0
[platform/framework/web/crosswalk.git] / src / third_party / trace-viewer / src / base / gl_matrix.js
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 'use strict';
6
7 base.requireRawScript('../third_party/gl-matrix/src/gl-matrix/common.js');
8 base.requireRawScript('../third_party/gl-matrix/src/gl-matrix/mat2d.js');
9 base.requireRawScript('../third_party/gl-matrix/src/gl-matrix/mat4.js');
10 base.requireRawScript('../third_party/gl-matrix/src/gl-matrix/vec2.js');
11 base.requireRawScript('../third_party/gl-matrix/src/gl-matrix/vec3.js');
12 base.requireRawScript('../third_party/gl-matrix/src/gl-matrix/vec4.js');
13
14 base.exportTo('base', function() {
15   var tmp_vec2 = vec2.create();
16   var tmp_vec2b = vec2.create();
17   var tmp_vec4 = vec4.create();
18   var tmp_mat2d = mat2d.create();
19
20   vec2.createFromArray = function(arr) {
21     if (arr.length != 2)
22       throw new Error('Should be length 2');
23     var v = vec2.create();
24     vec2.set(v, arr[0], arr[1]);
25     return v;
26   };
27
28   vec2.createXY = function(x, y) {
29     var v = vec2.create();
30     vec2.set(v, x, y);
31     return v;
32   };
33
34   vec2.toString = function(a) {
35     return '[' + a[0] + ', ' + a[1] + ']';
36   };
37
38   vec2.addTwoScaledUnitVectors = function(out, u1, scale1, u2, scale2) {
39     // out = u1 * scale1 + u2 * scale2
40     vec2.scale(tmp_vec2, u1, scale1);
41     vec2.scale(tmp_vec2b, u2, scale2);
42     vec2.add(out, tmp_vec2, tmp_vec2b);
43   }
44
45   vec3.createXYZ = function(x, y, z) {
46     var v = vec3.create();
47     vec3.set(v, x, y, z);
48     return v;
49   };
50
51   vec3.toString = function(a) {
52     return 'vec3(' + a[0] + ', ' + a[1] + ', ' + a[2] + ')';
53   }
54
55   mat2d.translateXY = function(out, x, y) {
56     vec2.set(tmp_vec2, x, y);
57     mat2d.translate(out, out, tmp_vec2);
58   }
59
60   mat2d.scaleXY = function(out, x, y) {
61     vec2.set(tmp_vec2, x, y);
62     mat2d.scale(out, out, tmp_vec2);
63   }
64
65   vec4.unitize = function(out, a) {
66     out[0] = a[0] / a[3];
67     out[1] = a[1] / a[3];
68     out[2] = a[2] / a[3];
69     out[3] = 1;
70     return out;
71   }
72
73   vec2.copyFromVec4 = function(out, a) {
74     vec4.unitize(tmp_vec4, a);
75     vec2.copy(out, tmp_vec4);
76   }
77
78   return {};
79 });