private void CurveWasModified(AnimationClip clip, EditorCurveBinding binding, AnimationUtility.CurveModifiedType type)
 {
     if (clip != this.m_ActiveAnimationClip)
     {
         return;
     }
     if (type == AnimationUtility.CurveModifiedType.CurveModified)
     {
         bool flag     = false;
         int  hashCode = binding.GetHashCode();
         foreach (AnimationWindowCurve current in this.allCurves)
         {
             int hashCode2 = current.binding.GetHashCode();
             if (hashCode2 == hashCode)
             {
                 this.m_ModifiedCurves.Add(hashCode2);
                 flag = true;
             }
         }
         if (flag)
         {
             this.refresh = AnimationWindowState.RefreshType.CurvesOnly;
         }
         else
         {
             this.m_lastAddedCurveBinding = new EditorCurveBinding?(binding);
             this.refresh = AnimationWindowState.RefreshType.Everything;
         }
     }
     else
     {
         this.refresh = AnimationWindowState.RefreshType.Everything;
     }
 }
 public AnimationWindowCurve(AnimationClip clip, EditorCurveBinding binding, Type valueType)
 {
     binding                = RotationCurveInterpolation.RemapAnimationBindingForRotationCurves(binding, clip);
     this.m_Binding         = binding;
     this.m_BindingHashCode = binding.GetHashCode();
     this.m_ValueType       = valueType;
     this.m_Clip            = clip;
     this.LoadKeyframes(clip);
 }
        public override int GetHashCode()
        {
            int hash = 0;

            unchecked {
                hash = curve.GetHashCode();
                hash = 33 * hash + binding.GetHashCode();
            }
            return(hash);
        }
 static CurveTreeViewNode CreateLeafNode(EditorCurveBinding binding, TreeViewItem parent, string displayName)
 {
     return(new CurveTreeViewNode(binding.GetHashCode(), parent, displayName, new[] { binding }, AnimationWindowUtility.ForceGrouping(binding)));
 }