(a:Array<number>, b:Array<number>)
| 171 | } |
| 172 | |
| 173 | private dotProduct(a:Array<number>, b:Array<number>):Array<number> { |
| 174 | if (a.length !== 16 || b.length !== 16) { |
| 175 | throw new Error('Matrix3D dot product expects a 4xr Matrix3D'); |
| 176 | } |
| 177 | var res:Array<number> = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; |
| 178 | for (var i = 0; i < 4; i++) { |
| 179 | for (var j = 0; j < 4; j++) { |
| 180 | for (var k = 0; k < 4; k++) { |
| 181 | res[i * 4 + j] += a[i * 4 + k] * b[k * 4 + j]; |
| 182 | } |
| 183 | } |
| 184 | } |
| 185 | return res; |
| 186 | } |
| 187 | |
| 188 | private rotationMatrix(angle:number, axis:Vector3D):Array<number> { |
| 189 | var sT:number = Math.sin(angle), cT:number = Math.cos(angle); |
no outgoing calls
no test coverage detected