public static void GetAnimation(Animator animator) { var animation = animator.GetAnimation(); if (animation == null) { return; } switch (animation.Type) { case AnimationType.EdgeFlowChanged: if (!EdgeStates.ContainsKey(animation.Edge.ToShortString())) { EdgeStates[animation.Edge.ToShortString()] = new FlowEdgeState(); } EdgeStates[animation.Edge.ToShortString()].FlowChanged = true; EdgeStates[animation.Edge.ToShortString()].Flow = animation.Edge.Flow; break; case AnimationType.EdgeMarked: if (!EdgeStates.ContainsKey(animation.Edge.ToShortString())) { EdgeStates[animation.Edge.ToShortString()] = new FlowEdgeState(); } EdgeStates[animation.Edge.ToShortString()].Marked = true; break; case AnimationType.EdgeUnmarked: if (!EdgeStates.ContainsKey(animation.Edge.ToShortString())) { EdgeStates[animation.Edge.ToShortString()] = new FlowEdgeState(); } EdgeStates[animation.Edge.ToShortString()].Marked = false; break; } OnRedrawRequired?.Invoke(); }
public static void Reset() { EdgeStates = new Dictionary <string, FlowEdgeState>(); OnRedrawRequired?.Invoke(); }