Ejemplo n.º 1
0
        public void DeleteObjectById(string deletedObjectId)
        {
            if (AutomatineGUIWindow.IsTackId(deletedObjectId))
            {
                foreach (var timelineTrack in timelineTracks)
                {
                    timelineTrack.DeleteTackById(deletedObjectId);
                }
                return;
            }

            timelineTracks.Remove(timelineTracks.Where(tl => tl.timelineId == deletedObjectId).FirstOrDefault());
        }
Ejemplo n.º 2
0
 public void SelectPreviousTackOfTimelines(string currentActiveObjectId)
 {
     /*
      *                  if current active id is tack, select previous one.
      *                  and if active tack is the head of timeline, select timeline itself.
      */
     if (AutomatineGUIWindow.IsTackId(currentActiveObjectId))
     {
         foreach (var timelineTrack in timelineTracks)
         {
             timelineTrack.SelectPreviousTackOf(currentActiveObjectId);
         }
     }
 }
Ejemplo n.º 3
0
        public void SelectAboveObjectById(string currentActiveObjectId)
        {
            if (AutomatineGUIWindow.IsTimelineId(currentActiveObjectId))
            {
                var candidateTimelines   = timelineTracks.OrderBy(timeline => timeline.GetIndex()).ToList();
                var currentTimelineIndex = candidateTimelines.FindIndex(timeline => timeline.timelineId == currentActiveObjectId);

                if (0 < currentTimelineIndex)
                {
                    var targetTimeline = timelineTracks[currentTimelineIndex - 1];
                    Emit(new OnAutomatineEvent(OnAutomatineEvent.EventType.EVENT_OBJECT_SELECTED, targetTimeline.timelineId));
                    return;
                }

                return;
            }

            if (AutomatineGUIWindow.IsTackId(currentActiveObjectId))
            {
                /*
                 *                      select another timeline's same position tack.
                 */
                var currentActiveTack = TackById(currentActiveObjectId);

                if (currentActiveTack == null)
                {
                    return;
                }

                var currentActiveTackStart = currentActiveTack.start;
                var currentTimelineId      = currentActiveTack.parentTimelineId;

                var aboveTimeline = AboveTimeline(currentTimelineId);
                if (aboveTimeline != null)
                {
                    var nextActiveTack = aboveTimeline.TackByStart(currentActiveTackStart);

                    if (nextActiveTack != null)
                    {
                        Emit(new OnAutomatineEvent(OnAutomatineEvent.EventType.EVENT_OBJECT_SELECTED, nextActiveTack.tackId));
                    }
                    else
                    {
                        // no tack found, select timeline itself.
                        Emit(new OnAutomatineEvent(OnAutomatineEvent.EventType.EVENT_OBJECT_SELECTED, aboveTimeline.timelineId));
                    }
                }
                return;
            }
        }
Ejemplo n.º 4
0
        public void SelectBelowObjectById(string currentActiveObjectId)
        {
            if (AutomatineGUIWindow.IsTimelineId(currentActiveObjectId))
            {
                var cursoredTimelineIndex = timelineTracks.FindIndex(timeline => timeline.timelineId == currentActiveObjectId);
                if (cursoredTimelineIndex < timelineTracks.Count - 1)
                {
                    var targetTimelineIndex = cursoredTimelineIndex + 1;
                    var targetTimeline      = timelineTracks[targetTimelineIndex];
                    Emit(new OnAutomatineEvent(OnAutomatineEvent.EventType.EVENT_OBJECT_SELECTED, targetTimeline.timelineId));
                }
                return;
            }

            if (AutomatineGUIWindow.IsTackId(currentActiveObjectId))
            {
                /*
                 *                      select another timeline's same position tack.
                 */
                var currentActiveTack = TackById(currentActiveObjectId);

                if (currentActiveTack == null)
                {
                    return;
                }

                var currentActiveTackStart = currentActiveTack.start;
                var currentTimelineId      = currentActiveTack.parentTimelineId;

                var belowTimeline = BelowTimeline(currentTimelineId);
                if (belowTimeline != null)
                {
                    var nextActiveTack = belowTimeline.TackByStart(currentActiveTackStart);
                    if (nextActiveTack != null)
                    {
                        Emit(new OnAutomatineEvent(OnAutomatineEvent.EventType.EVENT_OBJECT_SELECTED, nextActiveTack.tackId));
                    }
                    else
                    {
                        // no tack found, select timeline itself.
                        Emit(new OnAutomatineEvent(OnAutomatineEvent.EventType.EVENT_OBJECT_SELECTED, belowTimeline.timelineId));
                    }
                }
                return;
            }
        }
Ejemplo n.º 5
0
        public int GetStartFrameById(string objectId)
        {
            if (AutomatineGUIWindow.IsTimelineId(objectId))
            {
                return(-1);
            }

            if (AutomatineGUIWindow.IsTackId(objectId))
            {
                var targetContainedTimelineIndex = GetTackContainedTimelineIndex(objectId);
                if (0 <= targetContainedTimelineIndex)
                {
                    var foundStartFrame = timelineTracks[targetContainedTimelineIndex].GetStartFrameById(objectId);
                    if (0 <= foundStartFrame)
                    {
                        return(foundStartFrame);
                    }
                }
            }

            return(-1);
        }
Ejemplo n.º 6
0
        public void SelectNextTackOfTimelines(string currentActiveObjectId)
        {
            // if current active id is timeline, select first tack of that.
            if (AutomatineGUIWindow.IsTimelineId(currentActiveObjectId))
            {
                foreach (var timelineTrack in timelineTracks)
                {
                    if (timelineTrack.timelineId == currentActiveObjectId)
                    {
                        timelineTrack.SelectDefaultTackOrSelectTimeline();
                    }
                }
                return;
            }

            // if current active id is tack, select next one.
            if (AutomatineGUIWindow.IsTackId(currentActiveObjectId))
            {
                foreach (var timelineTrack in timelineTracks)
                {
                    timelineTrack.SelectNextTackOf(currentActiveObjectId);
                }
            }
        }