Beispiel #1
0
        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()));
        }
Beispiel #2
0
        public ISpherical Shift(ISphericalPoint newBase)
        {
            Cartesian3D <TLinear> temp = (Cartesian3D <TLinear>) this.ToCartesian <TLinear>().Shift(newBase.ToCartesian <TLinear>());

            return(temp.ToSphericalForm <TLinear, TAngular>(this.HorizontalRange));
        }
Beispiel #3
0
        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));
        }
Beispiel #4
0
        public IAstronomical RotateAboutZ(AngularUnit value, RotateDirection direction)
        {
            Cartesian3D <Meter> temp = (Cartesian3D <Meter>) this.ToCartesian <Meter>().RotateAboutZ(value, direction);

            return(temp.ToAstronomicForm <TAngular>(this.HorizontalAngleRange));
        }
Beispiel #5
0
        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));
        }