public StateTick(AnalogEntity root, AnalogEntity segment, time_t pos, JudgeState state) { RootEntity = root; SegmentEntity = segment; Position = pos; State = state; }
public void Bake() { // 1 beat transition to anticipation, 1 beat hold anticipation // half measure reset AnalogEntity current = m_objects.First as AnalogEntity; while (current != null) { bool isTail = current.NextConnected == null; bool isSlam = current.IsInstant; bool prevWasSlam = current.PreviousConnected?.IsInstant ?? false; if (isSlam) { float magnitude = MathL.Abs(current.FinalValue - current.InitialValue); time_t maxDistToNext = 0; m_points.Add(new Point(current.AbsolutePosition, current.InitialValue, current.Shape)); m_points.Add(new Point(current.AbsolutePosition, current.FinalValue, current.Shape)); } else { if (!prevWasSlam) { m_points.Add(new Point(current.AbsolutePosition, current.InitialValue, current.Shape)); } if (isTail) { m_points.Add(new Point(current.AbsoluteEndPosition, current.FinalValue, current.Shape)); } } current = current.Next as AnalogEntity; } }
public ScoreTick(AnalogEntity entity, time_t pos, TickKind kind) { Entity = entity; Position = pos; Kind = kind; }