private static void DrawCurveEditor(IClipCurveEditorOwner clipCurveEditorOwner, TimelineWindow.TimelineState state, Rect headerRect, Rect trackRect, Vector2 activeRange, bool locked) { ClipCurveEditor clipCurveEditor = clipCurveEditorOwner.clipCurveEditor; CurveDataSource dataSource = clipCurveEditor.dataSource; Rect backgroundRect = dataSource.GetBackgroundRect(state); bool flag = false; if (Event.get_current().get_type() == null) { flag = (InlineCurveEditor.MouseOverTrackArea(backgroundRect, trackRect) || InlineCurveEditor.MouseOverHeaderArea(headerRect, trackRect)); } clipCurveEditorOwner.clipCurveEditor.DrawHeader(headerRect); bool selected = !locked && (clipCurveEditorOwner.inlineCurvesSelected || flag); using (new EditorGUI.DisabledScope(locked)) { using (new GUIViewportScope(trackRect)) { Rect animEditorRect = backgroundRect; animEditorRect.set_y(trackRect.get_y()); animEditorRect.set_height(trackRect.get_height()); animEditorRect.set_xMin(Mathf.Max(animEditorRect.get_xMin(), trackRect.get_xMin())); animEditorRect.set_xMax(trackRect.get_xMax()); if (activeRange == Vector2.get_zero()) { activeRange = new Vector2(animEditorRect.get_xMin(), animEditorRect.get_xMax()); } clipCurveEditor.DrawCurveEditor(animEditorRect, state, activeRange, clipCurveEditorOwner.supportsLooping, selected); } } if (flag) { clipCurveEditorOwner.inlineCurvesSelected = true; } }
public ClipCurveEditor(CurveDataSource dataSource, TimelineWindow parentWindow, TrackAsset hostTrack) { m_DataSource = dataSource; m_CurveEditor = new CurveEditor(new Rect(0, 0, 1000, 100), new CurveWrapper[0], false); s_CurveEditorSettings.vTickStyle = new TickStyle { tickColor = { color = DirectorStyles.Instance.customSkin.colorInlineCurveVerticalLines }, distLabel = 20, stubs = true }; s_CurveEditorSettings.hTickStyle = new TickStyle { // hide horizontal lines by giving them a transparent color tickColor = { color = new Color(0.0f, 0.0f, 0.0f, 0.0f) }, distLabel = 0 }; m_CurveEditor.settings = s_CurveEditorSettings; m_ViewModel = TimelineWindowViewPrefs.GetTrackViewModelData(hostTrack); m_ShouldRestoreShownArea = true; m_CurveEditor.ignoreScrollWheelUntilClicked = true; m_CurveEditor.curvesUpdated = OnCurvesUpdated; m_BindingHierarchy = new BindingSelector(parentWindow, m_CurveEditor, m_ViewModel.inlineCurvesState); }
public ClipCurveEditor(CurveDataSource dataSource, TimelineWindow parentWindow) { this.m_DataSource = dataSource; this.m_CurveEditor = new CurveEditor(new Rect(0f, 0f, 1000f, 100f), new CurveWrapper[0], false); ClipCurveEditor.s_CurveEditorSettings.set_hSlider(false); ClipCurveEditor.s_CurveEditorSettings.set_vSlider(false); ClipCurveEditor.s_CurveEditorSettings.set_hRangeLocked(false); ClipCurveEditor.s_CurveEditorSettings.set_vRangeLocked(false); ClipCurveEditor.s_CurveEditorSettings.set_scaleWithWindow(true); ClipCurveEditor.s_CurveEditorSettings.set_hRangeMin(0f); ClipCurveEditor.s_CurveEditorSettings.showAxisLabels = true; ClipCurveEditor.s_CurveEditorSettings.allowDeleteLastKeyInCurve = true; ClipCurveEditor.s_CurveEditorSettings.rectangleToolFlags = 0; CurveEditorSettings arg_F9_0 = ClipCurveEditor.s_CurveEditorSettings; TickStyle tickStyle = new TickStyle(); tickStyle.tickColor.set_color(DirectorStyles.Instance.customSkin.colorInlineCurveVerticalLines); tickStyle.distLabel = 20; tickStyle.stubs = true; arg_F9_0.set_vTickStyle(tickStyle); CurveEditorSettings arg_135_0 = ClipCurveEditor.s_CurveEditorSettings; tickStyle = new TickStyle(); tickStyle.tickColor.set_color(new Color(0f, 0f, 0f, 0f)); tickStyle.distLabel = 0; arg_135_0.set_hTickStyle(tickStyle); this.m_CurveEditor.set_settings(ClipCurveEditor.s_CurveEditorSettings); this.m_CurveEditor.set_shownArea(new Rect(1f, 1f, 1f, 1f)); this.m_CurveEditor.set_ignoreScrollWheelUntilClicked(true); this.m_CurveEditor.curvesUpdated = new CurveEditor.CallbackFunction(this.OnCurvesUpdated); this.m_BindingHierarchy = new BindingSelector(parentWindow, this.m_CurveEditor); }
public BindingTreeViewDataSource( TreeViewController treeView, AnimationClip clip, CurveDataSource curveDataSource) : base(treeView) { m_Clip = clip; showRootItem = false; m_CurveDataSource = curveDataSource; }
private void FrameAll(TimelineWindow.TimelineState state, ClipCurveEditor clipCurveEditor) { CurveDataSource dataSource = clipCurveEditor.dataSource; float start = dataSource.start; float duration = dataSource.animationClip.get_length() / dataSource.timeScale; InlineCurveEditor.Frame(state, start, duration, InlineCurveEditor.s_FrameAllMarginFactor); }
static Vector2 CalculateCurveVisibleTimeRange(Vector2 timeAreaShownRange, CurveDataSource curve) { var curveVisibleTimeRange = new Vector2 { x = Math.Max(0.0f, timeAreaShownRange.x - curve.start), y = timeAreaShownRange.y - curve.start }; return(curveVisibleTimeRange * curve.timeScale); }
public void InitIfNeeded(Rect rect, CurveDataSource dataSource, bool isNewSelection) { if (Event.current.type != EventType.Layout) { return; } m_CurveDataSource = dataSource; var clip = dataSource.animationClip; List <EditorCurveBinding> allBindings = new List <EditorCurveBinding>(); allBindings.Add(new EditorCurveBinding { propertyName = "Summary" }); if (clip != null) { allBindings.AddRange(AnimationUtility.GetCurveBindings(clip)); } m_DopeLines.list = allBindings.ToArray(); if (m_TreeViewState != null) { if (isNewSelection) { RefreshAll(); } return; } m_TreeViewState = m_TrackGlobalTreeViewState != null ? m_TrackGlobalTreeViewState : new TreeViewState(); m_TreeView = new TreeViewController(m_Window, m_TreeViewState) { useExpansionAnimation = false, deselectOnUnhandledMouseDown = true }; m_TreeView.selectionChangedCallback += OnItemSelectionChanged; m_TreeViewDataSource = new BindingTreeViewDataSource(m_TreeView, clip, m_CurveDataSource); m_TreeView.Init(rect, m_TreeViewDataSource, new BindingTreeViewGUI(m_TreeView), null); m_TreeViewDataSource.UpdateData(); RefreshSelection(); }
public ClipCurveEditor(CurveDataSource dataSource, TimelineWindow parentWindow, TrackAsset hostTrack) { m_DataSource = dataSource; m_CurveEditor = new CurveEditor(new Rect(0, 0, 1000, 100), new CurveWrapper[0], false); s_CurveEditorSettings.hSlider = false; s_CurveEditorSettings.vSlider = false; s_CurveEditorSettings.hRangeLocked = false; s_CurveEditorSettings.vRangeLocked = false; s_CurveEditorSettings.scaleWithWindow = true; s_CurveEditorSettings.hRangeMin = 0.0f; s_CurveEditorSettings.showAxisLabels = true; s_CurveEditorSettings.allowDeleteLastKeyInCurve = true; s_CurveEditorSettings.rectangleToolFlags = CurveEditorSettings.RectangleToolFlags.NoRectangleTool; s_CurveEditorSettings.vTickStyle = new TickStyle { tickColor = { color = DirectorStyles.Instance.customSkin.colorInlineCurveVerticalLines }, distLabel = 20, stubs = true }; s_CurveEditorSettings.hTickStyle = new TickStyle { // hide horizontal lines by giving them a transparent color tickColor = { color = new Color(0.0f, 0.0f, 0.0f, 0.0f) }, distLabel = 0 }; m_CurveEditor.settings = s_CurveEditorSettings; m_ViewModel = TimelineWindowViewPrefs.GetTrackViewModelData(hostTrack); if (isNewSelection) { m_CurveEditor.shownArea = new Rect(1, 1, 1, 1); } else { m_CurveEditor.shownAreaInsideMargins = m_ViewModel.inlineCurvesShownAreaInsideMargins; } m_CurveEditor.ignoreScrollWheelUntilClicked = true; m_CurveEditor.curvesUpdated = OnCurvesUpdated; m_BindingHierarchy = new BindingSelector(parentWindow, m_CurveEditor, m_ViewModel.inlineCurvesState); }
private void FrameSelected(TimelineWindow.TimelineState state, ClipCurveEditor clipCurveEditor) { if (!clipCurveEditor.HasSelection()) { this.FrameAll(state, clipCurveEditor); } else { Vector2 selectionRange = clipCurveEditor.GetSelectionRange(); if (selectionRange.x != selectionRange.y) { CurveDataSource dataSource = clipCurveEditor.dataSource; float start = dataSource.start + selectionRange.x / dataSource.timeScale; float duration = (selectionRange.y - selectionRange.x) / dataSource.timeScale; InlineCurveEditor.Frame(state, start, duration, InlineCurveEditor.s_FrameSelectedMarginFactor); } } }
public void InitIfNeeded(Rect rect, CurveDataSource dataSource) { if (Event.get_current().get_type() == 8) { this.m_ClipDataSource = dataSource; AnimationClip animationClip = dataSource.animationClip; int num = (this.m_DopeLines.get_list() == null) ? 0 : this.m_DopeLines.get_list().Count; List <EditorCurveBinding> list = new List <EditorCurveBinding>(); list.Add(new EditorCurveBinding { propertyName = "Summary" }); if (animationClip != null) { list.AddRange(AnimationUtility.GetCurveBindings(animationClip)); } this.m_DopeLines.set_list(list.ToArray()); if (num != this.m_DopeLines.get_list().Count) { this.UpdateRowHeight(); } if (this.m_TreeViewState == null) { this.m_TreeViewState = new TreeViewState(); TreeViewController treeViewController = new TreeViewController(this.m_Window, this.m_TreeViewState); treeViewController.set_useExpansionAnimation(false); treeViewController.set_deselectOnUnhandledMouseDown(true); this.m_TreeView = treeViewController; TreeViewController expr_FD = this.m_TreeView; expr_FD.set_selectionChangedCallback((Action <int[]>)Delegate.Combine(expr_FD.get_selectionChangedCallback(), new Action <int[]>(this.OnItemSelectionChanged))); this.m_TreeViewDataSource = new BindingTreeViewDataSource(this.m_TreeView, animationClip); this.m_TreeView.Init(rect, this.m_TreeViewDataSource, new BindingTreeViewGUI(this.m_TreeView), null); this.m_TreeViewDataSource.UpdateData(); this.OnItemSelectionChanged(null); } } }