/** * @brief Removes a track * @param track Track to remove * @sa AddTrack */ public void Remove(FTrack track) { if (_tracks.Remove(track)) { track.SetTimeline(null); UpdateTrackIds(); } }
public void Add(FTrack track) { int id = _tracks.Count; _tracks.Add(track); track.SetTimeline(this); track.SetId(id); if (!Sequence.IsStopped) { track.Init(); } }
/** * @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(); }
/** * @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); }