private static StageElement WriteSelectorView(SelectorView sv) { var sve = new StageElement( ElementName.SelectorView, SerializationMaster.Stage(ElementName.ViewArea, sv.viewArea)); sve.AddTextValue(ElementName.Name, sv.name); sve.AddTextValue(ElementName.Description, sv.description); var qualifierViews = sv.qualifierViews; int qvCount = qualifierViews.Count; for (int i = 0; i < qvCount; i++) { var qv = WriteQualifierView(qualifierViews[i]); sve.Add(qv); } var defQv = WriteQualifierView(sv.defaultQualifierView); sve.Add(defQv); return(sve); }
internal static string Serialize(IList <TopLevelView> items) { var aiPart = new StageElement(ElementName.AIPart); var uiPart = new StageElement(ElementName.UIPart); var root = new StageElement(ElementName.ViewSnippet, aiPart, uiPart); root.AddTextAttribute(AttributeName.SnippetType, ElementName.ViewSnippet); var referencePos = new Vector2(float.MaxValue, float.MaxValue); for (int i = 0; i < items.Count; i++) { var view = items[i]; var selectorView = view as SelectorView; if (selectorView != null) { var item = selectorView.selector; var aiItem = SerializationMaster.Stage(typeof(Selector).Name, item); aiPart.Add(aiItem); var viewItem = WriteSelectorView(selectorView); uiPart.Add(viewItem); //Even though reid also happens on paste we have to do it here as well, otherwise copying linked selectors will fail. item.RegenerateId(); } var linkView = view as AILinkView; if (linkView != null) { var viewItem = WriteAILinkView(linkView); uiPart.Add(viewItem); } if (view.viewArea.xMin < referencePos.x) { referencePos.x = view.viewArea.xMin; } if (view.viewArea.yMin < referencePos.y) { referencePos.y = view.viewArea.yMin; } } uiPart.AddValue(ElementName.ReferencePosition, referencePos); return(SerializationMaster.Serialize(root)); }
internal static string Serialize(AICanvas canvas) { var root = new StageElement( ElementName.Canvas, SerializationMaster.Stage(ElementName.Offset, canvas.offset), SerializationMaster.ToStageValue(ElementName.Zoom, canvas.zoom)); var views = canvas.views; int svCount = views.Count; for (int i = 0; i < svCount; i++) { var view = views[i]; StageElement viewElement; if (view is SelectorView) { viewElement = WriteSelectorView((SelectorView)view); } else if (view is AILinkView) { viewElement = WriteAILinkView((AILinkView)view); } else { throw new NotImplementedException("The view type has not been implemented for serialization."); } root.Add(viewElement); } return(SerializationMaster.Serialize(root)); }
public StageItem StageValue(string name, object value) { Keyframe[] keyframeArray = ((AnimationCurve)value).keys; StageElement stageElement = new StageElement(name); for (int i = 0; i < (int)keyframeArray.Length; i++) { Keyframe keyframe = keyframeArray[i]; stageElement.Add(new StageElement("key", new StageItem[] { SerializationMaster.ToStageAttribute("time", keyframe.time), SerializationMaster.ToStageAttribute("value", keyframe.@value), SerializationMaster.ToStageAttribute("inTangent", keyframe.inTangent), SerializationMaster.ToStageAttribute("outTangent", keyframe.outTangent), SerializationMaster.ToStageAttribute("tangentMode", keyframe.tangentMode) })); } return(stageElement); }
internal static string Serialize(QualifierView qualifier) { var aiPart = new StageElement(ElementName.AIPart); var uiPart = new StageElement(ElementName.UIPart); var root = new StageElement(ElementName.QualifierSnippet, aiPart, uiPart); root.AddTextAttribute(AttributeName.SnippetType, ElementName.QualifierSnippet); var aiItem = SerializationMaster.Stage(ElementName.Qualifier, qualifier.qualifier); aiPart.Add(aiItem); var viewItem = WriteQualifierView(qualifier); uiPart.Add(viewItem); return(SerializationMaster.Serialize(root)); }
private static StageElement WriteQualifierView(QualifierView qv) { var name = qv.isDefault ? ElementName.DefaultQualifier : ElementName.QualifierView; var qve = new StageElement(name); qve.AddTextValue(ElementName.Name, qv.name); qve.AddTextValue(ElementName.Description, qv.description); var av = qv.actionView; if (av != null) { var ae = WriteActionView(av); qve.Add(ae); } return(qve); }
internal static string Serialize(ActionView action) { var aiPart = new StageElement(ElementName.AIPart); var uiPart = new StageElement(ElementName.UIPart); var root = new StageElement(ElementName.ActionSnippet, aiPart, uiPart); root.AddTextAttribute(AttributeName.SnippetType, ElementName.ActionSnippet); var aiItem = SerializationMaster.Stage(ElementName.Action, action.action); aiPart.Add(aiItem); var viewItem = WriteActionView(action); uiPart.Add(viewItem); return(SerializationMaster.Serialize(root)); }
/// <summary> /// Stages the value. /// </summary> /// <param name="name">The name to give the resulting <see cref="StageItem" />.</param> /// <param name="value">The value to stage</param> /// <returns> /// The element containing the staged value. /// </returns> public StageItem StageValue(string name, object value) { var val = (AnimationCurve)value; var keys = val.keys; var curveElement = new StageElement(name); for (int i = 0; i < keys.Length; i++) { var key = keys[i]; var item = new StageElement( "key", SerializationMaster.ToStageAttribute("time", key.time), SerializationMaster.ToStageAttribute("value", key.value), SerializationMaster.ToStageAttribute("inTangent", key.inTangent), SerializationMaster.ToStageAttribute("outTangent", key.outTangent), SerializationMaster.ToStageAttribute("tangentMode", key.tangentMode)); curveElement.Add(item); } return(curveElement); }