And here's the code that converts the quat described in the b3d file to a matrix.
This was converted from mark's own ms3d b3d saver.
This was converted from mark's own ms3d b3d saver.
Method ToMatrix:TMatrix() Local q:Float[4] q[0] = w q[1] = x q[2] = y q[3] = z Local xx#=q[1]*q[1] Local yy#=q[2]*q[2] Local zz#=q[3]*q[3]; Local xy#=q[1]*q[2] Local xz#=q[1]*q[3] Local yz#=q[2]*q[3]; Local wx#=q[0]*q[1] Local wy#=q[0]*q[2] Local wz#=q[0]*q[3]; Local mat:Float[16] Local tmat:TMatrix = tmatrix.create() mat[0]=1-2*(yy+zz) mat[1]= 2*(xy-wz) mat[2]= 2*(xz+wy); mat[3]= 2*(xy+wz) mat[4]=1-2*(xx+zz) mat[5]= 2*(yz-wx); mat[6]= 2*(xz-wy) mat[7]= 2*(yz+wx) mat[8]=1-2*(xx+yy); Local ind=0 For Local j=0 To 2 For Local k=0 To 2 tmat.setelement( k,j,mat[ind] ) ind:+1 Next Next Return tmat End Method