summaryrefslogtreecommitdiff
path: root/Library/PackageCache/com.unity.timeline@1.2.13/Editor/Animation/BindingTreeViewDataSource.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Library/PackageCache/com.unity.timeline@1.2.13/Editor/Animation/BindingTreeViewDataSource.cs')
-rw-r--r--Library/PackageCache/com.unity.timeline@1.2.13/Editor/Animation/BindingTreeViewDataSource.cs139
1 files changed, 0 insertions, 139 deletions
diff --git a/Library/PackageCache/com.unity.timeline@1.2.13/Editor/Animation/BindingTreeViewDataSource.cs b/Library/PackageCache/com.unity.timeline@1.2.13/Editor/Animation/BindingTreeViewDataSource.cs
deleted file mode 100644
index 8118285..0000000
--- a/Library/PackageCache/com.unity.timeline@1.2.13/Editor/Animation/BindingTreeViewDataSource.cs
+++ /dev/null
@@ -1,139 +0,0 @@
-using System.Collections.Generic;
-using System.Linq;
-using UnityEditor;
-using UnityEditor.IMGUI.Controls;
-using UnityEditor.Timeline;
-using UnityEngine;
-
-namespace UnityEditorInternal
-{
- class BindingTreeViewDataSource : TreeViewDataSource
- {
- public const int RootID = int.MinValue;
- public const int GroupID = -1;
-
- AnimationClip m_Clip;
- CurveDataSource m_CurveDataSource;
-
- public BindingTreeViewDataSource(
- TreeViewController treeView, AnimationClip clip, CurveDataSource curveDataSource)
- : base(treeView)
- {
- m_Clip = clip;
- showRootItem = false;
- m_CurveDataSource = curveDataSource;
- }
-
- void SetupRootNodeSettings()
- {
- showRootItem = false;
- SetExpanded(RootID, true);
- SetExpanded(GroupID, true);
- }
-
- static string GroupName(EditorCurveBinding binding)
- {
- string property = AnimationWindowUtility.NicifyPropertyGroupName(binding.type, binding.propertyName);
- if (!string.IsNullOrEmpty(binding.path))
- {
- property = binding.path + " : " + property;
- }
-
- int lastArrayIdx = property.LastIndexOf("Array.");
- if (lastArrayIdx != -1)
- {
- property = property.Substring(0, lastArrayIdx - 1);
- }
- return property;
- }
-
- static string PropertyName(EditorCurveBinding binding, string arrayPrefixToRemove = "")
- {
- string propertyName = AnimationWindowUtility.GetPropertyDisplayName(binding.propertyName);
- if (propertyName.Contains("Array"))
- {
- propertyName = propertyName.Replace("Array.", "");
- propertyName = propertyName.Replace(arrayPrefixToRemove, "");
- propertyName = propertyName.TrimStart('.');
- }
- return propertyName;
- }
-
- public override void FetchData()
- {
- if (m_Clip == null)
- return;
-
- var bindings = AnimationUtility.GetCurveBindings(m_Clip)
- .Union(AnimationUtility.GetObjectReferenceCurveBindings(m_Clip))
- .ToArray();
-
- var results = bindings.GroupBy(p => GroupName(p), p => p, (key, g) => new
- {
- parent = key,
- bindings = g.ToList()
- }).OrderBy(t =>
- {
- //Force transform order first
- if (t.parent == "Position") return -3;
- if (t.parent == "Rotation") return -2;
- if (t.parent == "Scale") return -1;
- return 0;
- }).ThenBy(t => t.parent);
-
- m_RootItem = new CurveTreeViewNode(RootID, null, "root", null)
- {
- children = new List<TreeViewItem>(1)
- };
-
- var groupingNode = new CurveTreeViewNode(GroupID, m_RootItem, m_CurveDataSource.groupingName, bindings)
- {
- children = new List<TreeViewItem>()
- };
-
- m_RootItem.children.Add(groupingNode);
-
- foreach (var r in results)
- {
- var newNode = new CurveTreeViewNode(r.parent.GetHashCode(), groupingNode, r.parent, r.bindings.ToArray());
- groupingNode.children.Add(newNode);
- if (r.bindings.Count > 1)
- {
- for (int b = 0; b < r.bindings.Count; b++)
- {
- if (newNode.children == null)
- newNode.children = new List<TreeViewItem>();
-
- var binding = r.bindings[b];
- var bindingNode = new CurveTreeViewNode(binding.GetHashCode(), newNode, PropertyName(binding, newNode.displayName), new[] {binding});
- newNode.children.Add(bindingNode);
- }
- }
- }
-
- SetupRootNodeSettings();
- m_NeedRefreshRows = true;
- }
-
- public void UpdateData()
- {
- m_TreeView.ReloadData();
- }
- }
-
- class CurveTreeViewNode : TreeViewItem
- {
- EditorCurveBinding[] m_Bindings;
-
- public EditorCurveBinding[] bindings
- {
- get { return m_Bindings; }
- }
-
- public CurveTreeViewNode(int id, TreeViewItem parent, string displayName, EditorCurveBinding[] bindings)
- : base(id, parent != null ? parent.depth + 1 : -1, parent, displayName)
- {
- m_Bindings = bindings;
- }
- }
-}