wasSharp – Blame information for rev 27

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  
27 office 24 public double Kilometers => Meters / 1000d;
14 office 25  
26 public double Meters { get; }
27  
28 public int CompareTo(Distance other)
29 {
30 return Meters.CompareTo(other.Meters);
31 }
32  
33 public bool Equals(Distance other)
34 {
35 return this == other;
36 }
37  
38 public static bool operator >(Distance a, Distance b)
39 {
40 return a != null && b != null && a.Meters > b.Meters;
41 }
42  
43 public static bool operator >=(Distance a, Distance b)
44 {
45 return (a == null && b == null) || (a != null && b != null && a.Meters >= b.Meters);
46 }
47  
48 public static bool operator <(Distance a, Distance b)
49 {
50 return a != null && b != null && a.Meters < b.Meters;
51 }
52  
53 public static bool operator <=(Distance a, Distance b)
54 {
55 return (a == null && b == null) || (a != null && b != null && a.Meters <= b.Meters);
56 }
57  
58 public static bool operator ==(Distance a, Distance b)
59 {
60 return (ReferenceEquals(a, null) && ReferenceEquals(b, null)) ||
61 (!ReferenceEquals(a, null) && !ReferenceEquals(b, null) && a.Meters == b.Meters);
62 }
63  
64 public static bool operator !=(Distance a, Distance b)
65 {
66 return !(a == b);
67 }
68  
69 public override bool Equals(object obj)
70 {
71 if (obj == null)
72 return false;
73  
74 if (obj is Distance)
75 return Equals(obj as Distance);
76  
77 return ReferenceEquals(this, obj);
78 }
79  
80 public override int GetHashCode()
81 {
82 return base.GetHashCode();
83 }
84 }
27 office 85 }