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); }
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); }