Example #1
0
        public void Transform(TPONode node)
        {
            for (int i = 0; i < tmo.frames.Length; i++)
            {
                TMOMat mat = tmo.GetTMOMat(node.name, i);

                Matrix  m       = mat.m;
                Vector3 scaling = Vector3.Empty;
                Vector3 t       = TMOMat.DecomposeMatrix(ref m, out scaling);

                scaling.X *= (float)Math.Pow(node.Scaling.X, ratio);
                scaling.Y *= (float)Math.Pow(node.Scaling.Y, ratio);
                scaling.Z *= (float)Math.Pow(node.Scaling.Z, ratio);
                m         *= node.RotationMatrix(m, ratio);
                t         += node.Translation * ratio;

                mat.m = Matrix.Scaling(scaling) * m * Matrix.Translation(t);
            }
        }