@@ -2,73 +2,25 @@ var snabbtjs = snabbtjs || {};
2
2
3
3
snabbtjs . assigned_matrix_multiplication = function ( a , b , res ) {
4
4
// Unrolled loop
5
- res [ 0 ] = a [ 0 ] * b [ 0 ] +
6
- a [ 1 ] * b [ 4 ] +
7
- a [ 2 ] * b [ 8 ] +
8
- a [ 3 ] * b [ 12 ] ;
9
- res [ 1 ] = a [ 0 ] * b [ 1 ] +
10
- a [ 1 ] * b [ 5 ] +
11
- a [ 2 ] * b [ 9 ] +
12
- a [ 3 ] * b [ 13 ] ;
13
- res [ 2 ] = a [ 0 ] * b [ 2 ] +
14
- a [ 1 ] * b [ 6 ] +
15
- a [ 2 ] * b [ 10 ] +
16
- a [ 3 ] * b [ 14 ] ;
17
- res [ 3 ] = a [ 0 ] * b [ 3 ] +
18
- a [ 1 ] * b [ 7 ] +
19
- a [ 2 ] * b [ 11 ] +
20
- a [ 3 ] * b [ 15 ] ;
21
-
22
- res [ 4 ] = a [ 4 ] * b [ 0 ] +
23
- a [ 5 ] * b [ 4 ] +
24
- a [ 6 ] * b [ 8 ] +
25
- a [ 7 ] * b [ 12 ] ;
26
- res [ 5 ] = a [ 4 ] * b [ 1 ] +
27
- a [ 5 ] * b [ 5 ] +
28
- a [ 6 ] * b [ 9 ] +
29
- a [ 7 ] * b [ 13 ] ;
30
- res [ 6 ] = a [ 4 ] * b [ 2 ] +
31
- a [ 5 ] * b [ 6 ] +
32
- a [ 6 ] * b [ 10 ] +
33
- a [ 7 ] * b [ 14 ] ;
34
- res [ 7 ] = a [ 4 ] * b [ 3 ] +
35
- a [ 5 ] * b [ 7 ] +
36
- a [ 6 ] * b [ 11 ] +
37
- a [ 7 ] * b [ 15 ] ;
38
-
39
- res [ 8 ] = a [ 8 ] * b [ 0 ] +
40
- a [ 9 ] * b [ 4 ] +
41
- a [ 10 ] * b [ 8 ] +
42
- a [ 11 ] * b [ 12 ] ;
43
- res [ 9 ] = a [ 8 ] * b [ 1 ] +
44
- a [ 9 ] * b [ 5 ] +
45
- a [ 10 ] * b [ 9 ] +
46
- a [ 11 ] * b [ 13 ] ;
47
- res [ 10 ] = a [ 8 ] * b [ 2 ] +
48
- a [ 9 ] * b [ 6 ] +
49
- a [ 10 ] * b [ 10 ] +
50
- a [ 11 ] * b [ 14 ] ;
51
- res [ 11 ] = a [ 8 ] * b [ 3 ] +
52
- a [ 9 ] * b [ 7 ] +
53
- a [ 10 ] * b [ 11 ] +
54
- a [ 11 ] * b [ 15 ] ;
55
-
56
- res [ 12 ] = a [ 12 ] * b [ 0 ] +
57
- a [ 13 ] * b [ 4 ] +
58
- a [ 14 ] * b [ 8 ] +
59
- a [ 15 ] * b [ 12 ] ;
60
- res [ 13 ] = a [ 12 ] * b [ 1 ] +
61
- a [ 13 ] * b [ 5 ] +
62
- a [ 14 ] * b [ 9 ] +
63
- a [ 15 ] * b [ 13 ] ;
64
- res [ 14 ] = a [ 12 ] * b [ 2 ] +
65
- a [ 13 ] * b [ 6 ] +
66
- a [ 14 ] * b [ 10 ] +
67
- a [ 15 ] * b [ 14 ] ;
68
- res [ 15 ] = a [ 12 ] * b [ 3 ] +
69
- a [ 13 ] * b [ 7 ] +
70
- a [ 14 ] * b [ 11 ] +
71
- a [ 15 ] * b [ 15 ] ;
5
+ res [ 0 ] = a [ 0 ] * b [ 0 ] + a [ 1 ] * b [ 4 ] + a [ 2 ] * b [ 8 ] + a [ 3 ] * b [ 12 ] ;
6
+ res [ 1 ] = a [ 0 ] * b [ 1 ] + a [ 1 ] * b [ 5 ] + a [ 2 ] * b [ 9 ] + a [ 3 ] * b [ 13 ] ;
7
+ res [ 2 ] = a [ 0 ] * b [ 2 ] + a [ 1 ] * b [ 6 ] + a [ 2 ] * b [ 10 ] + a [ 3 ] * b [ 14 ] ;
8
+ res [ 3 ] = a [ 0 ] * b [ 3 ] + a [ 1 ] * b [ 7 ] + a [ 2 ] * b [ 11 ] + a [ 3 ] * b [ 15 ] ;
9
+
10
+ res [ 4 ] = a [ 4 ] * b [ 0 ] + a [ 5 ] * b [ 4 ] + a [ 6 ] * b [ 8 ] + a [ 7 ] * b [ 12 ] ;
11
+ res [ 5 ] = a [ 4 ] * b [ 1 ] + a [ 5 ] * b [ 5 ] + a [ 6 ] * b [ 9 ] + a [ 7 ] * b [ 13 ] ;
12
+ res [ 6 ] = a [ 4 ] * b [ 2 ] + a [ 5 ] * b [ 6 ] + a [ 6 ] * b [ 10 ] + a [ 7 ] * b [ 14 ] ;
13
+ res [ 7 ] = a [ 4 ] * b [ 3 ] + a [ 5 ] * b [ 7 ] + a [ 6 ] * b [ 11 ] + a [ 7 ] * b [ 15 ] ;
14
+
15
+ res [ 8 ] = a [ 8 ] * b [ 0 ] + a [ 9 ] * b [ 4 ] + a [ 10 ] * b [ 8 ] + a [ 11 ] * b [ 12 ] ;
16
+ res [ 9 ] = a [ 8 ] * b [ 1 ] + a [ 9 ] * b [ 5 ] + a [ 10 ] * b [ 9 ] + a [ 11 ] * b [ 13 ] ;
17
+ res [ 10 ] = a [ 8 ] * b [ 2 ] + a [ 9 ] * b [ 6 ] + a [ 10 ] * b [ 10 ] + a [ 11 ] * b [ 14 ] ;
18
+ res [ 11 ] = a [ 8 ] * b [ 3 ] + a [ 9 ] * b [ 7 ] + a [ 10 ] * b [ 11 ] + a [ 11 ] * b [ 15 ] ;
19
+
20
+ res [ 12 ] = a [ 12 ] * b [ 0 ] + a [ 13 ] * b [ 4 ] + a [ 14 ] * b [ 8 ] + a [ 15 ] * b [ 12 ] ;
21
+ res [ 13 ] = a [ 12 ] * b [ 1 ] + a [ 13 ] * b [ 5 ] + a [ 14 ] * b [ 9 ] + a [ 15 ] * b [ 13 ] ;
22
+ res [ 14 ] = a [ 12 ] * b [ 2 ] + a [ 13 ] * b [ 6 ] + a [ 14 ] * b [ 10 ] + a [ 15 ] * b [ 14 ] ;
23
+ res [ 15 ] = a [ 12 ] * b [ 3 ] + a [ 13 ] * b [ 7 ] + a [ 14 ] * b [ 11 ] + a [ 15 ] * b [ 15 ] ;
72
24
73
25
return res ;
74
26
} ;
@@ -112,58 +64,52 @@ snabbtjs.mult = function(a, b) {
112
64
return m ;
113
65
} ;
114
66
115
- snabbtjs . rotX = function ( rad ) {
116
- var m = new Float32Array ( 16 ) ;
117
- m [ 0 ] = 1 ; m [ 1 ] = 0 ; m [ 2 ] = 0 ; m [ 3 ] = 0 ;
118
- m [ 4 ] = 0 ; m [ 5 ] = Math . cos ( rad ) ; m [ 6 ] = - Math . sin ( rad ) ; m [ 7 ] = 0 ;
119
- m [ 8 ] = 0 ; m [ 9 ] = Math . sin ( rad ) ; m [ 10 ] = Math . cos ( rad ) ; m [ 11 ] = 0 ;
120
- m [ 12 ] = 0 ; m [ 13 ] = 0 ; m [ 14 ] = 0 ; m [ 15 ] = 1 ;
121
- return m ;
67
+ snabbtjs . trans = function ( x , y , z ) {
68
+ return new Float32Array ( [
69
+ 1 , 0 , 0 , 0 ,
70
+ 0 , 1 , 0 , 0 ,
71
+ 0 , 0 , 1 , 0 ,
72
+ x , y , z , 1
73
+ ] ) ;
122
74
} ;
123
75
124
- snabbtjs . assign_rotX = function ( m , rad ) {
125
- m [ 0 ] = 1 ; m [ 1 ] = 0 ; m [ 2 ] = 0 ; m [ 3 ] = 0 ;
126
- m [ 4 ] = 0 ; m [ 5 ] = Math . cos ( rad ) ; m [ 6 ] = - Math . sin ( rad ) ; m [ 7 ] = 0 ;
127
- m [ 8 ] = 0 ; m [ 9 ] = Math . sin ( rad ) ; m [ 10 ] = Math . cos ( rad ) ; m [ 11 ] = 0 ;
128
- m [ 12 ] = 0 ; m [ 13 ] = 0 ; m [ 14 ] = 0 ; m [ 15 ] = 1 ;
129
- return m ;
76
+ snabbtjs . rotX = function ( rad ) {
77
+ return new Float32Array ( [
78
+ 1 , 0 , 0 , 0 ,
79
+ 0 , Math . cos ( rad ) , - Math . sin ( rad ) , 0 ,
80
+ 0 , Math . sin ( rad ) , Math . cos ( rad ) , 0 ,
81
+ 0 , 0 , 0 , 1
82
+ ] ) ;
130
83
} ;
131
84
132
85
snabbtjs . rotY = function ( rad ) {
133
- var m = new Float32Array ( 16 ) ;
134
- m [ 0 ] = Math . cos ( rad ) ; m [ 1 ] = 0 ; m [ 2 ] = Math . sin ( rad ) ; m [ 3 ] = 0 ;
135
- m [ 4 ] = 0 ; m [ 5 ] = 1 ; m [ 6 ] = 0 ; m [ 7 ] = 0 ;
136
- m [ 8 ] = - Math . sin ( rad ) ; m [ 9 ] = 0 ; m [ 10 ] = Math . cos ( rad ) ; m [ 11 ] = 0 ;
137
- m [ 12 ] = 0 ; m [ 13 ] = 0 ; m [ 14 ] = 0 ; m [ 15 ] = 1 ;
138
- return m ;
139
- } ;
140
-
141
- snabbtjs . assign_rotY = function ( m , rad ) {
142
- m [ 0 ] = Math . cos ( rad ) ; m [ 1 ] = 0 ; m [ 2 ] = Math . sin ( rad ) ; m [ 3 ] = 0 ;
143
- m [ 4 ] = 0 ; m [ 5 ] = 1 ; m [ 6 ] = 0 ; m [ 7 ] = 0 ;
144
- m [ 8 ] = - Math . sin ( rad ) ; m [ 9 ] = 0 ; m [ 10 ] = Math . cos ( rad ) ; m [ 11 ] = 0 ;
145
- m [ 12 ] = 0 ; m [ 13 ] = 0 ; m [ 14 ] = 0 ; m [ 15 ] = 1 ;
146
- return m ;
86
+ return new Float32Array ( [
87
+ Math . cos ( rad ) , 0 , Math . sin ( rad ) , 0 ,
88
+ 0 , 1 , 0 , 0 ,
89
+ - Math . sin ( rad ) , 0 , Math . cos ( rad ) , 0 ,
90
+ 0 , 0 , 0 , 1
91
+ ] ) ;
147
92
} ;
148
93
149
94
snabbtjs . rotZ = function ( rad ) {
150
- var m = new Float32Array ( 16 ) ;
151
- m [ 0 ] = Math . cos ( rad ) ; m [ 1 ] = - Math . sin ( rad ) ; m [ 2 ] = 0 ; m [ 3 ] = 0 ;
152
- m [ 4 ] = Math . sin ( rad ) ; m [ 5 ] = Math . cos ( rad ) ; m [ 6 ] = 0 ; m [ 7 ] = 0 ;
153
- m [ 8 ] = 0 ; m [ 9 ] = 0 ; m [ 10 ] = 1 ; m [ 11 ] = 0 ;
154
- m [ 12 ] = 0 ; m [ 13 ] = 0 ; m [ 14 ] = 0 ; m [ 15 ] = 1 ;
155
- return m ;
95
+ return new Float32Array ( [
96
+ Math . cos ( rad ) , - Math . sin ( rad ) , 0 , 0 ,
97
+ Math . sin ( rad ) , Math . cos ( rad ) , 0 , 0 ,
98
+ 0 , 0 , 1 , 0 ,
99
+ 0 , 0 , 0 , 1
100
+ ] ) ;
156
101
} ;
157
102
158
- snabbtjs . trans = function ( x , y , z ) {
159
- var m = new Float32Array ( 16 ) ;
160
- m [ 0 ] = 1 ; m [ 1 ] = 0 ; m [ 2 ] = 0 ; m [ 3 ] = 0 ;
161
- m [ 4 ] = 0 ; m [ 5 ] = 1 ; m [ 6 ] = 0 ; m [ 7 ] = 0 ;
162
- m [ 8 ] = 0 ; m [ 9 ] = 0 ; m [ 10 ] = 1 ; m [ 11 ] = 0 ;
163
- m [ 12 ] = x ; m [ 13 ] = y ; m [ 14 ] = z ; m [ 15 ] = 1 ;
164
- return m ;
103
+ snabbtjs . skew = function ( ax , ay ) {
104
+ return new Float32Array ( [
105
+ 1 , Math . tan ( ax ) , 0 , 0 ,
106
+ Math . tan ( ay ) , 1 , 0 , 0 ,
107
+ 0 , 0 , 1 , 0 ,
108
+ 0 , 0 , 0 , 1 ,
109
+ ] ) ;
165
110
} ;
166
111
112
+
167
113
snabbtjs . scale = function ( x , y ) {
168
114
return new Float32Array ( [
169
115
x , 0 , 0 , 0 ,
@@ -187,21 +133,9 @@ snabbtjs.set_css = function(el, matrix) {
187
133
for ( var i = 0 ; i < el . length ; ++ i ) {
188
134
el [ i ] . style . webkitTransform = snabbtjs . mat_to_css ( matrix ) ;
189
135
el [ i ] . style . transform = snabbtjs . mat_to_css ( matrix ) ;
190
- //if(state.width !== undefined)
191
- // el[i].style.width = state.width + 'px';
192
- //if(state.height !== undefined)
193
- // el[i].style.height = state.height + 'px';
194
- //if(state.opacity !== undefined)
195
- // el[i].style.opacity = state.opacity;
196
136
}
197
137
} else {
198
138
el . style . webkitTransform = snabbtjs . mat_to_css ( matrix ) ;
199
139
el . style . transform = snabbtjs . mat_to_css ( matrix ) ;
200
- //if(state.width !== undefined)
201
- // el.style.width = state.width + 'px';
202
- //if(state.height !== undefined)
203
- // el.style.height = state.height + 'px';
204
- //if(state.opacity !== undefined)
205
- // el.style.opacity = state.opacity;
206
140
}
207
141
} ;
0 commit comments