public override bool DrawTrack(Rect trackRect, TrackAsset trackAsset, Vector2 visibleTime, ITimelineState state)
        {
            this.m_TrackRect = trackRect;
            TimelineWindow.TimelineState timelineState = (TimelineWindow.TimelineState)state;
            bool result;

            if (!this.CanDraw(trackAsset, timelineState))
            {
                result = true;
            }
            else
            {
                if (timelineState.recording && timelineState.IsArmedForRecord(trackAsset))
                {
                    InfiniteTrackDrawer.DrawRecordBackground(trackRect);
                }
                GUI.Box(trackRect, GUIContent.none, DirectorStyles.Instance.infiniteTrack);
                Rect rect = trackRect;
                rect.set_yMin(rect.get_yMax());
                rect.set_height(15f);
                GUI.DrawTexture(rect, DirectorStyles.Instance.bottomShadow.get_normal().get_background(), 0);
                float[] keys = this.m_DataSource.GetKeys();
                if (keys != null && keys.Length > 0)
                {
                    float[] array = keys;
                    for (int i = 0; i < array.Length; i++)
                    {
                        float key = array[i];
                        this.DrawKeyFrame(key, timelineState);
                    }
                }
                result = true;
            }
            return(result);
        }
Example #2
0
        public TimelineTrackGUI(TreeViewController tv, TimelineTreeViewGUI w, int id, int depth, TreeViewItem parent, string displayName, TrackAsset sequenceActor) : base(tv, w, id, depth, parent, displayName, sequenceActor, false)
        {
            AnimationTrack animationTrack = sequenceActor as AnimationTrack;

            if (animationTrack != null)
            {
                this.m_InfiniteTrackDrawer = new InfiniteTrackDrawer(new AnimationTrackKeyDataSource(animationTrack));
                this.UpdateInfiniteClipEditor(animationTrack, w.TimelineWindow);
                if (animationTrack.ShouldShowInfiniteClipEditor())
                {
                    this.clipCurveEditor = new ClipCurveEditor(new InfiniteClipCurveDataSource(this), w.TimelineWindow);
                }
            }
            this.m_HadProblems     = false;
            this.m_InitHadProblems = false;
            this.m_Bindings        = base.track.get_outputs().ToArray <PlayableBinding>();
            base.AddManipulator(new TrackVerticalResize());
        }
Example #3
0
        public TimelineTrackGUI(TreeViewController tv, TimelineTreeViewGUI w, int id, int depth, TreeViewItem parent, string displayName, TrackAsset sequenceActor)
            : base(tv, w, id, depth, parent, displayName, sequenceActor, false)
        {
            AnimationTrack animationTrack = sequenceActor as AnimationTrack;

            if (animationTrack != null)
            {
                m_InfiniteTrackDrawer = new InfiniteTrackDrawer(new AnimationTrackKeyDataSource(animationTrack));
            }
            else if (sequenceActor.HasAnyAnimatableParameters() && !sequenceActor.clips.Any())
            {
                m_InfiniteTrackDrawer = new InfiniteTrackDrawer(new TrackPropertyCurvesDataSource(sequenceActor));
            }

            UpdateInfiniteClipEditor(w.TimelineWindow);

            var bindings = track.outputs.ToArray();

            m_TrackDrawData.m_HasBinding = bindings.Length > 0;
            if (m_TrackDrawData.m_HasBinding)
            {
                m_TrackDrawData.m_Binding = bindings[0];
            }
            m_TrackDrawData.m_IsSubTrack      = IsSubTrack();
            m_TrackDrawData.m_AllowsRecording = DoesTrackAllowsRecording(sequenceActor);
            m_DefaultTrackIcon = TrackResourceCache.GetTrackIcon(track);


            m_TrackEditor = CustomTimelineEditorCache.GetTrackEditor(sequenceActor);

            try
            {
                m_TrackDrawOptions = m_TrackEditor.GetTrackOptions(track, null);
            }
            catch (Exception e)
            {
                Debug.LogException(e);
                m_TrackDrawOptions = CustomTimelineEditorCache.GetDefaultTrackEditor().GetTrackOptions(track, null);
            }

            m_TrackDrawOptions.errorText = null; // explicitly setting to null for an uninitialized state

            RebuildGUICacheIfNecessary();
        }
        public TimelineTrackGUI(TreeViewController tv, TimelineTreeViewGUI w, int id, int depth, TreeViewItem parent, string displayName, TrackAsset sequenceActor)
            : base(tv, w, id, depth, parent, displayName, sequenceActor, false)
        {
            AnimationTrack animationTrack = sequenceActor as AnimationTrack;

            if (animationTrack != null)
            {
                m_InfiniteTrackDrawer = new InfiniteTrackDrawer(new AnimationTrackKeyDataSource(animationTrack));
                UpdateInfiniteClipEditor(animationTrack, w.TimelineWindow);

                if (animationTrack.ShouldShowInfiniteClipEditor())
                {
                    clipCurveEditor = new ClipCurveEditor(new InfiniteClipCurveDataSource(this), w.TimelineWindow);
                }
            }

            m_HadProblems     = false;
            m_InitHadProblems = false;
            m_Bindings        = track.outputs.ToArray();
        }