UNPKG

load-collada-dae

Version:

Load the WebGL graphics buffer data from a collada .dae model and return a draw command that accepts options

31 lines (24 loc) 918 B
var mat3FromMat4 = require('gl-mat3/from-mat4') var quatMultiply = require('gl-quat/multiply') var quatFromMat3 = require('gl-quat/fromMat3') var quatScale = require('gl-quat/scale') module.exports = keyframesToDualQuats // collada-dae-parser exports joint matrices // here we convery them into dual quaternions function keyframesToDualQuats (jointMatrices) { var rotQuaternions = [] var transQuaternions = [] jointMatrices.forEach(function (joint, index) { // Create our dual quaternion var rotationMatrix = mat3FromMat4([], joint) var rotationQuat = quatFromMat3([], rotationMatrix) var transVec = [joint[12], joint[13], joint[14], 0] var transQuat = quatScale([], quatMultiply([], transVec, rotationQuat), 0.5) rotQuaternions.push(rotationQuat) transQuaternions.push(transQuat) }) return { rotQuaternions: rotQuaternions, transQuaternions: transQuaternions } }