File: Lap.cs

package info (click to toggle)
quickroute-gps 2.5-1
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 19,576 kB
  • sloc: cs: 74,488; makefile: 72; sh: 43
file content (80 lines) | stat: -rw-r--r-- 1,558 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
using System;

namespace QuickRoute.BusinessEntities
{
  [Serializable]
  public class Lap : IComparable<Lap>, ICloneable
  {
    private DateTime time;
    private LapType lapType;
    private string description;

    public Lap()
    {
    }

    public Lap(DateTime time, LapType lapType)
    {
      this.time = time;
      this.lapType = lapType;
    }

    public Lap(DateTime time, LapType lapType, string description)
    {
      this.time = time;
      this.lapType = lapType;
      this.description = description;
    }

    public DateTime Time
    {
      get { return time; }
      set { time = value; }
    }

    public LapType LapType
    {
      get { return lapType; }
      set { lapType = value; }
    }

    public string Description
    {
      get { return description; }
      set { description = value; }
    }

    public LongLat GetLocation(Route route)
    {
      ParameterizedLocation pl = route.GetParameterizedLocationFromTime(time);
      return route.GetLocationFromParameterizedLocation(pl);
    }

    #region IComparable<Lap> Members

    public int CompareTo(Lap other)
    {
      var compare = Math.Sign(time.Ticks - other.Time.Ticks);
      return compare == 0 ? -lapType.CompareTo(other.lapType) : compare;
    }

    #endregion

    #region ICloneable Members

    public object Clone()
    {
      return this.MemberwiseClone();
    }

    #endregion
  }

  [Serializable]
  public enum LapType
  {
    Start,
    Lap,
    Stop
  }
}