wasSharp – Blame information for rev 14

Subversion Repositories:
Rev:
Rev Author Line No. Line
14 office 1 ///////////////////////////////////////////////////////////////////////////
2 // Copyright (C) Wizardry and Steamworks 2016 - License: GNU GPLv3 //
3 // Please see: http://www.gnu.org/licenses/gpl.html for legal details, //
4 // rights of fair usage, the disclaimer and warranty conditions. //
5 ///////////////////////////////////////////////////////////////////////////
6  
7 using System;
8  
9 namespace wasSharp.Geo
10 {
11 public enum DistanceUnits
12 {
13 METERS = 1,
14 KILOMETERS = 2
15 }
16  
17 public class Distance : IComparable<Distance>, IEquatable<Distance>
18 {
19 public Distance(double meters)
20 {
21 Meters = meters;
22 }
23  
24 public double Kilometers
25 {
26 get { return Meters/1000d; }
27 }
28  
29 public double Meters { get; }
30  
31 public int CompareTo(Distance other)
32 {
33 return Meters.CompareTo(other.Meters);
34 }
35  
36 public bool Equals(Distance other)
37 {
38 return this == other;
39 }
40  
41 public static bool operator >(Distance a, Distance b)
42 {
43 return a != null && b != null && a.Meters > b.Meters;
44 }
45  
46 public static bool operator >=(Distance a, Distance b)
47 {
48 return (a == null && b == null) || (a != null && b != null && a.Meters >= b.Meters);
49 }
50  
51 public static bool operator <(Distance a, Distance b)
52 {
53 return a != null && b != null && a.Meters < b.Meters;
54 }
55  
56 public static bool operator <=(Distance a, Distance b)
57 {
58 return (a == null && b == null) || (a != null && b != null && a.Meters <= b.Meters);
59 }
60  
61 public static bool operator ==(Distance a, Distance b)
62 {
63 return (ReferenceEquals(a, null) && ReferenceEquals(b, null)) ||
64 (!ReferenceEquals(a, null) && !ReferenceEquals(b, null) && a.Meters == b.Meters);
65 }
66  
67 public static bool operator !=(Distance a, Distance b)
68 {
69 return !(a == b);
70 }
71  
72 public override bool Equals(object obj)
73 {
74 if (obj == null)
75 return false;
76  
77 if (obj is Distance)
78 return Equals(obj as Distance);
79  
80 return ReferenceEquals(this, obj);
81 }
82  
83 public override int GetHashCode()
84 {
85 return base.GetHashCode();
86 }
87 }
88 }