private FBXVector GetEulerXYZ(CSGGroup group, float time) { CSGMatrix transformLH = new CSGMatrix(); group.GetTransform(group.Parent, time, ref transformLH); var transformRH = ConvertTransformToRightHanded_ThisLittleBitTookFourDaysToFigureOut(transformLH); FBXMatrix matrix = new FBXMatrix( transformRH.m11, transformRH.m12, transformRH.m13, transformRH.m14, transformRH.m21, transformRH.m22, transformRH.m23, transformRH.m24, transformRH.m31, transformRH.m32, transformRH.m33, transformRH.m34, transformRH.m41, transformRH.m42, transformRH.m43, transformRH.m44); FBXQuaternion fbxQuaternionRH = matrix.GetQuaternion(); var eulerXYZRH = fbxQuaternionRH.DecomposeSphericalXYZ(); return(eulerXYZRH); }
private Matrix T(FBXMatrix m) { Matrix m2 = new Matrix( (float)m.mData[0].x, (float)m.mData[0].y, (float)m.mData[0].z, (float)m.mData[0].w, (float)m.mData[1].x, (float)m.mData[1].y, (float)m.mData[1].z, (float)m.mData[1].w, (float)m.mData[2].x, (float)m.mData[2].y, (float)m.mData[2].z, (float)m.mData[2].w, (float)m.mData[3].x, (float)m.mData[3].y, (float)m.mData[3].z, (float)m.mData[3].w ); return(m2); }
static Matrix FbxsdkConvertMatrix(FBXMatrix input) { var output = new Matrix(); output.M11 = input.M11; output.M12 = input.M12; output.M13 = input.M13; output.M14 = input.M14; output.M21 = input.M21; output.M22 = input.M22; output.M23 = input.M23; output.M24 = input.M24; output.M31 = input.M31; output.M32 = input.M32; output.M33 = input.M33; output.M34 = input.M34; output.M41 = input.M41; output.M42 = input.M42; output.M43 = input.M43; output.M44 = input.M44; return output; }