1- import mat4X4 from 'gl-mat4' ;
1+ // Inline 4x4 matrix operations (replaces gl-mat4 dependency)
2+ function mat4Multiply ( out , a , b ) {
3+ var a00 = a [ 0 ] , a01 = a [ 1 ] , a02 = a [ 2 ] , a03 = a [ 3 ] ;
4+ var a10 = a [ 4 ] , a11 = a [ 5 ] , a12 = a [ 6 ] , a13 = a [ 7 ] ;
5+ var a20 = a [ 8 ] , a21 = a [ 9 ] , a22 = a [ 10 ] , a23 = a [ 11 ] ;
6+ var a30 = a [ 12 ] , a31 = a [ 13 ] , a32 = a [ 14 ] , a33 = a [ 15 ] ;
7+ var b0 , b1 , b2 , b3 ;
8+ b0 = b [ 0 ] ; b1 = b [ 1 ] ; b2 = b [ 2 ] ; b3 = b [ 3 ] ;
9+ out [ 0 ] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30 ;
10+ out [ 1 ] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31 ;
11+ out [ 2 ] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32 ;
12+ out [ 3 ] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33 ;
13+ b0 = b [ 4 ] ; b1 = b [ 5 ] ; b2 = b [ 6 ] ; b3 = b [ 7 ] ;
14+ out [ 4 ] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30 ;
15+ out [ 5 ] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31 ;
16+ out [ 6 ] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32 ;
17+ out [ 7 ] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33 ;
18+ b0 = b [ 8 ] ; b1 = b [ 9 ] ; b2 = b [ 10 ] ; b3 = b [ 11 ] ;
19+ out [ 8 ] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30 ;
20+ out [ 9 ] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31 ;
21+ out [ 10 ] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32 ;
22+ out [ 11 ] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33 ;
23+ b0 = b [ 12 ] ; b1 = b [ 13 ] ; b2 = b [ 14 ] ; b3 = b [ 15 ] ;
24+ out [ 12 ] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30 ;
25+ out [ 13 ] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31 ;
26+ out [ 14 ] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32 ;
27+ out [ 15 ] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33 ;
28+ return out ;
29+ }
30+
31+ function mat4Invert ( out , a ) {
32+ var a00 = a [ 0 ] , a01 = a [ 1 ] , a02 = a [ 2 ] , a03 = a [ 3 ] ;
33+ var a10 = a [ 4 ] , a11 = a [ 5 ] , a12 = a [ 6 ] , a13 = a [ 7 ] ;
34+ var a20 = a [ 8 ] , a21 = a [ 9 ] , a22 = a [ 10 ] , a23 = a [ 11 ] ;
35+ var a30 = a [ 12 ] , a31 = a [ 13 ] , a32 = a [ 14 ] , a33 = a [ 15 ] ;
36+ var b00 = a00 * a11 - a01 * a10 ;
37+ var b01 = a00 * a12 - a02 * a10 ;
38+ var b02 = a00 * a13 - a03 * a10 ;
39+ var b03 = a01 * a12 - a02 * a11 ;
40+ var b04 = a01 * a13 - a03 * a11 ;
41+ var b05 = a02 * a13 - a03 * a12 ;
42+ var b06 = a20 * a31 - a21 * a30 ;
43+ var b07 = a20 * a32 - a22 * a30 ;
44+ var b08 = a20 * a33 - a23 * a30 ;
45+ var b09 = a21 * a32 - a22 * a31 ;
46+ var b10 = a21 * a33 - a23 * a31 ;
47+ var b11 = a22 * a33 - a23 * a32 ;
48+ var det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06 ;
49+ if ( ! det ) return null ;
50+ det = 1.0 / det ;
51+ out [ 0 ] = ( a11 * b11 - a12 * b10 + a13 * b09 ) * det ;
52+ out [ 1 ] = ( a02 * b10 - a01 * b11 - a03 * b09 ) * det ;
53+ out [ 2 ] = ( a31 * b05 - a32 * b04 + a33 * b03 ) * det ;
54+ out [ 3 ] = ( a22 * b04 - a21 * b05 - a23 * b03 ) * det ;
55+ out [ 4 ] = ( a12 * b08 - a10 * b11 - a13 * b07 ) * det ;
56+ out [ 5 ] = ( a00 * b11 - a02 * b08 + a03 * b07 ) * det ;
57+ out [ 6 ] = ( a32 * b02 - a30 * b05 - a33 * b01 ) * det ;
58+ out [ 7 ] = ( a20 * b05 - a22 * b02 + a23 * b01 ) * det ;
59+ out [ 8 ] = ( a10 * b10 - a11 * b08 + a13 * b06 ) * det ;
60+ out [ 9 ] = ( a01 * b08 - a00 * b10 - a03 * b06 ) * det ;
61+ out [ 10 ] = ( a30 * b04 - a31 * b02 + a33 * b00 ) * det ;
62+ out [ 11 ] = ( a21 * b02 - a20 * b04 - a23 * b00 ) * det ;
63+ out [ 12 ] = ( a11 * b07 - a10 * b09 - a12 * b06 ) * det ;
64+ out [ 13 ] = ( a00 * b09 - a01 * b07 + a02 * b06 ) * det ;
65+ out [ 14 ] = ( a31 * b01 - a30 * b03 - a32 * b00 ) * det ;
66+ out [ 15 ] = ( a20 * b03 - a21 * b01 + a22 * b00 ) * det ;
67+ return out ;
68+ }
269
370export var init2dArray = function ( rowLength , colLength ) {
471 var array = new Array ( rowLength ) ;
@@ -115,7 +182,7 @@ export var convertCssMatrix = function(m) {
115182
116183export var inverseTransformMatrix = function ( m ) {
117184 var out = [ ] ;
118- mat4X4 . invert ( out , m ) ;
185+ mat4Invert ( out , m ) ;
119186 return [
120187 [ out [ 0 ] , out [ 1 ] , out [ 2 ] , out [ 3 ] ] ,
121188 [ out [ 4 ] , out [ 5 ] , out [ 6 ] , out [ 7 ] ] ,
@@ -124,4 +191,5 @@ export var inverseTransformMatrix = function(m) {
124191 ] ;
125192} ;
126193
194+ export { mat4Multiply , mat4Invert } ;
127195export default { init2dArray, transposeRagged, dot, translationMatrix, rotationMatrix, rotationXYMatrix, apply3DTransform, apply2DTransform, apply2DTransform2, convertCssMatrix, inverseTransformMatrix } ;
0 commit comments