internal void OnDeserializedMethod(StreamingContext context) { if (Code == null) { Code = Name; } CodeCrc32 = AnimationMetaData.GetCrc32(Code); }
/// <summary> /// Attempts to resolve all references within the shape. Logs missing references them to the errorLogger /// </summary> /// <param name="errorLogger"></param> /// <param name="shapeNameForLogging"></param> public void ResolveReferences(ILogger errorLogger, string shapeNameForLogging) { Dictionary <string, ShapeElement> elementsByName = new Dictionary <string, ShapeElement>(); CollectElements(Elements, elementsByName); for (int i = 0; Animations != null && i < Animations.Length; i++) { Animation anim = Animations[i]; for (int j = 0; j < anim.KeyFrames.Length; j++) { AnimationKeyFrame keyframe = anim.KeyFrames[j]; ResolveReferences(errorLogger, shapeNameForLogging, elementsByName, keyframe); foreach (AnimationKeyFrameElement kelem in keyframe.Elements.Values) { kelem.Frame = keyframe.Frame; } } if (anim.Code == null || anim.Code.Length == 0) { anim.Code = anim.Name.ToLowerInvariant().Replace(" ", ""); } AnimationsByCrc32[AnimationMetaData.GetCrc32(anim.Code)] = anim; } for (int i = 0; i < Elements.Length; i++) { ShapeElement elem = Elements[i]; elem.ResolveRefernces(); CollectAttachmentPoints(elem); } }