Beispiel #1
0
        /**
         * @brief Removes a track
         * @param track Track to remove
         * @sa AddTrack
         */
        public void Remove(FTrack track)
        {
            if (_tracks.Remove(track))
            {
                track.SetTimeline(null);

                UpdateTrackIds();
            }
        }
Beispiel #2
0
        public void Add(FTrack track)
        {
            int id = _tracks.Count;

            _tracks.Add(track);

            track.SetTimeline(this);
            track.SetId(id);

            if (!Sequence.IsStopped)
            {
                track.Init();
            }
        }
Beispiel #3
0
        /**
         * @brief Rebuilds a timeline. To be called when the hierarchy changes,
         * ie tracks get added / deleted.
         */
        public void Rebuild()
        {
            Transform t = transform;

            _tracks.Clear();

            for (int i = 0; i != t.childCount; ++i)
            {
                FTrack track = t.GetChild(i).GetComponent <FTrack>();
                if (track)
                {
                    _tracks.Add(track);
                    track.SetTimeline(this);
                    track.Rebuild();
                }
            }

            UpdateTrackIds();
        }
Beispiel #4
0
        /**
         * @brief Adds a new track to the timeline
         * @param range A track by default is added with 1 event
         * @T Event type that the track will hold
         * @sa RemoveTrack
         */
        public FTrack AddTrack <T>(FrameRange range) where T : FEvent
        {
            FTrack track = FTrack.Create <T>();

            int id = _tracks.Count;

            _tracks.Add(track);

            track.SetTimeline(this);
            track.SetId(id);

            if (!Sequence.IsStopped)
            {
                track.Init();
            }

            FEvent evt = FEvent.Create <T>(range);

            track.Add(evt);

            return(track);
        }