internal void RemovePropertiesByIds(IEnumerable <int> ids, bool removeCompleteGroup = true) { List <EditorCurveBinding> bindingsToRemove = new List <EditorCurveBinding>(); foreach (int selectedId in ids) { BindingTreeViewDataSource bindingTree = m_BindingHierarchy.treeViewController.data as BindingTreeViewDataSource; CurveTreeViewNode node = bindingTree.FindItem(selectedId) as CurveTreeViewNode; if (node == null) { continue; } foreach (EditorCurveBinding editorCurveBinding in node.bindings) { if (bindingsToRemove.Contains(editorCurveBinding)) { continue; } CurveTreeViewNode currentNode = node; do { //check if property is part of a group bool isRoot = currentNode.depth == 0; bool isGroup = currentNode.displayName == BindingTreeViewDataSource.GroupName(editorCurveBinding); if (!isRoot && !isGroup && removeCompleteGroup) { currentNode = currentNode.parent as CurveTreeViewNode; } else { if (!AnimationWindowUtility.ForceGrouping(editorCurveBinding)) { bindingsToRemove.Add(editorCurveBinding); } else //Group to remove { bindingsToRemove.AddRange(currentNode.bindings); } break; } }while (currentNode != null); } } RemoveProperty(bindingsToRemove); m_BindingHierarchy.RefreshTree(); TimelineWindow.instance.state.CalculateRowRects(); }
public void RefreshCurves() { if (this.m_ClipDataSource != null && this.m_Selection != null) { List <EditorCurveBinding> list = new List <EditorCurveBinding>(); int[] selection = this.m_Selection; for (int i = 0; i < selection.Length; i++) { int num = selection[i]; CurveTreeViewNode curveTreeViewNode = (CurveTreeViewNode)this.m_TreeView.FindItem(num); if (curveTreeViewNode != null && curveTreeViewNode.bindings != null) { list.AddRange(curveTreeViewNode.bindings); } } AnimationClip animationClip = this.m_ClipDataSource.animationClip; List <CurveWrapper> list2 = new List <CurveWrapper>(); int num2 = 0; foreach (EditorCurveBinding current in list) { CurveWrapper curveWrapper = new CurveWrapper(); curveWrapper.id = num2++; curveWrapper.binding = current; curveWrapper.groupId = -1; curveWrapper.color = CurveUtility.GetPropertyColor(current.propertyName); curveWrapper.hidden = false; curveWrapper.readOnly = false; curveWrapper.set_renderer(new NormalCurveRenderer(AnimationUtility.GetEditorCurve(animationClip, current))); curveWrapper.getAxisUiScalarsCallback = new CurveWrapper.GetAxisScalarsCallback(this.GetAxisScalars); CurveWrapper curveWrapper2 = curveWrapper; curveWrapper2.get_renderer().SetCustomRange(0f, animationClip.get_length()); list2.Add(curveWrapper2); } this.m_CurveEditor.set_animationCurves(list2.ToArray()); } }