Beispiel #1
0
        public void SegmentTime_Cloneable()
        {
            DateTime    now     = DateTime.Now;
            SegmentTime segment = new SegmentTime(now, now.AddDays(3.1));

            Panel_Cloneable.Clone(segment);
        }
        public void SegmentTime_CreateDay()
        {
            SegmentTime january2017_1 = SegmentTime.CreateDay(2017, 1, 1);

            Assert.IsTrue(january2017_1.Start == new DateTime(2017, 1, 1, 0, 0, 0));
            Assert.IsTrue(january2017_1.End == new DateTime(2017, 1, 2).AddTicks(-1));
        }
Beispiel #3
0
        public void IntersectedTime_PartOf()
        {
            SegmentTime segment      = new SegmentTime(_label_2, _label_3);
            SegmentTime segmentClone = new SegmentTime(_label_2, _label_3);

            Panel_InterfaceIntersected <DateTime, TimeSpan> .PartOf(segment, segmentClone);
        }
        public void SegmentTime_CreateMax()
        {
            SegmentTime sg = SegmentTime.CreateMax();

            Assert.IsTrue(sg.Start == DateTime.MinValue);
            Assert.IsTrue(sg.End == DateTime.MaxValue);
        }
        public void SegmentTime_SetSpan_Negate()
        {
            SegmentTime segmentTime = new SegmentTime();

            segmentTime.SetSegment(_label_1, _label_2);
            Panel_InterfaceSegment <DateTime, TimeSpan> .SetSpan(segmentTime, _spanTickNegate, _label_2);
        }
        public void SegmentTime_SetSpan_EndMoreMax()
        {
            SegmentTime segmentTime = new SegmentTime();

            segmentTime.SetSegment(DateTime.MaxValue, DateTime.MaxValue);
            Panel_InterfaceSegment <DateTime, TimeSpan> .SetSpan(segmentTime, TimeSpan.MaxValue, DateTime.MaxValue);
        }
        public void SegmentTime_SetSpan_Max()
        {
            _label_1 = DateTime.MaxValue - _spanTick;
            SegmentTime segmentTime = new  SegmentTime();

            segmentTime.SetSegment(_label_1, _label_1);
            Panel_InterfaceSegment <DateTime, TimeSpan> .SetSpan(segmentTime, _spanTick, DateTime.MaxValue);
        }
Beispiel #8
0
        public void IntersectedTime_LabelOn()
        {
            SegmentTime segment = new SegmentTime(_label_2, _label_3);

            Panel_InterfaceIntersected <DateTime, TimeSpan> .LabelOn(segment, _label_2);

            Panel_InterfaceIntersected <DateTime, TimeSpan> .LabelOn(segment, _label_3);
        }
Beispiel #9
0
        public void IntersectedTime_NotPartOf()
        {
            SegmentTime segmentLeft  = new SegmentTime(_label_1, _label_3);
            SegmentTime segmentRight = new SegmentTime(_label_2, _label_4);

            Panel_InterfaceIntersected <DateTime, TimeSpan> .NotPartOf(segmentLeft, segmentRight);

            Panel_InterfaceIntersected <DateTime, TimeSpan> .NotPartOf(segmentRight, segmentLeft);
        }
Beispiel #10
0
        public void IntersecteTimet_SegmentIn()
        {
            SegmentTime segmentLeft  = new SegmentTime(_label_1, _label_3);
            SegmentTime segmentRight = new SegmentTime(_label_2, _label_4);

            Panel_InterfaceIntersected <DateTime, TimeSpan> .SegmentIn(segmentLeft, segmentRight);

            Panel_InterfaceIntersected <DateTime, TimeSpan> .SegmentIn(segmentRight, segmentLeft);
        }
        public void SegmentTime_GetSpanAfterSetSegment()
        {
            SegmentTime segment = new SegmentTime();

            Panel_InterfaceSegment <DateTime, TimeSpan> .GetSpanAfterSetSegment(segment, _label_1, _label_1, TimeSpan.Zero);

            DateTime startDay     = new DateTime(2016, 1, 1);
            DateTime startNextDay = new DateTime(2016, 1, 2);
            TimeSpan spanDay      = new TimeSpan(1, 0, 0, 0);

            Panel_InterfaceSegment <DateTime, TimeSpan> .GetSpanAfterSetSegment(segment, startDay, startNextDay, spanDay);
        }
        public void SegmentTime_Shift()
        {
            TimeSpan    one        = new TimeSpan(1);
            TimeSpan    two        = new TimeSpan(2);
            SegmentTime segmentMax = new SegmentTime(DateTime.MinValue, DateTime.MaxValue);

            Panel_InterfaceSegment <DateTime, TimeSpan> .ShiftMax(segmentMax, one);

            Panel_InterfaceSegment <DateTime, TimeSpan> .ShiftMax(segmentMax, one.Negate());

            SegmentTime segmentLeftMin  = new SegmentTime(DateTime.MinValue, DateTime.MaxValue - one);
            SegmentTime segmentRightMax = new SegmentTime(DateTime.MinValue + one, DateTime.MaxValue);

            Panel_InterfaceSegment <DateTime, TimeSpan> .Shift(segmentLeftMin, one, segmentRightMax);

            Panel_InterfaceSegment <DateTime, TimeSpan> .Shift(segmentRightMax, two.Negate(), segmentLeftMin);
        }
    internal void UpdateSegmentSummary(Segment s, ErgData e)
    {
        segmentType.text      = strDifficulty[(int)s.typeIntensity]; // .type.ToString();
        segmentObjective.text = s.getTextObjective();                // workout.segments[i].target.spm.ToString();
        segmentDuration.text  = s.getTextRemaining(0);               // workout.segments[i].duration.ToString();
        //set background color
        //no se que valores arroja intensity porque es del tipo SegmentIntensity
        // pero para cambiar el color del fondo seria
        //segmentItem.intensity.color = el color
        // s

        avgPace.text   = SegmentTime.timeToString((int)e.pace);
        distancie.text = (int)Math.Round(e.distance) + " m";
        time.text      = SegmentTime.timeToMSString(e.time);
        avgSPM.text    = e.spm + "";;
        avgPower.text  = e.avgPower + " W";
        avgHR.text     = e.heartrate + " BPM";
    }
Beispiel #14
0
    void SetRank(int i, RankNode rank)
    {
        if (rankLocal == null)
        {
            return;
        }
        // rank.progressDistance
        Debug.Log("SetRank 1" + rankLocal);
        Debug.Log("SetRank 2" + rank);
        Debug.Log("SetRank 3" + rankNameTexts);
        Debug.Log("SetRank 3" + rankNameTexts.Length);

        rankNameTexts[i].text = (i + 1) + " " + GetShortName(rank.username);
        ErgData e = rank.ergData;
        Segment s = rank.segment;

        rankStatsTexts[i].text = SegmentTime.timeToString((int)rank.ergData.pace) + " " + rank.ergData.spm + " " + (int)(rank.progressDistance - rankLocal.progressDistance) + " m"; //  + rank.ergData.heartrate;
        mapController.UpdatePosition(i, rank, rankLocal);
        //  rankStatsTexts[i].text = SegmentTime.timeToString((int)e.pace) + " " + (s.getProgressedDistance(e)*-1);//  + "|" + s.getProgressedDistance(e);
    }
        public void SegmentTime_CreateMonth()
        {
            SegmentTime january2017 = SegmentTime.CreateMonth(2017, 1, 1);

            Assert.IsTrue(january2017.Start == new DateTime(2017, 1, 1, 0, 0, 0));
            Assert.IsTrue(january2017.End == new DateTime(2017, 2, 1).AddTicks(-1));

            SegmentTime february2017 = SegmentTime.CreateMonth(2017, 2, 1);

            Assert.IsTrue(february2017.Start == new DateTime(2017, 2, 1, 0, 0, 0));
            Assert.IsTrue(february2017.End == new DateTime(2017, 3, 1).AddTicks(-1));

            SegmentTime february2016 = SegmentTime.CreateMonth(2016, 2, 1);

            Assert.IsTrue(february2016.Start == new DateTime(2016, 2, 1, 0, 0, 0));
            Assert.IsTrue(february2016.End == new DateTime(2016, 3, 1).AddTicks(-1));

            SegmentTime june2017 = SegmentTime.CreateMonth(2017, 6, 1);

            Assert.IsTrue(june2017.Start == new DateTime(2017, 6, 1, 0, 0, 0));
            Assert.IsTrue(june2017.End == new DateTime(2017, 7, 1).AddTicks(-1));
        }
Beispiel #16
0
    // Start is called before the first frame update

    // Update is called once per frame
    public void ShowSegmentSummary(SegmentEndEvent segmentEndEvent, StatisticManager statisticManager)
    {
        ErgData e = statisticManager.GetSegmentErgDataStats();

        textPace.text = SegmentTime.timeToString((int)e.pace);
        textSPM.text  = e.spm + "/" + segmentEndEvent.currentSegment.getTextObjective();
        // textObjective.text = segmentEndEvent.currentSegment.getTextObjective();
        textPower.text = e.avgPower + " watts";

        // ErgData[] ergs = (ErgData[]).ToArray();
        string ret = "";

        ErgData[] s = statisticManager.ergSegmentStack.ToArray();

        for (int i = 0; i < s.Length; ++i)
        {
            e    = s[i];
            ret += "[" + e.pace + ", " + e.spm + ", " + e.avgPower + "] ";
        }
        print("jojo " + ret);
        layout.SetActive(true);
        Invoke("HideSegmentSummary", 5);
    }
Beispiel #17
0
        public void IntersectedTime_SegmentNull()
        {
            SegmentTime segment = new SegmentTime(_label_1, _label_2);

            Panel_InterfaceIntersected <DateTime, TimeSpan> .SegmentNull_Intersected_PartOf(segment);
        }
        public void SegmentTime_StartState()
        {
            SegmentTime segmentTime = new SegmentTime();

            Panel_InterfaceSegment <DateTime, TimeSpan> .StartState_Empty(segmentTime);
        }
Beispiel #19
0
        public void DrawGeneral(Graphics g, LiveSplitState state, float width, float height)
        {
            Timer.DrawBackground(g, InternalComponent.TimerColor, Settings.BackgroundColor, Settings.BackgroundColor2, width, height, Settings.BackgroundGradient);

            var lastSplitOffset = state.CurrentSplitIndex == state.Run.Count ? -1 : 0;

            var originalDrawSize = Math.Min(Settings.IconSize, width - 14);
            var icon             = state.CurrentSplitIndex >= 0 ? state.Run[state.CurrentSplitIndex + lastSplitOffset].Icon : null;

            if (Settings.DisplayIcon && icon != null)
            {
                if (OldImage != icon)
                {
                    ImageAnimator.Animate(icon, (s, o) => { });
                    OldImage = icon;
                }
                var drawWidth  = originalDrawSize;
                var drawHeight = originalDrawSize;
                if (icon.Width > icon.Height)
                {
                    var ratio = icon.Height / (float)icon.Width;
                    drawHeight *= ratio;
                }
                else
                {
                    var ratio = icon.Width / (float)icon.Height;
                    drawWidth *= ratio;
                }

                ImageAnimator.UpdateFrames(icon);

                g.DrawImage(
                    icon,
                    7 + (originalDrawSize - drawWidth) / 2,
                    (height - originalDrawSize) / 2.0f + (originalDrawSize - drawHeight) / 2,
                    drawWidth,
                    drawHeight);

                IconWidth = (int)(originalDrawSize + 7.5f);
            }
            else
            {
                IconWidth = 0;
            }

            InternalComponent.Settings.ShowGradient        = Settings.TimerShowGradient;
            InternalComponent.Settings.OverrideSplitColors = Settings.OverrideTimerColors;
            InternalComponent.Settings.TimerColor          = Settings.TimerColor;
            InternalComponent.Settings.DigitsFormat        = Settings.DigitsFormat;
            InternalComponent.Settings.Accuracy            = Settings.Accuracy;
            InternalComponent.Settings.DecimalsSize        = Settings.DecimalsSize;
            SegmentTimer.Settings.ShowGradient             = Settings.SegmentTimerShowGradient;
            SegmentTimer.Settings.OverrideSplitColors      = true;
            SegmentTimer.Settings.TimerColor   = Settings.SegmentTimerColor;
            SegmentTimer.Settings.DigitsFormat = Settings.SegmentDigitsFormat;
            SegmentTimer.Settings.Accuracy     = Settings.SegmentAccuracy;
            SegmentTimer.Settings.DecimalsSize = Settings.SegmentTimerDecimalsSize;

            if (state.CurrentSplitIndex >= 0)
            {
                var labelsFont = new Font(Settings.SegmentLabelsFont.FontFamily, Settings.SegmentLabelsFont.Size, Settings.SegmentLabelsFont.Style);
                var timesFont  = new Font(Settings.SegmentTimesFont.FontFamily, Settings.SegmentTimesFont.Size, Settings.SegmentTimesFont.Style);
                LabelSegment.Font   = labelsFont;
                LabelSegment.X      = 5 + IconWidth;
                LabelSegment.Y      = height * ((100f - Settings.SegmentTimerSizeRatio) / 100f);
                LabelSegment.Width  = width - SegmentTimer.ActualWidth - 5 - IconWidth;
                LabelSegment.Height = height * (Settings.SegmentTimerSizeRatio / 200f) * (!HideComparison ? 1f : 2f);
                LabelSegment.HorizontalAlignment = StringAlignment.Near;
                LabelSegment.VerticalAlignment   = StringAlignment.Center;
                LabelSegment.ForeColor           = Settings.SegmentLabelsColor;
                LabelSegment.HasShadow           = state.LayoutSettings.DropShadows;
                LabelSegment.ShadowColor         = state.LayoutSettings.ShadowsColor;
                LabelSegment.OutlineColor        = state.LayoutSettings.TextOutlineColor;
                if (Comparison != "None")
                {
                    LabelSegment.Draw(g);
                }

                LabelBest.Font   = labelsFont;
                LabelBest.X      = 5 + IconWidth;
                LabelBest.Y      = height * ((100f - Settings.SegmentTimerSizeRatio / 2f) / 100f);
                LabelBest.Width  = width - SegmentTimer.ActualWidth - 5 - IconWidth;
                LabelBest.Height = height * (Settings.SegmentTimerSizeRatio / 200f);
                LabelBest.HorizontalAlignment = StringAlignment.Near;
                LabelBest.VerticalAlignment   = StringAlignment.Center;
                LabelBest.ForeColor           = Settings.SegmentLabelsColor;
                LabelBest.HasShadow           = state.LayoutSettings.DropShadows;
                LabelBest.ShadowColor         = state.LayoutSettings.ShadowsColor;
                LabelBest.OutlineColor        = state.LayoutSettings.TextOutlineColor;
                if (!HideComparison)
                {
                    LabelBest.Draw(g);
                }

                var offset = Math.Max(LabelSegment.ActualWidth, HideComparison ? 0 : LabelBest.ActualWidth) + 10;

                if (Comparison != "None")
                {
                    SegmentTime.Font   = timesFont;
                    SegmentTime.X      = offset + IconWidth;
                    SegmentTime.Y      = height * ((100f - Settings.SegmentTimerSizeRatio) / 100f);
                    SegmentTime.Width  = width - SegmentTimer.ActualWidth - offset - IconWidth;
                    SegmentTime.Height = height * (Settings.SegmentTimerSizeRatio / 200f) * (!HideComparison ? 1f : 2f);
                    SegmentTime.HorizontalAlignment = StringAlignment.Near;
                    SegmentTime.VerticalAlignment   = StringAlignment.Center;
                    SegmentTime.ForeColor           = Settings.SegmentTimesColor;
                    SegmentTime.HasShadow           = state.LayoutSettings.DropShadows;
                    SegmentTime.ShadowColor         = state.LayoutSettings.ShadowsColor;
                    SegmentTime.OutlineColor        = state.LayoutSettings.TextOutlineColor;
                    SegmentTime.IsMonospaced        = true;
                    SegmentTime.Draw(g);
                }

                if (!HideComparison)
                {
                    BestSegmentTime.Font   = timesFont;
                    BestSegmentTime.X      = offset + IconWidth;
                    BestSegmentTime.Y      = height * ((100f - Settings.SegmentTimerSizeRatio / 2f) / 100f);
                    BestSegmentTime.Width  = width - SegmentTimer.ActualWidth - offset - IconWidth;
                    BestSegmentTime.Height = height * (Settings.SegmentTimerSizeRatio / 200f);
                    BestSegmentTime.HorizontalAlignment = StringAlignment.Near;
                    BestSegmentTime.VerticalAlignment   = StringAlignment.Center;
                    BestSegmentTime.ForeColor           = Settings.SegmentTimesColor;
                    BestSegmentTime.HasShadow           = state.LayoutSettings.DropShadows;
                    BestSegmentTime.ShadowColor         = state.LayoutSettings.ShadowsColor;
                    BestSegmentTime.OutlineColor        = state.LayoutSettings.TextOutlineColor;
                    BestSegmentTime.IsMonospaced        = true;
                    BestSegmentTime.Draw(g);
                }
                SplitName.Font   = Settings.SplitNameFont;
                SplitName.X      = IconWidth + 5;
                SplitName.Y      = 0;
                SplitName.Width  = width - InternalComponent.ActualWidth - IconWidth - 5;
                SplitName.Height = height * ((100f - Settings.SegmentTimerSizeRatio) / 100f);
                SplitName.HorizontalAlignment = StringAlignment.Near;
                SplitName.VerticalAlignment   = StringAlignment.Center;
                SplitName.ForeColor           = Settings.SplitNameColor;
                SplitName.HasShadow           = state.LayoutSettings.DropShadows;
                SplitName.ShadowColor         = state.LayoutSettings.ShadowsColor;
                SplitName.OutlineColor        = state.LayoutSettings.TextOutlineColor;
                if (Settings.ShowSplitName)
                {
                    SplitName.Draw(g);
                }
            }
        }
        public void SegmentTime_SetReverseLabel()
        {
            SegmentTime segmentInt = new SegmentTime();

            Panel_InterfaceSegment <DateTime, TimeSpan> .SetSegment_ReverseLabel(segmentInt, _label_2, _label_1);
        }
        public void SegmentTime_IsPoint()
        {
            SegmentTime segmentInt = new SegmentTime();

            Panel_InterfaceSegment <DateTime, TimeSpan> .IsPoint(segmentInt, _label_1, _label_2);
        }