Beispiel #1
0
        private static JObject ConvertVertex(CliFbx.CVertex fv)
        {
            JObject jv = new JObject();

            jv.Add("Pos", ConvertVector3(fv.Position));
            jv.Add("Nor", ConvertVector3(fv.Normal));
            jv.Add("UV", ConvertVector2(fv.UV));

            int boneIndex = -1;

            if (fv.Weights.Count > 0)
            {
                boneIndex = fv.Weights[0].BlendingIndex;
            }
            jv.Add("BI", boneIndex);

            return(jv);
        }
Beispiel #2
0
        private static bool Equal(CliFbx.CVertex fv, JObject jv)
        {
            if (!float.Equals(jv["Pos"][0].Value <float>(), (float)fv.Position.X) ||
                !float.Equals(jv["Pos"][1].Value <float>(), (float)fv.Position.Y) ||
                !float.Equals(jv["Pos"][2].Value <float>(), (float)fv.Position.Z) ||
                !float.Equals(jv["Nor"][0].Value <float>(), (float)fv.Normal.X) ||
                !float.Equals(jv["Nor"][1].Value <float>(), (float)fv.Normal.Y) ||
                !float.Equals(jv["Nor"][2].Value <float>(), (float)fv.Normal.Z) ||
                !float.Equals(jv["UV"][0].Value <float>(), (float)fv.UV.X) ||
                !float.Equals(jv["UV"][1].Value <float>(), (float)fv.UV.Y))
            {
                return(false);
            }

            if (fv.Weights.Count > 0)
            {
                if (jv["BI"].Value <int>() != fv.Weights[0].BlendingIndex)
                {
                    return(false);
                }
            }

            return(true);
        }