public void Construct() { Geodetic3D a = new Geodetic3D(1.0, 2.0, 3.0); Assert.AreEqual(1.0, a.Longitude); Assert.AreEqual(2.0, a.Latitude); Assert.AreEqual(3.0, a.Height); }
public Vector3D GeodeticSurfaceNormal(Geodetic3D geodetic) { double cosLatitude = Math.Cos(geodetic.Latitude); return(new Vector3D( cosLatitude * Math.Cos(geodetic.Longitude), cosLatitude * Math.Sin(geodetic.Longitude), Math.Sin(geodetic.Latitude))); }
public void TestEquals() { Geodetic3D a = new Geodetic3D(1.0, 2.0, 3.0); Geodetic3D b = new Geodetic3D(1.0, 2.0, 4.0); Geodetic3D c = new Geodetic3D(1.0, 3.0, 3.0); Geodetic3D d = new Geodetic3D(2.0, 2.0, 3.0); Geodetic3D e = new Geodetic3D(1.0, 2.0, 3.0); object objA = a; object objB = b; object objC = c; object objD = d; object objE = e; Assert.IsTrue(a.Equals(a)); Assert.IsTrue(a.Equals(e)); Assert.IsTrue(e.Equals(a)); Assert.IsTrue(a.Equals(objA)); Assert.IsTrue(a.Equals(objE)); Assert.IsTrue(objA.Equals(objA)); Assert.IsTrue(objA.Equals(objE)); Assert.IsTrue(a == e); Assert.IsTrue(e == a); Assert.IsTrue(a != b); Assert.IsTrue(a != c); Assert.IsTrue(a != d); Assert.IsFalse(a.Equals(b)); Assert.IsFalse(a.Equals(c)); Assert.IsFalse(a.Equals(d)); Assert.IsFalse(b.Equals(a)); Assert.IsFalse(c.Equals(a)); Assert.IsFalse(d.Equals(a)); Assert.IsFalse(a.Equals(objB)); Assert.IsFalse(a.Equals(objC)); Assert.IsFalse(a.Equals(objD)); Assert.IsFalse(objA.Equals(objB)); Assert.IsFalse(objA.Equals(objC)); Assert.IsFalse(objA.Equals(objD)); Assert.IsFalse(a == b); Assert.IsFalse(a == c); Assert.IsFalse(a == d); Assert.IsFalse(a != e); Assert.IsFalse(a.Equals(null)); Assert.IsFalse(a.Equals(5)); }
public void TestGetHashCode() { Geodetic3D a = new Geodetic3D(1.0, 2.0, 3.0); Geodetic3D b = new Geodetic3D(1.0, 2.0, 4.0); Geodetic3D c = new Geodetic3D(1.0, 3.0, 3.0); Geodetic3D d = new Geodetic3D(2.0, 2.0, 3.0); Geodetic3D e = new Geodetic3D(1.0, 2.0, 3.0); Assert.AreEqual(a.GetHashCode(), e.GetHashCode()); Assert.AreNotEqual(a.GetHashCode(), b.GetHashCode()); Assert.AreNotEqual(a.GetHashCode(), c.GetHashCode()); Assert.AreNotEqual(a.GetHashCode(), d.GetHashCode()); }
public Vector3D ToVector3D(Geodetic3D geodetic) { Vector3D n = GeodeticSurfaceNormal(geodetic); Vector3D k = _radiiSquared.MultiplyComponents(n); double gamma = Math.Sqrt( (k.X * n.X) + (k.Y * n.Y) + (k.Z * n.Z)); Vector3D rSurface = k / gamma; return(rSurface + (geodetic.Height * n)); }
public void ToGeodetic3D() { Ellipsoid ellipsoid = new Ellipsoid(6378137.0, 6378137.0, 6356752.314245); Vector3D v = ellipsoid.ToVector3D(new Geodetic3D(0, 0, 0)); Geodetic3D g = ellipsoid.ToGeodetic3D(v); Assert.AreEqual(0.0, g.Longitude, 1e-10); Assert.AreEqual(0.0, g.Latitude, 1e-8); Assert.AreEqual(0.0, g.Height, 1e-10); v = ellipsoid.ToVector3D(new Geodetic3D(Trig.ToRadians(45.0), Trig.ToRadians(-60.0), -123.4)); g = ellipsoid.ToGeodetic3D(v); Assert.AreEqual(Trig.ToRadians(45.0), g.Longitude, 1e-10); Assert.AreEqual(Trig.ToRadians(-60.0), g.Latitude, 1e-3); Assert.AreEqual(-123.4, g.Height, 1e-3); v = ellipsoid.ToVector3D(new Geodetic3D(Trig.ToRadians(-97.3), Trig.ToRadians(71.2), 1188.7)); g = ellipsoid.ToGeodetic3D(v); Assert.AreEqual(Trig.ToRadians(-97.3), g.Longitude, 1e-10); Assert.AreEqual(Trig.ToRadians(71.2), g.Latitude, 1e-3); Assert.AreEqual(1188.7, g.Height, 1e-3); }
public static Geodetic3D ToDegrees(Geodetic3D geodetic) { return(new Geodetic3D(ToDegrees(geodetic.Longitude), ToDegrees(geodetic.Latitude), geodetic.Height)); }
public Geodetic2D(Geodetic3D geodetic3D) { _longitude = geodetic3D.Longitude; _latitude = geodetic3D.Latitude; }