private void Awake()
 {
     RigidBody = GetComponentInParent <Rigidbody>();
     Actions   = GetComponentInParent <VehicleActions>();
     Dynamics  = GetComponentInParent <IVehicleDynamics>();
     MapOrigin = MapOrigin.Find();
 }
Exemple #2
0
    private void Start()
    {
        MapOrigin            = MapOrigin.Find();
        PedSpawnCheckBitmask = LayerMask.GetMask("Pedestrian", "Agent", "NPC");
        SpawnBoundsSize      = new Vector3(MapOrigin.PedSpawnBoundSize, 50f, MapOrigin.PedSpawnBoundSize);
        PedMaxCount          = MapOrigin.PedMaxCount;
        SimulatorCamera      = SimulatorManager.Instance.CameraManager.SimulatorCamera;

        SpawnInfo[] spawnInfos = FindObjectsOfType <SpawnInfo>();
        Loader.Instance.Network.MessagesManager?.RegisterObject(this);
        var pt = Vector3.zero;

        if (spawnInfos.Length > 0)
        {
            pt = spawnInfos[0].transform.position;
        }

        if (Loader.Instance.Network.IsClient)
        {
            return;
        }

        if (NavMesh.SamplePosition(pt, out NavMeshHit hit, 1f, NavMesh.AllAreas))
        {
            InitPedestrians();
            if (PedestriansActive)
            {
                SetPedOnMap();
            }
        }
    private void Start()
    {
        MapOrigin            = MapOrigin.Find();
        PedSpawnCheckBitmask = LayerMask.GetMask("Pedestrian", "Agent", "NPC");
        SpawnBoundsSize      = new Vector3(MapOrigin.PedSpawnBoundSize, 50f, MapOrigin.PedSpawnBoundSize);
        PedMaxCount          = MapOrigin.PedMaxCount;
        SimulatorCamera      = SimulatorManager.Instance.CameraManager.SimulatorCamera;

        SpawnInfo[] spawnInfos = FindObjectsOfType <SpawnInfo>();
        var         pt         = Vector3.zero;

        if (spawnInfos.Length > 0)
        {
            pt = spawnInfos[0].transform.position;
        }
        NavMeshHit hit;

        if (NavMesh.SamplePosition(pt, out hit, 1f, NavMesh.AllAreas))
        {
            InitPedestrians();
            if (PedestriansActive)
            {
                SetPedOnMap();
            }
        }
        else
        {
            var sceneName = SceneManager.GetActiveScene().name;
            Debug.LogError($"{sceneName} is missing Pedestrian NavMesh");
            gameObject.SetActive(false);
        }
    }
Exemple #4
0
    public override void OnInspectorGUI()
    {
        MapOrigin origin = (MapOrigin)target;

        DrawDefaultInspector();

        int currentlySelected = -1;

        if (origin.TimeZoneSerialized != null)
        {
            currentlySelected = Array.FindIndex(TimeZones, tz => tz.DisplayName == origin.TimeZoneString);
            if (currentlySelected == -1)
            {
                var timeZone = origin.TimeZone;
                currentlySelected = Array.FindIndex(TimeZones, tz => tz.BaseUtcOffset == timeZone.BaseUtcOffset);
            }
        }

        var values = TimeZones.Select(tz => tz.DisplayName.Replace("&", "&&")).ToArray();

        currentlySelected = EditorGUILayout.Popup(currentlySelected, values);
        if (currentlySelected != -1)
        {
            if (!origin.TimeZone.Equals(TimeZones[currentlySelected]))
            {
                origin.TimeZoneSerialized = TimeZones[currentlySelected].ToSerializedString();
                origin.TimeZoneString     = TimeZones[currentlySelected].DisplayName;
                EditorUtility.SetDirty(origin);
            }
        }
    }
Exemple #5
0
    private void Start()
    {
        MapOrigin            = MapOrigin.Find();
        spawnsManager        = GetComponent <SpawnsManager>();
        PedSpawnCheckBitmask = LayerMask.GetMask("Pedestrian", "Agent", "NPC");
        PedMaxCount          = MapOrigin.PedMaxCount;
        SimCameraManager     = SimulatorManager.Instance.CameraManager;
        SimulatorCamera      = SimCameraManager.SimulatorCamera;
        MapManager           = SimulatorManager.Instance.MapManager;

        SpawnInfo[] spawnInfos = FindObjectsOfType <SpawnInfo>();
        Loader.Instance.Network.MessagesManager?.RegisterObject(this);
        var pt = Vector3.zero;

        if (spawnInfos.Length > 0)
        {
            pt = spawnInfos[0].transform.position;
        }

        if (Loader.Instance.Network.IsClient)
        {
            return;
        }

        if (NavMesh.SamplePosition(pt, out NavMeshHit hit, 1f, NavMesh.AllAreas))
        {
            if (!SimulatorManager.Instance.IsAPI && !Loader.Instance.Network.IsClient)
            {
                SpawnPedPool();
                if (PedestriansActive)
                {
                    SetPedOnMap(true);
                }
            }
        }
        public void Start()
        {
            RigidBody = GetComponentInParent <Rigidbody>();
            MapOrigin = MapOrigin.Find();

            Task.Run(Publisher);
        }
Exemple #7
0
    private void OnSceneGUI()
    {
        Origin = (MapOrigin)target;
        if (Origin == null)
        {
            return;
        }

        if (Origin.transform.rotation != Quaternion.Euler(new Vector3(0f, -90f, 0f)))
        {
            Origin.transform.rotation = Quaternion.Euler(new Vector3(0f, -90f, 0f));
            HelpText = "MapOrigin transform must be -90 in the Y axis";
        }

        var style = new GUIStyle();

        Handles.BeginGUI();
        if (GUILayout.Button("Orient Scene", GUILayout.Width(125)))
        {
            SceneView sceneView = SceneView.lastActiveSceneView;
            sceneView.orthographic = true;
            sceneView.LookAt(new Vector3(0f, 0f, 0f), Quaternion.Euler(90, -90, 0));
        }
        Handles.EndGUI();
        var size = HandleUtility.GetHandleSize(Origin.transform.position);

        style.fontSize         = (int)(65 / size);
        style.fontStyle        = FontStyle.Bold;
        style.normal.textColor = Color.red;
        Handles.Label(Origin.transform.position + Origin.transform.forward + new Vector3(0, 1, 0), "N", style);
        style.normal.textColor = Color.white;
        Handles.Label(Origin.transform.position + Origin.transform.right + new Vector3(0, 1, 0), "E", style);
        Handles.Label(Origin.transform.position - Origin.transform.forward + new Vector3(0, 1, 0), "S", style);
        Handles.Label(Origin.transform.position - Origin.transform.right + new Vector3(0, 1, 0), "W", style);
    }
        // read map origin, update MapOrigin
        bool CreateOrUpdateMapOrigin(Map apolloMap, MapOrigin mapOrigin)
        {
            var header       = apolloMap.header;
            var geoReference = header.projection.proj;
            var items        = geoReference.Split('+')
                               .Select(s => s.Split('='))
                               .Where(s => s.Length > 1)
                               .ToDictionary(element => element[0].Trim(), element => element[1].Trim());

            if (!items.ContainsKey("proj") || items["proj"] != "utm")
            {
                return(false);
            }

            double latitude, longitude;

            longitude = (header.left + header.right) / 2;
            latitude  = (header.top + header.bottom) / 2;

            int zoneNumber;

            if (items.ContainsKey("zone"))
            {
                zoneNumber = int.Parse(items["zone"]);
            }
            else
            {
                zoneNumber = MapOrigin.GetZoneNumberFromLatLon(latitude, longitude);
            }

            mapOrigin.UTMZoneId = zoneNumber;
            mapOrigin.FromLatitudeLongitude(latitude, longitude, out mapOrigin.OriginNorthing, out mapOrigin.OriginEasting);

            return(true);
        }
Exemple #9
0
    private void AddReferencePoint(MapOrigin origin)
    {
        var index = FindObjectsOfType <MapOriginReferencePoint>(true).Length + 1;
        var p     = new GameObject("ReferencePoint" + index).AddComponent <MapOriginReferencePoint>();

        if (SceneView.lastActiveSceneView != null)
        {
            var camera = SceneView.lastActiveSceneView.camera.transform;
            if (Physics.Raycast(new Ray(camera.position, camera.forward), out var hit))
            {
                p.transform.position = hit.point;
            }
        }
        var gps = origin.GetGpsLocation(p.transform.position);

        p.latitue   = gps.Latitude;
        p.longitude = gps.Longitude;
        var mapHolder = FindObjectOfType <MapHolder>().transform;
        var holder    = mapHolder.Find("ReferencePoints");

        if (holder == null)
        {
            holder        = new GameObject("ReferencePoints").transform;
            holder.parent = mapHolder;
        }
        p.transform.parent         = holder;
        Selection.activeGameObject = p.gameObject;
    }
Exemple #10
0
    private void Start()
    {
        MapOrigin            = MapOrigin.Find();
        NPCSpawnCheckBitmask = LayerMask.GetMask("NPC", "Agent");
        SpawnBoundsSize      = new Vector3(MapOrigin.NPCSpawnBoundSize, 50f, MapOrigin.NPCSpawnBoundSize);
        NPCMaxCount          = MapOrigin.NPCMaxCount;
        SimulatorCamera      = SimulatorManager.Instance.CameraManager.SimulatorCamera;
        MapManager           = SimulatorManager.Instance.MapManager;

        NPCVehicles.Clear();
        foreach (var data in Simulator.Web.Config.NPCVehicles)
        {
            NPCVehicles.Add(new NPCS {
                NPCType = data.Value.NPCType,
                Prefab  = data.Value.prefab,
            });

            if (NPCColorData.Count(d => d.Type == data.Value.NPCType) == 0)
            {
                Debug.LogWarning($"NPC of type {data.Value.NPCType} loaded but no colors to pick configured for this type");
            }
        }

        var network = Loader.Instance.Network;

        network.MessagesManager?.RegisterObject(this);
        if (!SimulatorManager.Instance.IsAPI && !network.IsClient)
        {
            SpawnNPCPool();
            if (NPCActive)
            {
                SetNPCOnMap();
            }
        }
    }
Exemple #11
0
            public void ExportHDMap()
            {
                mapManager = FindObjectOfType <MapManager>();
                if (mapManager == null)
                {
                    Debug.LogError("Error! No MapManager.cs in scene!");
                    return;
                }

                mapManager.SetMapForExport();

                //use the settings from current tool
                PROXIMITY = proximity;
                ARROWSIZE = arrowSize;

                MapOrigin mapOrigin = FindObjectOfType <MapOrigin>();

                if (mapOrigin == null)
                {
                    Debug.LogError("Error! No MapOrigin.cs in scene!");
                    return;
                }

                OriginEasting  = mapOrigin.OriginEasting;
                OriginNorthing = mapOrigin.OriginNorthing;
                Angle          = mapOrigin.Angle;

                if (Calculate())
                {
                    Export();
                }
            }
Exemple #12
0
        public void Execute(JSONNode args)
        {
            var api = ApiManager.Instance;

            var map = MapOrigin.Find();

            if (map == null)
            {
                api.SendError(this, "MapOrigin not found. Is the scene loaded?");
                return;
            }

            var position = args["transform"]["position"].ReadDouble3();
            var rotation = args["transform"]["rotation"].ReadDouble3();

            double northing, easting;

            map.PositionToNorthingEasting(position, out northing, out easting);

            double latitude, longitude;

            map.NorthingEastingToLatLong(northing, easting, out latitude, out longitude);

            var result = new JSONObject();

            result.Add("latitude", new JSONNumber(latitude));
            result.Add("longitude", new JSONNumber(longitude));
            result.Add("northing", new JSONNumber(northing));
            result.Add("easting", new JSONNumber(easting));
            result.Add("altitude", new JSONNumber(position.y + map.AltitudeOffset));
            result.Add("orientation", new JSONNumber(-rotation.y));

            api.SendResult(this, result);
        }
Exemple #13
0
    private void Start()
    {
        MapOrigin        = MapOrigin.Find();
        spawnsManager    = GetComponent <SpawnsManager>();
        NPCMaxCount      = MapOrigin.NPCMaxCount;
        SimCameraManager = SimulatorManager.Instance.CameraManager;
        SimulatorCamera  = SimCameraManager.SimulatorCamera;
        MapManager       = SimulatorManager.Instance.MapManager;
        InitSpawn        = true;

        NPCVehicles.Clear();

        if (Loader.Instance.CurrentSimulation == null)
        {
            return;
        }

        if (Loader.Instance.CurrentSimulation.NPCs == null)
        {
            Loader.Instance.CurrentSimulation.NPCs = Simulator.Web.Config.NPCVehicles.Values.ToArray();
        }

        foreach (var data in Loader.Instance.CurrentSimulation.NPCs)
        {
            if (data.Enabled)
            {
                GameObject obj = null;
                foreach (var item in Simulator.Web.Config.NPCVehicles.Values)
                {
                    if (item.Name == data.Name)
                    {
                        obj = item.Prefab;
                    }
                }
                NPCVehicles.Add(new NPCAssetData
                {
                    NPCType = data.NPCType,
                    Prefab  = obj,
                });

                if (NPCColorData.Count(d => d.Type == data.NPCType) == 0)
                {
                    Debug.LogWarning($"NPC of type {data.NPCType} loaded but no colors to pick configured for this type");
                }
            }
        }

        var network = Loader.Instance.Network;

        network.MessagesManager?.RegisterObject(this);
        if (!SimulatorManager.Instance.IsAPI && !network.IsClient)
        {
            SpawnNPCPool();
            if (NPCActive)
            {
                SetNPCOnMap(true);
            }
        }
    }
 void Start()
 {
     MapOrigin      = MapOrigin.Find();
     WireframeBoxes = SimulatorManager.Instance.WireframeBoxes;
     rangeTrigger.SetCallbacks(WhileInRange);
     rangeTrigger.transform.localScale = MaxDistance * UnityEngine.Vector3.one;
     nextSend = Time.time + 1.0f / Frequency;
 }
Exemple #15
0
        public void Execute(JSONNode argsArray)
        {
            var api = ApiManager.Instance;

            var map = MapOrigin.Find();

            if (map == null)
            {
                api.SendError(this, "MapOrigin not found. Is the scene loaded?");
                return;
            }

            var results = new JSONArray();

            var arr = argsArray.AsArray;

            foreach (var args in arr.Children)
            {
                Vector3 position;
                if (args["latitude"] == null)
                {
                    var northing = args["northing"].AsDouble;
                    var easting  = args["easting"].AsDouble;

                    position = map.NorthingEastingToPosition(northing, easting);
                }
                else
                {
                    var latitude  = args["latitude"].AsDouble;
                    var longitude = args["longitude"].AsDouble;

                    double northing, easting;
                    map.LatLongToNorthingEasting(latitude, longitude, out northing, out easting);

                    position = map.NorthingEastingToPosition(northing, easting);
                }

                var altitude = args["altitude"];
                if (altitude != null)
                {
                    position.y = altitude.AsFloat - map.AltitudeOffset;
                }

                Vector3 rotation    = Vector3.zero;
                var     orientation = args["orientation"];
                if (orientation != null)
                {
                    rotation.y = -orientation.AsFloat;
                }

                var result = new JSONObject();
                result.Add("position", position);
                result.Add("rotation", rotation);

                results.Add(result);
            }
            api.SendResult(this, results);
        }
    private void Awake()
    {
        if (Agent == null)
        {
            Agent = transform.root.gameObject;
        }
        AddUIElement();

        MapOrigin = GameObject.Find("/MapOrigin").GetComponent <MapOrigin>();
    }
Exemple #17
0
        public void Init(MapOrigin origin)
        {
            this.origin = origin;
            var gps = origin.GetGpsLocation(origin.transform.position);

            latitude  = Math.Round(gps.Latitude, 6);
            longitude = Math.Round(gps.Longitude, 6);
            minSize   = new Vector2(250, 120);
            maxSize   = new Vector2(300, 120);
        }
Exemple #18
0
        public override void OnBridgeSetup(IBridge bridge)
        {
            Bridge = bridge;
            Writer = bridge.AddWriter <CanBusData>(Topic);

            RigidBody = GetComponentInParent <Rigidbody>();
            Actions   = GetComponentInParent <VehicleActions>();
            Dynamics  = GetComponentInParent <VehicleDynamics>();
            MapOrigin = MapOrigin.Find();
        }
 void Start()
 {
     WireframeBoxes = SimulatorManager.Instance.WireframeBoxes;
     rangeTrigger.SetCallbacks(WhileInRange);
     rangeTrigger.transform.localScale = MaxDistance * Vector3.one;
     nextSend   = SimulatorManager.Instance.CurrentTime + 1.0f / Frequency;
     MapOrigin  = MapOrigin.Find();
     startTime  = SimulatorManager.Instance.CurrentTime;
     prevTimes  = new Dictionary <string, double>();
     isToRecord = false;
 }
Exemple #20
0
        public void Execute(JSONNode args)
        {
            var api = ApiManager.Instance;

            var map = MapOrigin.Find();

            if (map == null)
            {
                api.SendError("MapOrigin not found. Is the scene loaded?");
                return;
            }

            Vector3 position;

            if (args["latitude"] == null)
            {
                var northing = args["northing"].AsDouble;
                var easting  = args["easting"].AsDouble;

                position = map.FromNorthingEasting(northing, easting);
            }
            else
            {
                var latitude  = args["latitude"].AsDouble;
                var longitude = args["longitude"].AsDouble;

                double northing, easting;
                map.FromLatitudeLongitude(latitude, longitude, out northing, out easting);

                position = map.FromNorthingEasting(northing, easting);
            }

            var altitude = args["altitude"];

            if (altitude != null)
            {
                position.y = altitude.AsFloat - map.AltitudeOffset;
            }

            Vector3 rotation    = Vector3.zero;
            var     orientation = args["orientation"];

            if (orientation != null)
            {
                rotation.y = -orientation.AsFloat;
            }

            var result = new JSONObject();

            result.Add("position", position);
            result.Add("rotation", rotation);

            api.SendResult(result);
        }
Exemple #21
0
    protected virtual void Start()
    {
        MapOrigin     = MapOrigin.Find();
        SpawnsManager = GetComponent <SpawnsManager>();
        NPCMaxCount   = MapOrigin.NPCMaxCount;
        NPCVehicles.Clear();
        InitialSpawn = false;

        if (Loader.Instance.CurrentSimulation == null)
        {
            return;
        }

        if (Loader.Instance.CurrentSimulation.NPCs == null)
        {
            Loader.Instance.CurrentSimulation.NPCs = Simulator.Web.Config.NPCVehicles.Values.ToArray();
        }

        foreach (var data in Loader.Instance.CurrentSimulation.NPCs)
        {
            if (data.Enabled)
            {
                GameObject obj = null;
                foreach (var item in Simulator.Web.Config.NPCVehicles.Values)
                {
                    if (item.Name == data.Name)
                    {
                        obj = item.Prefab;
                    }
                }
                NPCVehicles.Add(new NPCAssetData
                {
                    NPCType   = data.NPCType,
                    Prefab    = obj,
                    Name      = data.Name,
                    AssetGuid = data.AssetGuid
                });

                if (NPCColorData.Count(d => d.Type == data.NPCType) == 0)
                {
                    Debug.LogWarning($"NPC of type {data.NPCType} loaded but no colors to pick configured for this type");
                }
            }
        }

        var network = Loader.Instance.Network;

        network.MessagesManager?.RegisterObject(this);
        if (!SimulatorManager.Instance.IsAPI && !network.IsClient) // TODO API mode always remove need to pool check
        {
            SpawnNPCPool();
        }
    }
Exemple #22
0
            Manifest PrepareSceneManifest(Entry sceneEntry, HashSet <Scene> currentScenes)
            {
                Scene scene = EditorSceneManager.OpenScene(sceneEntry.mainAssetFile, OpenSceneMode.Additive);

                NodeTreeLoader[] loaders  = GameObject.FindObjectsOfType <NodeTreeLoader>();
                string           dataPath = GameObject.FindObjectOfType <NodeTreeLoader>()?.GetFullDataPath();
                List <Tuple <string, string> > loaderPaths = new List <Tuple <string, string> >();

                foreach (NodeTreeLoader loader in loaders)
                {
                    loaderPaths.Add(new Tuple <string, string>(Utilities.Utility.StringToGUID(loader.GetDataPath()).ToString(), loader.GetFullDataPath()));
                }

                try
                {
                    foreach (GameObject root in scene.GetRootGameObjects())
                    {
                        MapOrigin origin = root.GetComponentInChildren <MapOrigin>();
                        if (origin != null)
                        {
                            var manifest = new Manifest
                            {
                                assetName    = sceneEntry.name,
                                assetGuid    = Guid.NewGuid().ToString(),
                                bundleFormat = BundleConfig.Versions[BundleConfig.BundleTypes.Environment],
                                description  = origin.Description,
                                licenseName  = origin.LicenseName,
                                authorName   = "",
                                authorUrl    = "",
                                fmuName      = "",
                            };
                            manifest.additionalFiles = new Dictionary <string, string>();
                            foreach (Tuple <string, string> t in loaderPaths)
                            {
                                if (!manifest.additionalFiles.ContainsKey($"pointcloud_{t.Item1}"))
                                {
                                    manifest.additionalFiles.Add($"pointcloud_{t.Item1}", t.Item2);
                                }
                            }

                            return(manifest);
                        }
                    }
                    throw new Exception($"Build failed: MapOrigin on {sceneEntry.name} not found. Please add a MapOrigin component.");
                }
                finally
                {
                    if (!currentScenes.Contains(scene))
                    {
                        EditorSceneManager.CloseScene(scene, true);
                    }
                }
            }
Exemple #23
0
    protected virtual void Initialize()
    {
        if (IsInitialized)
        {
            return;
        }

        MapOrigin            = MapOrigin.Find();
        SpawnBoundsSize      = new Vector3(MapOrigin.NPCSpawnBoundSize, 50f, MapOrigin.NPCSpawnBoundSize);
        VisibleLM            = LayerMask.GetMask("Default", "NPC", "Pedestrian", "Obstacle");
        NPCSpawnCheckBitmask = LayerMask.GetMask("NPC", "Agent", "Pedestrian");
        CacheSpawnPoints();
        IsInitialized = true;
    }
Exemple #24
0
            public void ExportHDMap()
            {
                //use the settings from current tool
                PROXIMITY = proximity;
                ARROWSIZE = arrowSize;

                MapOrigin mapOrigin = GameObject.Find("/MapOrigin").GetComponent <MapOrigin>();

                OriginEasting  = mapOrigin.OriginEasting;
                OriginNorthing = mapOrigin.OriginNorthing;
                Angle          = mapOrigin.Angle;

                if (Calculate())
                {
                    Export();
                }
            }
Exemple #25
0
    private void Start()
    {
        MapOrigin            = MapOrigin.Find();
        NPCSpawnCheckBitmask = LayerMask.GetMask("NPC", "Agent");
        SpawnBoundsSize      = new Vector3(MapOrigin.NPCSpawnBoundSize, 50f, MapOrigin.NPCSpawnBoundSize);
        NPCMaxCount          = MapOrigin.NPCMaxCount;
        SimulatorCamera      = SimulatorManager.Instance.CameraManager.SimulatorCamera;

        if (!SimulatorManager.Instance.IsAPI)
        {
            SpawnNPCPool();
            if (NPCActive)
            {
                SetNPCOnMap();
            }
        }
    }
        void Start()
        {
            WireframeBoxes = SimulatorManager.Instance.WireframeBoxes;

            if (RangeTrigger == null)
            {
                RangeTrigger = GetComponentInChildren <RangeTrigger>();
            }

            RangeTrigger.SetCallbacks(WhileInRange);
            RangeTrigger.transform.localScale = MaxDistance * Vector3.one;

            MapOrigin = MapOrigin.Find();

            Detected   = new Dictionary <uint, Tuple <Detected3DObject, Collider> >();
            CurrentIDs = new HashSet <uint>();

            StartCoroutine(OnPublish());
        }
Exemple #27
0
    private void Awake()
    {
        if (Agent == null)
        {
            Agent = transform.root.gameObject;
        }
        AddUIElement();

        MapOrigin mapOrigin = GameObject.Find("/MapOrigin").GetComponent <MapOrigin>();

        OriginEasting  = mapOrigin.OriginEasting;
        OriginNorthing = mapOrigin.OriginNorthing;
        Angle          = mapOrigin.Angle;
        if (targetEnv == ROSTargetEnvironment.AUTOWARE)
        {
            Angle = 0;
        }
        UTMZoneId = mapOrigin.UTMZoneId;
    }
Exemple #28
0
    private void Start()
    {
        MapOrigin            = MapOrigin.Find();
        NPCSpawnCheckBitmask = LayerMask.GetMask("NPC", "Agent");
        SpawnBoundsSize      = new Vector3(MapOrigin.NPCSpawnBoundSize, 50f, MapOrigin.NPCSpawnBoundSize);
        NPCMaxCount          = MapOrigin.NPCMaxCount;
        SimulatorCamera      = SimulatorManager.Instance.CameraManager.SimulatorCamera;

        var network = Loader.Instance.Network;

        network.MessagesManager?.RegisterObject(this);
        if (!SimulatorManager.Instance.IsAPI && !network.IsClient)
        {
            SpawnNPCPool();
            if (NPCActive)
            {
                SetNPCOnMap();
            }
        }
    }
    Vector3 GetPosition(ROSTargetEnvironment targetEnv, double easting, double northing)
    {
        MapOrigin mapOrigin = GameObject.Find("/MapOrigin").GetComponent <MapOrigin>();

        if (targetEnv == ROSTargetEnvironment.APOLLO || targetEnv == ROSTargetEnvironment.APOLLO35)
        {
            easting += 500000;
        }
        easting  -= mapOrigin.OriginEasting;
        northing -= mapOrigin.OriginNorthing;

        float x = (float)easting;
        float z = (float)northing;

        if (targetEnv == ROSTargetEnvironment.AUTOWARE)
        {
            return(new Vector3(x, 0, z));
        }
        return(Quaternion.Euler(0f, -mapOrigin.Angle, 0f) * new Vector3(x, 0, z));
    }
Exemple #30
0
        void OnGUI()
        {
            GUILayout.Space(10);
            if (GUILayout.Button("Open Google Maps \u2316"))
            {
                Application.OpenURL($"https://www.google.com/maps/@{latitude},{longitude},15z");
            }
            GUILayout.Space(10);
            latitude  = EditorGUILayout.DoubleField("Latitude", latitude);
            longitude = EditorGUILayout.DoubleField("Longitude", longitude);
            GUILayout.Space(10);

            if (GUILayout.Button("Import Coordinates"))
            {
                origin.UTMZoneId = MapOrigin.GetZoneNumberFromLatLon(latitude, longitude);
                origin.FromLatitudeLongitude(latitude, longitude, out var northing, out var easting);
                origin.OriginNorthing = Math.Round(northing, 2);
                origin.OriginEasting  = Math.Round(easting, 2);
                this.Close();
            }
        }