public RotationFCurveParamater() { FCurve = new Value.FCurveVector3D(); FCurve.X.DefaultValueRangeMax = 180.0f; FCurve.X.DefaultValueRangeMin = -180.0f; FCurve.Y.DefaultValueRangeMax = 180.0f; FCurve.Y.DefaultValueRangeMin = -180.0f; FCurve.Z.DefaultValueRangeMax = 180.0f; FCurve.Z.DefaultValueRangeMin = -180.0f; }
public Vector3DFCurveParameter() { FCurve = new Value.FCurveVector3D(); FCurve.X.DefaultValueRangeMax = 10.0f; FCurve.X.DefaultValueRangeMin = -10.0f; FCurve.Y.DefaultValueRangeMax = 10.0f; FCurve.Y.DefaultValueRangeMin = -10.0f; FCurve.Z.DefaultValueRangeMax = 10.0f; FCurve.Z.DefaultValueRangeMin = -10.0f; }
public static XmlElement SaveToElement(XmlDocument doc, string element_name, Value.FCurveVector3D value, bool isClip) { var e = doc.CreateElement(element_name); var keys = doc.CreateElement("Keys"); var x = doc.CreateElement("X"); var y = doc.CreateElement("Y"); var z = doc.CreateElement("Z"); int index = 0; Action <Value.FCurve <float>, XmlElement> setValues = (v, xml) => { index = 0; var st = SaveToElement(doc, "StartType", v.StartType, isClip); var et = SaveToElement(doc, "EndType", v.EndType, isClip); var omax = SaveToElement(doc, "OffsetMax", v.OffsetMax, isClip); var omin = SaveToElement(doc, "OffsetMin", v.OffsetMin, isClip); var s = SaveToElement(doc, "Sampling", v.Sampling, isClip); if (st != null) { xml.AppendChild(st); } if (et != null) { xml.AppendChild(et); } if (omax != null) { xml.AppendChild(omax); } if (omin != null) { xml.AppendChild(omin); } if (s != null) { xml.AppendChild(s); } foreach (var k_ in v.Keys) { var k = doc.CreateElement("Key" + index.ToString()); k.AppendChild(doc.CreateTextElement("Frame", k_.Frame.ToString())); k.AppendChild(doc.CreateTextElement("Value", k_.ValueAsFloat.ToString())); k.AppendChild(doc.CreateTextElement("LeftX", k_.LeftX.ToString())); k.AppendChild(doc.CreateTextElement("LeftY", k_.LeftY.ToString())); k.AppendChild(doc.CreateTextElement("RightX", k_.RightX.ToString())); k.AppendChild(doc.CreateTextElement("RightY", k_.RightY.ToString())); k.AppendChild(doc.CreateTextElement("InterpolationType", k_.InterpolationType.GetValueAsInt())); xml.AppendChild(k); index++; } }; setValues(value.X, x); setValues(value.Y, y); setValues(value.Z, z); if (x.ChildNodes.Count > 0) { keys.AppendChild(x); } if (y.ChildNodes.Count > 0) { keys.AppendChild(y); } if (z.ChildNodes.Count > 0) { keys.AppendChild(z); } if (keys.ChildNodes.Count > 0) { e.AppendChild(keys); } return(e.ChildNodes.Count > 0 ? e : null); }
public static void LoadFromElement(XmlElement e, Value.FCurveVector3D value, bool isClip) { var e_keys = e["Keys"] as XmlElement; if (e_keys == null) { return; } var e_x = e_keys["X"] as XmlElement; var e_y = e_keys["Y"] as XmlElement; var e_z = e_keys["Z"] as XmlElement; Action <Data.Value.FCurve <float>, XmlElement> import = (v_, e_) => { foreach (XmlElement r in e_.ChildNodes) { if (r.Name.StartsWith("Key")) { var f = r.GetTextAsInt("Frame"); var v = r.GetTextAsFloat("Value"); var lx = r.GetTextAsFloat("LeftX"); var ly = r.GetTextAsFloat("LeftY"); var rx = r.GetTextAsFloat("RightX"); var ry = r.GetTextAsFloat("RightY"); var i = r.GetTextAsInt("InterpolationType"); var t = new Value.FCurveKey <float>(f, v); t.SetLeftDirectly(lx, ly); t.SetRightDirectly(rx, ry); t.InterpolationType.SetValue(i); v_.AddKeyDirectly(t); } else if (r.Name.StartsWith("StartType")) { var v = r.GetTextAsInt(); v_.StartType.SetValue(v); } else if (r.Name.StartsWith("EndType")) { var v = r.GetTextAsInt(); v_.EndType.SetValue(v); } else if (r.Name.StartsWith("OffsetMax")) { var v = r.GetTextAsFloat(); v_.OffsetMax.SetValueDirectly(v); } else if (r.Name.StartsWith("OffsetMin")) { var v = r.GetTextAsFloat(); v_.OffsetMin.SetValueDirectly(v); } else if (r.Name.StartsWith("Sampling")) { var v = r.GetTextAsInt(); v_.Sampling.SetValueDirectly(v); } } }; if (e_x != null) { import(value.X, e_x); } if (e_y != null) { import(value.Y, e_y); } if (e_z != null) { import(value.Z, e_z); } }