private List <AnimationWindowCurve> GetCurvesAffectedByNodes(List <AnimationWindowHierarchyNode> nodes, bool includeLinkedCurves)
        {
            List <AnimationWindowCurve> curves = new List <AnimationWindowCurve>();

            foreach (var node in nodes)
            {
                AnimationWindowHierarchyNode hierarchyNode = node;

                if (hierarchyNode.parent is AnimationWindowHierarchyPropertyGroupNode && includeLinkedCurves)
                {
                    hierarchyNode = (AnimationWindowHierarchyNode)hierarchyNode.parent;
                }

                if (hierarchyNode.curves == null)
                {
                    continue;
                }

                if (hierarchyNode.curves.Length > 0)
                {
                    // Property or propertygroup
                    if (hierarchyNode is AnimationWindowHierarchyPropertyGroupNode || hierarchyNode is AnimationWindowHierarchyPropertyNode)
                    {
                        curves.AddRange(AnimationWindowUtility.FilterCurves(hierarchyNode.curves, hierarchyNode.path, hierarchyNode.animatableObjectType, hierarchyNode.propertyName));
                    }
                    else
                    {
                        curves.AddRange(AnimationWindowUtility.FilterCurves(hierarchyNode.curves, hierarchyNode.path, hierarchyNode.animatableObjectType));
                    }
                }
            }
            return(curves.Distinct().ToList());
        }
Esempio n. 2
0
        private List <AnimationWindowCurve> GetCurvesAffectedByNodes(List <AnimationWindowHierarchyNode> nodes, bool includeLinkedCurves)
        {
            List <AnimationWindowCurve> list = new List <AnimationWindowCurve>();

            foreach (AnimationWindowHierarchyNode current in nodes)
            {
                AnimationWindowHierarchyNode animationWindowHierarchyNode = current;
                if (animationWindowHierarchyNode.parent is AnimationWindowHierarchyPropertyGroupNode && includeLinkedCurves)
                {
                    animationWindowHierarchyNode = (AnimationWindowHierarchyNode)animationWindowHierarchyNode.parent;
                }
                if (animationWindowHierarchyNode.curves.Length > 0)
                {
                    if (animationWindowHierarchyNode is AnimationWindowHierarchyPropertyGroupNode || animationWindowHierarchyNode is AnimationWindowHierarchyPropertyNode)
                    {
                        list.AddRange(AnimationWindowUtility.FilterCurves(animationWindowHierarchyNode.curves, animationWindowHierarchyNode.path, animationWindowHierarchyNode.animatableObjectType, animationWindowHierarchyNode.propertyName));
                    }
                    else
                    {
                        list.AddRange(AnimationWindowUtility.FilterCurves(animationWindowHierarchyNode.curves, animationWindowHierarchyNode.path, animationWindowHierarchyNode.animatableObjectType));
                    }
                }
            }
            return(list.Distinct <AnimationWindowCurve>().ToList <AnimationWindowCurve>());
        }
 private void RemoveCurvesFromNodes(List <AnimationWindowHierarchyNode> nodes)
 {
     foreach (AnimationWindowHierarchyNode current in nodes)
     {
         AnimationWindowHierarchyNode animationWindowHierarchyNode = current;
         if (animationWindowHierarchyNode.parent is AnimationWindowHierarchyPropertyGroupNode)
         {
             EditorCurveBinding?binding = animationWindowHierarchyNode.binding;
             if (binding.HasValue)
             {
                 EditorCurveBinding?binding2 = animationWindowHierarchyNode.binding;
                 if (AnimationWindowUtility.ForceGrouping(binding2.Value))
                 {
                     animationWindowHierarchyNode = (AnimationWindowHierarchyNode)animationWindowHierarchyNode.parent;
                 }
             }
         }
         List <AnimationWindowCurve> list;
         if (animationWindowHierarchyNode is AnimationWindowHierarchyPropertyGroupNode || animationWindowHierarchyNode is AnimationWindowHierarchyPropertyNode)
         {
             list = AnimationWindowUtility.FilterCurves(this.state.allCurves.ToArray(), animationWindowHierarchyNode.path, animationWindowHierarchyNode.animatableObjectType, animationWindowHierarchyNode.propertyName);
         }
         else
         {
             list = AnimationWindowUtility.FilterCurves(this.state.allCurves.ToArray(), animationWindowHierarchyNode.path, animationWindowHierarchyNode.animatableObjectType);
         }
         foreach (AnimationWindowCurve current2 in list)
         {
             this.state.RemoveCurve(current2);
         }
     }
     this.m_TreeView.ReloadData();
 }
 private void RemoveCurvesFromNodes(List <AnimationWindowHierarchyNode> nodes)
 {
     foreach (AnimationWindowHierarchyNode node in nodes)
     {
         AnimationWindowHierarchyNode parent = node;
         if (((parent.parent is AnimationWindowHierarchyPropertyGroupNode) && parent.binding.HasValue) && AnimationWindowUtility.ForceGrouping(parent.binding.Value))
         {
             parent = (AnimationWindowHierarchyNode)parent.parent;
         }
         List <AnimationWindowCurve> list = null;
         if ((parent is AnimationWindowHierarchyPropertyGroupNode) || (parent is AnimationWindowHierarchyPropertyNode))
         {
             list = AnimationWindowUtility.FilterCurves(this.state.allCurves.ToArray(), parent.path, parent.animatableObjectType, parent.propertyName);
         }
         else
         {
             list = AnimationWindowUtility.FilterCurves(this.state.allCurves.ToArray(), parent.path, parent.animatableObjectType);
         }
         foreach (AnimationWindowCurve curve in list)
         {
             this.state.RemoveCurve(curve);
         }
     }
     base.m_TreeView.ReloadData();
 }
Esempio n. 5
0
        private List <AnimationWindowCurve> GetCurvesAffectedByNodes(List <AnimationWindowHierarchyNode> nodes, bool includeLinkedCurves)
        {
            List <AnimationWindowCurve> source = new List <AnimationWindowCurve>();

            using (List <AnimationWindowHierarchyNode> .Enumerator enumerator = nodes.GetEnumerator())
            {
                while (enumerator.MoveNext())
                {
                    AnimationWindowHierarchyNode windowHierarchyNode = enumerator.Current;
                    if (windowHierarchyNode.parent is AnimationWindowHierarchyPropertyGroupNode && includeLinkedCurves)
                    {
                        windowHierarchyNode = (AnimationWindowHierarchyNode)windowHierarchyNode.parent;
                    }
                    if (windowHierarchyNode is AnimationWindowHierarchyPropertyGroupNode || windowHierarchyNode is AnimationWindowHierarchyPropertyNode)
                    {
                        source.AddRange((IEnumerable <AnimationWindowCurve>)AnimationWindowUtility.FilterCurves(this.state.allCurves.ToArray(), windowHierarchyNode.path, windowHierarchyNode.animatableObjectType, windowHierarchyNode.propertyName));
                    }
                    else
                    {
                        source.AddRange((IEnumerable <AnimationWindowCurve>)AnimationWindowUtility.FilterCurves(this.state.allCurves.ToArray(), windowHierarchyNode.path, windowHierarchyNode.animatableObjectType));
                    }
                }
            }
            return(source.Distinct <AnimationWindowCurve>().ToList <AnimationWindowCurve>());
        }
        private void RemoveCurvesFromNodes(List <AnimationWindowHierarchyNode> nodes)
        {
            string undoLabel = "Remove Curve";

            this.state.SaveKeySelection(undoLabel);
            foreach (AnimationWindowHierarchyNode current in nodes)
            {
                AnimationWindowHierarchyNode animationWindowHierarchyNode = current;
                if (animationWindowHierarchyNode.parent is AnimationWindowHierarchyPropertyGroupNode)
                {
                    EditorCurveBinding?binding = animationWindowHierarchyNode.binding;
                    if (binding.HasValue)
                    {
                        EditorCurveBinding?binding2 = animationWindowHierarchyNode.binding;
                        if (AnimationWindowUtility.ForceGrouping(binding2.Value))
                        {
                            animationWindowHierarchyNode = (AnimationWindowHierarchyNode)animationWindowHierarchyNode.parent;
                        }
                    }
                }
                if (animationWindowHierarchyNode.curves != null)
                {
                    List <AnimationWindowCurve> list;
                    if (animationWindowHierarchyNode is AnimationWindowHierarchyPropertyGroupNode || animationWindowHierarchyNode is AnimationWindowHierarchyPropertyNode)
                    {
                        list = AnimationWindowUtility.FilterCurves(animationWindowHierarchyNode.curves.ToArray <AnimationWindowCurve>(), animationWindowHierarchyNode.path, animationWindowHierarchyNode.animatableObjectType, animationWindowHierarchyNode.propertyName);
                    }
                    else
                    {
                        list = AnimationWindowUtility.FilterCurves(animationWindowHierarchyNode.curves.ToArray <AnimationWindowCurve>(), animationWindowHierarchyNode.path, animationWindowHierarchyNode.animatableObjectType);
                    }
                    foreach (AnimationWindowCurve current2 in list)
                    {
                        this.state.RemoveCurve(current2, undoLabel);
                    }
                }
            }
            this.m_TreeView.ReloadData();
            if (this.state.recording)
            {
                this.state.ResampleAnimation();
            }
        }
        private void RemoveCurvesFromNodes(List <AnimationWindowHierarchyNode> nodes)
        {
            string undoLabel = "Remove Curve";

            state.SaveKeySelection(undoLabel);

            foreach (var node in nodes)
            {
                AnimationWindowHierarchyNode hierarchyNode = (AnimationWindowHierarchyNode)node;

                if (hierarchyNode.parent is AnimationWindowHierarchyPropertyGroupNode && hierarchyNode.binding != null && AnimationWindowUtility.ForceGrouping((EditorCurveBinding)hierarchyNode.binding))
                {
                    hierarchyNode = (AnimationWindowHierarchyNode)hierarchyNode.parent;
                }

                if (hierarchyNode.curves == null)
                {
                    continue;
                }

                List <AnimationWindowCurve> curves = null;

                // Property or propertygroup
                if (hierarchyNode is AnimationWindowHierarchyPropertyGroupNode || hierarchyNode is AnimationWindowHierarchyPropertyNode)
                {
                    curves = AnimationWindowUtility.FilterCurves(hierarchyNode.curves.ToArray(), hierarchyNode.path, hierarchyNode.animatableObjectType, hierarchyNode.propertyName);
                }
                else
                {
                    curves = AnimationWindowUtility.FilterCurves(hierarchyNode.curves.ToArray(), hierarchyNode.path, hierarchyNode.animatableObjectType);
                }

                foreach (AnimationWindowCurve animationWindowCurve in curves)
                {
                    state.RemoveCurve(animationWindowCurve, undoLabel);
                }
            }

            m_TreeView.ReloadData();

            state.controlInterface.ResampleAnimation();
        }
        private List <AnimationWindowCurve> GetCurvesAffectedByNodes(List <AnimationWindowHierarchyNode> nodes, bool includeLinkedCurves)
        {
            List <AnimationWindowCurve> source = new List <AnimationWindowCurve>();

            foreach (AnimationWindowHierarchyNode node in nodes)
            {
                AnimationWindowHierarchyNode parent = node;
                if ((parent.parent is AnimationWindowHierarchyPropertyGroupNode) && includeLinkedCurves)
                {
                    parent = (AnimationWindowHierarchyNode)parent.parent;
                }
                if ((parent is AnimationWindowHierarchyPropertyGroupNode) || (parent is AnimationWindowHierarchyPropertyNode))
                {
                    source.AddRange(AnimationWindowUtility.FilterCurves(this.state.allCurves.ToArray(), parent.path, parent.animatableObjectType, parent.propertyName));
                }
                else
                {
                    source.AddRange(AnimationWindowUtility.FilterCurves(this.state.allCurves.ToArray(), parent.path, parent.animatableObjectType));
                }
            }
            return(source.Distinct <AnimationWindowCurve>().ToList <AnimationWindowCurve>());
        }
 public List <AnimationWindowCurve> GetCurves(AnimationWindowHierarchyNode hierarchyNode, bool entireHierarchy)
 {
     return(AnimationWindowUtility.FilterCurves(this.allCurves.ToArray(), hierarchyNode.path, hierarchyNode.animatableObjectType, hierarchyNode.propertyName));
 }
Esempio n. 10
0
 private void RemoveCurvesFromNodes(List <AnimationWindowHierarchyNode> nodes)
 {
     using (List <AnimationWindowHierarchyNode> .Enumerator enumerator1 = nodes.GetEnumerator())
     {
         while (enumerator1.MoveNext())
         {
             AnimationWindowHierarchyNode windowHierarchyNode = enumerator1.Current;
             if (windowHierarchyNode.parent is AnimationWindowHierarchyPropertyGroupNode && windowHierarchyNode.binding.HasValue && AnimationWindowUtility.ForceGrouping(windowHierarchyNode.binding.Value))
             {
                 windowHierarchyNode = (AnimationWindowHierarchyNode)windowHierarchyNode.parent;
             }
             using (List <AnimationWindowCurve> .Enumerator enumerator2 = (windowHierarchyNode is AnimationWindowHierarchyPropertyGroupNode || windowHierarchyNode is AnimationWindowHierarchyPropertyNode ? AnimationWindowUtility.FilterCurves(this.state.allCurves.ToArray(), windowHierarchyNode.path, windowHierarchyNode.animatableObjectType, windowHierarchyNode.propertyName) : AnimationWindowUtility.FilterCurves(this.state.allCurves.ToArray(), windowHierarchyNode.path, windowHierarchyNode.animatableObjectType)).GetEnumerator())
             {
                 while (enumerator2.MoveNext())
                 {
                     this.state.RemoveCurve(enumerator2.Current);
                 }
             }
         }
     }
     this.m_TreeView.ReloadData();
 }