Exemplo n.º 1
0
        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;
            }
        }
Exemplo n.º 2
0
        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;
 }
Exemplo n.º 5
0
        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();
        }
Exemplo n.º 8
0
        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);
        }
Exemplo n.º 9
0
 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);
         }
     }
 }