Esempio n. 1
0
        public bool GlobalToWorld(Coordinate converter, Vec3D position)
        {
            switch (_mapType)
            {
            case MapType.UNKNOWN:
            {
                return(false);
            }

            case MapType.UTM:

                UTMPos utmpos = new UTMPos(_metaData.Zone(), _metaData.North(), -(position.z + _origin.z), position.x + _origin.x, position.y + _origin.y);

                converter.SetUTMPos(utmpos);

                break;

            case MapType.GEOCENTRIC:

                CartPos cartpos = new CartPos(position.x + _origin.x, position.y + _origin.y, position.z + _origin.z);

                converter.SetCartPos(cartpos);

                break;
            }

            return(true);
        }
Esempio n. 2
0
            /// <summary>
            /// Returns a local orientation matrix for a specific CartPos position with east,north and up base vectors
            /// </summary>
            /// <param name="cartpos"></param>
            /// <param name="ellipsoid"></param>
            /// <returns>Matrix of [east][north][up] vectors</returns>
            public Matrix3 GetOrientationMatrix(CartPos cartpos, Ellipsoid ellipsoid = Ellipsoid.WGS84)
            {
                Matrix3 mat = new Matrix3();

                Coordinate_getOrientationMatrix_CartPos(GetNativeReference(), ref cartpos, ellipsoid, ref mat);

                return(mat);
            }
Esempio n. 3
0
        public bool GlobalToWorld(Vec3D global_position, out CartPos result)
        {
            Coordinate converter = new Coordinate();

            if (!GlobalToWorld(converter, global_position))
            {
                result = null;
                return(false);
            }

            return(converter.GetCartPos(out result));
        }
Esempio n. 4
0
        public bool LocalToWorld(MapPos pos, out CartPos result)
        {
            Vec3D position = pos.position;

            RoiNode roi = pos.node as RoiNode;

            if (roi != null && roi.IsValid())   // Convert to a global position
            {
                position += roi.Position;
            }

            return(GlobalToWorld(position, out result));
        }
Esempio n. 5
0
        public bool SetPosition(MapPos result, CartPos pos, GroundClampType groundClamp = GroundClampType.NONE, ClampFlags flags = ClampFlags.DEFAULT)
        {
            Coordinate converter = new Coordinate();

            converter.SetCartPos(pos);

            if (!WorldToMap(converter, ref result.position, ref result.local_orientation))
            {
                return(false);
            }

            // Check possibly local 3D under a roiNode

            MapToRoi(result);


            return(UpdatePosition(result, groundClamp, flags));
        }
Esempio n. 6
0
        public bool GetCartPos(MapPos pos, out CartPos result)
        {
            Coordinate converter = new Coordinate();

            Vec3D position = pos.position;

            result = new CartPos();

            // Check possibly local 3D under a roiNode

            RoiNode roi = pos.node as RoiNode;

            if (roi != null && roi.IsValid())
            {
                position += roi.Position;
            }

            switch (_mapType)
            {
            case MapType.UNKNOWN:
            {
                return(false);
            }

            case MapType.UTM:

                UTMPos utmpos = new UTMPos(_utmZone, _north, -(position.z + _origin.z), position.x + _origin.x, position.y + _origin.y);

                converter.SetUTMPos(utmpos);

                break;

            case MapType.GEOCENTRIC:

                CartPos cartpos = new CartPos(position.x + _origin.x, position.y + _origin.y, position.z + _origin.z);

                converter.SetCartPos(cartpos);

                break;
            }

            return(converter.GetCartPos(out result));
        }
Esempio n. 7
0
            public bool GetCartPos(out CartPos pos, Datum datum = Datum.WGS84)
            {
                pos = new CartPos();

                return(Coordinate_getCartPos(GetNativeReference(), ref pos, datum));
            }
Esempio n. 8
0
 public void SetCartPos(CartPos pos, Datum datum = Datum.WGS84)
 {
     Coordinate_setCartPos(GetNativeReference(), ref pos, datum);
 }
Esempio n. 9
0
 private static extern void Coordinate_getOrientationMatrix_CartPos(IntPtr nativeReference, ref CartPos pos, Ellipsoid ellipsoid, ref Matrix3 matrix);
Esempio n. 10
0
 private static extern bool Coordinate_getCartPos(IntPtr nativeReference, ref CartPos pos, Datum datum);
Esempio n. 11
0
 private static extern bool CartPos_create_pos(IntPtr native_reference, [Out] out CartPos pos);
Esempio n. 12
0
 private static extern IntPtr CartPos_create_dynamic(ref CartPos pos);
Esempio n. 13
0
 private static extern IntPtr CartPos_asString(ref CartPos pos);
Esempio n. 14
0
 private static extern void Coordinate_setCartPos(IntPtr nativeReference, CartPos pos, Datum datum);