Exemplo n.º 1
0
        public List <Vector3> ConvertUTMFromDouble3(List <double3> double3List)
        {
            var vector3List = new List <Vector3>();

            foreach (var point in double3List)
            {
                var vector3 = MapOrigin.FromNorthingEasting(point.y, point.x, false, false);
                vector3.y = (float)point.z;
                vector3List.Add(vector3);
            }

            return(vector3List);
        }
    public void OnBridgeAvailable(Comm.Bridge bridge)
    {
        Bridge              = bridge;
        Bridge.OnConnected += () =>
        {
            Bridge.AddReader <Ros.Vector3>(ResetTopic, msg =>
            {
                var position = MapOrigin.FromNorthingEasting(msg.y, msg.x);

                int mask = 1 << LayerMask.NameToLayer("Ground And Road");
                RaycastHit hit;
                if (Physics.Raycast(position + new Vector3(0, 100, 0), new Vector3(0, -1, 0), out hit, Mathf.Infinity, mask))
                {
                    position    = hit.point;
                    position.y += 0.01f;
                }
                else
                {
                    position.y += 20.0f;
                }

                var angle    = (float)msg.z * Mathf.Rad2Deg - MapOrigin.Angle;
                var rotation = Quaternion.AngleAxis(angle, Vector3.up);
                // reset position, rotation, velocity and angular velocity
                GpsDevice.Agent.GetComponent <VehicleInputController>().controller.ResetSavedPosition(position, rotation);
            });
        };
    }