public static Cartesian3D <TLinear> GeodeticToAverage <TLinear>(IGeodetic geodetic) where TLinear : LinearUnit, new() { //check if not geodetic is Right Handed Cartesian3D <TLinear> cartesianFormOfGeodetic = geodetic.GetCartesianForm <TLinear>(); Matrix rotationMatrix = Transformation.CalculateEulerElementMatrix(geodetic.Datum.DatumMisalignment); return((Cartesian3D <TLinear>)cartesianFormOfGeodetic.Transform(rotationMatrix, geodetic.Datum.DatumTranslation.Negate())); }
public ISpherical Shift(ISphericalPoint newBase) { Cartesian3D <TLinear> temp = (Cartesian3D <TLinear>) this.ToCartesian <TLinear>().Shift(newBase.ToCartesian <TLinear>()); return(temp.ToSphericalForm <TLinear, TAngular>(this.HorizontalRange)); }
public ISpherical RotateAboutZ(AngularUnit value, RotateDirection direction) { Cartesian3D <TLinear> temp = (Cartesian3D <TLinear>) this.ToCartesian <TLinear>().RotateAboutZ(value, direction); return(temp.ToSphericalForm <TLinear, TAngular>(this.HorizontalRange)); }
public IAstronomical RotateAboutZ(AngularUnit value, RotateDirection direction) { Cartesian3D <Meter> temp = (Cartesian3D <Meter>) this.ToCartesian <Meter>().RotateAboutZ(value, direction); return(temp.ToAstronomicForm <TAngular>(this.HorizontalAngleRange)); }
public IEllipsoidal RotateAboutY(AngularUnit value, RotateDirection direction) { Cartesian3D <TLinear> temp = (Cartesian3D <TLinear>) this.ToCartesian <TLinear>().RotateAboutY(value, direction); return(temp.ToEllipsoidalForm <TLinear, TAngular>(this.Datum, this.HorizontalRange)); }