예제 #1
0
        //************************************************************


        void Start()
        {
            GameObject canvas = GameObject.Find("Canvas");

            buildingEditMenu  = canvas.transform.Find("BuildingEdit").gameObject;
            highwayEditMenu   = canvas.transform.Find("HighwayEdit").gameObject;
            barrierEditMenu   = canvas.transform.Find("BarrierEdit").gameObject;
            ObjectEditMenu    = canvas.transform.Find("3DObjectEdit").gameObject;
            CameraVanEditMenu = canvas.transform.Find("CameraVanEdit").gameObject;
            buildingEdit      = buildingEditMenu.GetComponent <BuildingEdit>();
            highwayEdit       = highwayEditMenu.GetComponent <HighwayEdit>();
            barrierEdit       = barrierEditMenu.GetComponent <BarrierEdit>();
            objectEdit        = ObjectEditMenu.GetComponent <ObjectEdit>();
            cameraVanEdit     = CameraVanEditMenu.GetComponent <CameraVanEdit>();

            translateX = ObjectEditMenu.transform.Find("Panel").Find("TransformPart").Find("InputField_TransX").GetComponent <InputField>();
            translateY = ObjectEditMenu.transform.Find("Panel").Find("TransformPart").Find("InputField_TransY").GetComponent <InputField>();
            translateZ = ObjectEditMenu.transform.Find("Panel").Find("TransformPart").Find("InputField_TransZ").GetComponent <InputField>();

            rotateX = ObjectEditMenu.transform.Find("Panel").Find("TransformPart").Find("InputField_RotateX").GetComponent <InputField>();
            rotateY = ObjectEditMenu.transform.Find("Panel").Find("TransformPart").Find("InputField_RotateY").GetComponent <InputField>();
            rotateZ = ObjectEditMenu.transform.Find("Panel").Find("TransformPart").Find("InputField_RotateZ").GetComponent <InputField>();

            scaleX = ObjectEditMenu.transform.Find("Panel").Find("TransformPart").Find("InputField_ScaleX").GetComponent <InputField>();
            scaleY = ObjectEditMenu.transform.Find("Panel").Find("TransformPart").Find("InputField_ScaleY").GetComponent <InputField>();
            scaleZ = ObjectEditMenu.transform.Find("Panel").Find("TransformPart").Find("InputField_ScaleZ").GetComponent <InputField>();

            currentSelectionID  = "";
            previousSelectionID = "";
        }
예제 #2
0
        public void fillMenu()
        {
            CameraVanEdit cve = GameObject.Find("Canvas").transform.Find("CameraVanEdit").GetComponent <CameraVanEdit>();

            if (cve.laserScanner.frameRate < 1)
            {
                return;
            }

            laserScanner = cve.laserScanner;
            Transform menuPanel = gameObject.transform.Find("Panel");

            menuPanel.Find("IFframeRate").GetComponent <InputField>().text     = laserScanner.frameRate.ToString();
            menuPanel.Find("IFminDistance").GetComponent <InputField>().text   = laserScanner.minDistance.ToString();
            menuPanel.Find("IFmaxDistance").GetComponent <InputField>().text   = laserScanner.maxDistance.ToString();
            menuPanel.Find("IFverticalFOV").GetComponent <InputField>().text   = laserScanner.verticalFOV.ToString();
            menuPanel.Find("IFhorizontalFOV").GetComponent <InputField>().text = laserScanner.horizontalFOV.ToString();

            menuPanel.Find("IFposX").GetComponent <InputField>().text = laserScanner.position.x.ToString();
            menuPanel.Find("IFposY").GetComponent <InputField>().text = laserScanner.position.y.ToString();
            menuPanel.Find("IFposZ").GetComponent <InputField>().text = laserScanner.position.z.ToString();

            menuPanel.Find("IFpitch").GetComponent <InputField>().text = laserScanner.rotation.x.ToString();
            menuPanel.Find("IFyaw").GetComponent <InputField>().text   = laserScanner.rotation.y.ToString();
            menuPanel.Find("IFroll").GetComponent <InputField>().text  = laserScanner.rotation.z.ToString();

            menuPanel.Find("IFverticalResolution").GetComponent <InputField>().text   = laserScanner.verticalResolution.ToString();
            menuPanel.Find("IFhorizontalResolution").GetComponent <InputField>().text = laserScanner.horizontalResolution.ToString();
        }
예제 #3
0
        private void saveControllerConfig()
        {
            if (scene.controller == null)
            {
                return;
            }

            CameraVanEdit cve = GameObject.Find("Canvas").transform.Find("CameraVanEdit").GetComponent <CameraVanEdit>();

            sceneSave.controller = new ControllerSave();
            sceneSave.controller.laserSetting   = sceneSave.controller.convertToSaveLaser(cve.laserScanner);
            sceneSave.controller.cameraSettings = sceneSave.controller.convertToSaveCamList(cve.cameraList);

            if (scene.controller.name == "Camera Van")
            {
                sceneSave.controller.controllerType = ControllerSave.ControllerType.CameraVan;
            }
            else
            {
                sceneSave.controller.controllerType = ControllerSave.ControllerType.Trekker;
            }

            sceneSave.controller.controllerRotation = scene.controller.transform.rotation.eulerAngles;
            sceneSave.controller.controllerPosition = scene.controller.transform.position;
        }
        public void fillMenu()
        {
            Transform     contentPanel = this.transform.Find("Panel").Find("Scroll Rect").Find("Content Panel");
            CameraVanEdit cve          = GameObject.Find("Canvas").transform.Find("CameraVanEdit").GetComponent <CameraVanEdit>();

            if (cve.cameraList == null || cve.cameraList.Count < 1 || contentPanel.childCount > 1)
            {
                return;
            }


            for (int k = 0; k < cve.cameraList.Count - 1; k++)
            {
                clickAddCamera();
            }

            int iterator = 0;

            foreach (Transform cameraSetting in contentPanel)
            {
                CameraSetting item  = cve.cameraList[iterator++];
                Transform     panel = cameraSetting.Find("Panel");
                panel.Find("TextID").GetComponent <Text>().text        = item.id;
                panel.Find("IFpitch").GetComponent <InputField>().text = item.pitch.ToString();
                panel.Find("IFYaw").GetComponent <InputField>().text   = item.yaw.ToString();
                panel.Find("IFRoll").GetComponent <InputField>().text  = item.roll.ToString();
                panel.Find("IFfov").GetComponent <InputField>().text   = item.fieldOfView.ToString();
                panel.Find("IFposX").GetComponent <InputField>().text  = item.position.x.ToString();
                panel.Find("IFposY").GetComponent <InputField>().text  = item.position.y.ToString();
                panel.Find("IFposZ").GetComponent <InputField>().text  = item.position.z.ToString();
            }
        }
        public void clickSaveChanges()
        {
            Transform            contentPanel = this.transform.Find("Panel").Find("Scroll Rect").Find("Content Panel");
            List <CameraSetting> cameraList   = new List <CameraSetting>();

            foreach (Transform cameraSetting in contentPanel)
            {
                CameraSetting item  = new CameraSetting();
                Transform     panel = cameraSetting.Find("Panel");
                if (panel.Find("ToggleIsActive").GetComponent <Toggle>().isOn)
                {
                    item.id          = panel.Find("TextID").GetComponent <Text>().text;
                    item.pitch       = float.Parse(panel.Find("IFpitch").GetComponent <InputField>().text);
                    item.yaw         = float.Parse(panel.Find("IFYaw").GetComponent <InputField>().text);
                    item.roll        = float.Parse(panel.Find("IFRoll").GetComponent <InputField>().text);
                    item.fieldOfView = float.Parse(panel.Find("IFfov").GetComponent <InputField>().text);
                    float posX = float.Parse(panel.Find("IFposX").GetComponent <InputField>().text);
                    float posY = float.Parse(panel.Find("IFposY").GetComponent <InputField>().text);
                    float posZ = float.Parse(panel.Find("IFposZ").GetComponent <InputField>().text);
                    item.position = new Vector3(posX, posY, posZ);
                    cameraList.Add(item);
                }
            }

            CameraVanEdit cameraVan = GameObject.Find("Canvas").transform.Find("CameraVanEdit").GetComponent <CameraVanEdit>();

            cameraVan.cameraList = cameraList;
        }
예제 #6
0
        /// <summary>
        /// Load urban scene using a save file
        /// </summary>
        /// <param name="save"> Save file object </param>
        public void loadProject(SceneSave save)
        {
            List <Way> WayListforHighway  = new List <Way>();
            List <Way> WayListforBuilding = new List <Way>();

            InitialConfigLoader configloader = new InitialConfigLoader();

            OSMPath = save.osmPath;
            OSMparser parser = new OSMparser();

            scenebbox = parser.readBBox(save.osmPath);
            scenebbox = editbbox(scenebbox);
            config    = configloader.loadInitialConfig(); //--> Maybe it is better to include config to SaveProject file

            HeightmapLoader heightMap = new HeightmapLoader(scenebbox, save.continent);

            terrain = new myTerrain(heightMap, scenebbox, save.osmPath, save.provider);
            osmxml  = parser.parseOSM(save.osmPath);
            assignNodePositions();

            defaultObject3DList = DefaultObject3DHandler.drawDefaultObjects(osmxml.defaultobject3DList);

            LoadExternalOBJ objloader = new LoadExternalOBJ();

            //3D OBJECT LOAD
            for (int i = 0; i < save.objectSaveList.Count; i++)
            {
                Object3D obj = new Object3D();
                obj.name = save.objectSaveList[i].name;

                if (save.objectSaveList[i].type == ObjectType.External)
                {
                    obj.object3D = objloader.loadOBJ(save.objectSaveList[i].resourcePath);
                }
                else
                {
                    obj.object3D = (GameObject)MonoBehaviour.Instantiate(Resources.Load(save.objectSaveList[i].resourcePath));
                }
                obj.object3D.AddComponent <Object3dMouseHandler>();
                obj.resourcePath = save.objectSaveList[i].resourcePath;
                obj.object3D.transform.position   = save.objectSaveList[i].translate;
                obj.object3D.transform.localScale = save.objectSaveList[i].scale;
                Quaternion quat = new Quaternion();
                quat.eulerAngles = save.objectSaveList[i].rotate;
                obj.object3D.transform.rotation = quat;
                obj.object3D.name = obj.name;
                obj.object3D.tag  = "3DObject";
                object3DList.Add(obj);
            }

            for (int k = 0; k < osmxml.wayList.Count; k++)
            {
                Way w = osmxml.wayList[k];

                switch (w.type)
                {
                case ItemEnumerator.wayType.building:
                    WayListforBuilding.Add(w);
                    break;

                case ItemEnumerator.wayType.highway:
                    WayListforHighway.Add(w);
                    break;

                case ItemEnumerator.wayType.area:
                    break;

                case ItemEnumerator.wayType.barrier:
                    barrierList.Add(new Barrier(w, config.barrierConfig));
                    break;

                case ItemEnumerator.wayType.river:
                    highwayList.Add(new Highway(w, config.highwayConfig, terrain));
                    break;

                case ItemEnumerator.wayType.none:
                    break;
                }
            }

            highwayModeller = new HighwayModeller(WayListforHighway, terrain, config.highwayConfig, save.highwaySaveList);
            highwayModeller.renderHighwayList();
            highwayModeller.renderPavementList();
            highwayList  = highwayModeller.highwayList;
            pavementList = highwayModeller.pavementList;

            BuildingListModeller buildingListModeller = new BuildingListModeller(WayListforBuilding, osmxml.buildingRelations, config.buildingConfig, save.buildingSaveList);

            buildingListModeller.renderBuildingList();
            buildingList = buildingListModeller.buildingList;

            if (save.controller == null)
            {
                return;
            }

            if (save.controller.controllerType == ControllerSave.ControllerType.CameraVan)
            {
                Transform        mainCamera    = GameObject.Find("Main Camera").transform;
                CameraController camController = mainCamera.GetComponent <CameraController>();

                controller = (GameObject)GameObject.Instantiate(Resources.Load("Prefabs/Car/PolimiCameraCar/CameraVan"));
                controller.AddComponent <CameraVanMouseHandler>();
                controller.tag  = "CameraVan";
                controller.name = "Camera Van";
                controller.transform.position = mainCamera.position + mainCamera.forward * 10.0f;
                controller.GetComponent <Rigidbody>().useGravity = false;
                camController.target = controller.transform;
            }

            else
            {
                Transform        mainCamera    = GameObject.Find("Main Camera").transform;
                CameraController camController = mainCamera.GetComponent <CameraController>();

                controller = (GameObject)GameObject.Instantiate(Resources.Load("Prefabs/Ethan/ThirdPersonController"));
                controller.AddComponent <CameraVanMouseHandler>();
                controller.tag  = "CameraVan";
                controller.name = "Third Person (Ethan)";
                controller.transform.position = mainCamera.position + mainCamera.forward * 10.0f;
                camController.target          = controller.transform;
            }

            controller.transform.position = save.controller.controllerPosition;
            Quaternion controllerQuat = new Quaternion();

            controllerQuat.eulerAngles    = save.controller.controllerRotation;
            controller.transform.rotation = controllerQuat;

            CameraVanEdit cve = GameObject.Find("Canvas").transform.Find("CameraVanEdit").GetComponent <CameraVanEdit>();

            cve.cameraList   = save.controller.convertBackToCamList(save.controller.cameraSettings);
            cve.laserScanner = save.controller.convertBackToLaser(save.controller.laserSetting);
        }