public void clickSave() { InitialConfigLoader loader = new InitialConfigLoader(); InitialConfigurations config = loader.loadInitialConfig(); //Create new Building Config Part BuildingConfigurations newbuildingconfig = new BuildingConfigurations(); InputField min = buildingMenu.transform.Find("Panel").Find("HeightComponent").Find("InputField_Min").GetComponent <InputField>(); newbuildingconfig.minheight = float.Parse(min.text); InputField max = buildingMenu.transform.Find("Panel").Find("HeightComponent").Find("InputField_Max").GetComponent <InputField>(); newbuildingconfig.maxheight = float.Parse(max.text); newbuildingconfig.defaultSkins = materialList; Transform contentPanel = buildingMenu.transform.Find("Panel").Find("ScrollRect").Find("Content Panel"); int index = 0; foreach (Transform child in contentPanel) { Toggle t = child.Find("Panel").Find("Toggle").GetComponent <Toggle>(); newbuildingconfig.defaultSkins[index].isActive = t.isOn; index++; } config.buildingConfig = newbuildingconfig; loader.saveInitialConfig(Path.Combine(Application.persistentDataPath, "ConfigFiles/initialConfig.xml"), config); buildingMenu.SetActive(false); }
private void loadConfig() { InitialConfigLoader loader = new InitialConfigLoader(); InitialConfigurations config = loader.loadInitialConfig(); configLoadHelper(config); }
public void ClickSave() { InitialConfigLoader loader = new InitialConfigLoader(); InitialConfigurations config = loader.loadInitialConfig(); List <BarrierConfigurations> newBarrierConfig = new List <BarrierConfigurations>(); for (int i = 0; i < config.barrierConfig.Count; i++) { string GOname = "BarrierSkin " + i; var skinitem = barrierMenu.transform.Find("Panel").Find("Scroll Rect").Find("Content Panel").Find(GOname).Find("Panel"); BarrierConfigurations barrieritem = new BarrierConfigurations(); barrieritem.name = skinitem.Find("TextName").GetComponent <Text>().text; barrieritem.width = float.Parse(skinitem.Find("InputField_Thickness").GetComponent <InputField>().text); barrieritem.height = float.Parse(skinitem.Find("InputField_Height").GetComponent <InputField>().text); barrieritem.Path = materialPaths[i]; if (isTextureChanged[i]) { Material mat = (Material)Resources.Load(barrieritem.Path); byte[] fileData = File.ReadAllBytes(texturePaths[i]); Texture2D tex = new Texture2D(2, 2); tex.LoadImage(fileData); mat.mainTexture = tex; mat.mainTextureScale = new Vector2(5, 1); } } config.barrierConfig = newBarrierConfig; loader.saveInitialConfig(Path.Combine(Application.persistentDataPath, "ConfigFiles/initialConfig.xml"), config); barrierMenu.SetActive(false); }
public void ClickReset() { InitialConfigLoader loader = new InitialConfigLoader(); InitialConfigurations config = loader.loadInitialConfig(); InitialConfigurations tmpConfig = loader.fillConfig(); config.highwayConfig = tmpConfig.highwayConfig; configLoadHelper(config); }
public void clickReset() { InitialConfigLoader loader = new InitialConfigLoader(); InitialConfigurations config = loader.loadInitialConfig(); InitialConfigurations tmpconfig = loader.fillConfig(); config.buildingConfig = tmpconfig.buildingConfig; configLoadHelper(config); }
public void ClickSave() { InitialConfigLoader loader = new InitialConfigLoader(); InitialConfigurations config = loader.loadInitialConfig(); List <HighwayConfigurations> newHighwayConfig = new List <HighwayConfigurations>(); for (int i = 0; i < config.highwayConfig.Count; i++) { string GOname = "HighwaySkin " + i; var skinitem = highwayMenu.transform.Find("Panel").Find("Scroll Rect").Find("Content Panel").Find(GOname).Find("Panel"); HighwayConfigurations highwayitem = new HighwayConfigurations(); highwayitem.type = skinitem.Find("Text_Type").GetComponent <Text>().text; highwayitem.size = float.Parse(skinitem.Find("InputField_Width").GetComponent <InputField>().text); highwayitem.leftSidewalk = skinitem.Find("ToggleLeftSideWalk").GetComponent <Toggle>().isOn; highwayitem.rightSidewalk = skinitem.Find("ToggleRightSideWalk").GetComponent <Toggle>().isOn; highwayitem.leftSidewalkSize = float.Parse(skinitem.Find("InputField LeftSize").GetComponent <InputField>().text); highwayitem.rightSidewalkSize = float.Parse(skinitem.Find("InputField RightSize").GetComponent <InputField>().text); highwayitem.materialPath = materialPaths[i]; if (isTextureChanged[i]) { Material mat = (Material)Resources.Load(highwayitem.materialPath); byte[] fileData = File.ReadAllBytes(texturePaths[i]); Texture2D tex = new Texture2D(2, 2); tex.LoadImage(fileData); mat.mainTexture = tex; mat.mainTextureScale = new Vector2(5, 1); } newHighwayConfig.Add(highwayitem); } config.highwayConfig = newHighwayConfig; loader.saveInitialConfig(Path.Combine(Application.persistentDataPath, "ConfigFiles/initialConfig.xml"), config); highwayMenu.SetActive(false); }
private void configLoadHelper(InitialConfigurations config) { List <HighwayConfigurations> conf = config.highwayConfig; texturePaths = new string[conf.Count]; materialPaths = new string[conf.Count]; isTextureChanged = new bool[conf.Count]; Transform parentContent = highwayMenu.transform.Find("Panel").Find("Scroll Rect").Find("Content Panel"); var children = new List <GameObject>(); foreach (Transform child in parentContent) { children.Add(child.gameObject); } children.ForEach(child => Destroy(child)); for (int i = 0; i < conf.Count; i++) { isTextureChanged[i] = false; texturePaths[i] = ""; materialPaths[i] = conf[i].materialPath; GameObject skinItem = (GameObject)MonoBehaviour.Instantiate(Resources.Load("Prefabs/Menu/HighwaySkin")); skinItem.name = "HighwaySkin " + i; skinItem.transform.SetParent(parentContent); Texture2D colorText; Material mat = (Material)Resources.Load(conf[i].materialPath); colorText = (Texture2D)mat.mainTexture; skinItem.transform.Find("Panel").Find("RawImage").GetComponent <RawImage>().texture = colorText; skinItem.transform.Find("Panel").Find("Text_Type").GetComponent <Text>().text = conf[i].type; skinItem.transform.Find("Panel").Find("Text_ChangeTexture").GetComponent <Button>().onClick.AddListener(delegate { EditTextureClick(skinItem); }); skinItem.transform.Find("Panel").Find("InputField_Width").GetComponent <InputField>().text = conf[i].size.ToString(); skinItem.transform.Find("Panel").Find("InputField LeftSize").GetComponent <InputField>().text = conf[i].leftSidewalkSize.ToString(); skinItem.transform.Find("Panel").Find("InputField RightSize").GetComponent <InputField>().text = conf[i].rightSidewalkSize.ToString(); skinItem.transform.Find("Panel").Find("ToggleLeftSideWalk").GetComponent <Toggle>().isOn = conf[i].leftSidewalk; skinItem.transform.Find("Panel").Find("ToggleRightSideWalk").GetComponent <Toggle>().isOn = conf[i].rightSidewalk; } }
private void configLoadHelper(InitialConfigurations config) { List <BarrierConfigurations> conf = config.barrierConfig; texturePaths = new string[conf.Count]; materialPaths = new string[conf.Count]; isTextureChanged = new bool[conf.Count]; Transform parentContent = barrierMenu.transform.Find("Panel").Find("Scroll Rect").Find("Content Panel"); var children = new List <GameObject>(); foreach (Transform child in parentContent) { children.Add(child.gameObject); } children.ForEach(child => Destroy(child)); for (int i = 0; i < conf.Count; i++) { isTextureChanged[i] = false; texturePaths[i] = ""; materialPaths[i] = conf[i].Path; GameObject skinItem = (GameObject)MonoBehaviour.Instantiate(Resources.Load("Prefabs/Menu/BarrierSkin")); skinItem.name = "BarrierSkin " + i; skinItem.transform.SetParent(parentContent); Texture2D colorText; Material mat = (Material)Resources.Load(config.barrierConfig[i].Path); colorText = (Texture2D)mat.mainTexture; skinItem.transform.Find("Panel").Find("RawImage").GetComponent <RawImage>().texture = colorText; skinItem.transform.Find("Panel").Find("TextName").GetComponent <Text>().text = config.barrierConfig[i].name; skinItem.transform.Find("Panel").Find("TextTextureChange").GetComponent <Button>().onClick.AddListener(delegate { EditTextureClick(skinItem); }); skinItem.transform.Find("Panel").Find("InputField_Height").GetComponent <InputField>().text = config.barrierConfig[i].height.ToString(); skinItem.transform.Find("Panel").Find("InputField_Thickness").GetComponent <InputField>().text = config.barrierConfig[i].width.ToString(); } }
public static IWebHostBuilder CreateWebHostBuilder(string[] args) => WebHost.CreateDefaultBuilder(args).UseUrls("http://0.0.0.0:" + InitialConfigurations.GetPort()) .UseStartup <Startup>();
public static void Main(string[] args) { InitialConfigurations.SetPort(); CreateWebHostBuilder(args).Build().Run(); }
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.ConfigureApplicationCookie(ops => { InitialConfigurations.SetTimeSesion(10); // Cookie settings ops.Cookie.HttpOnly = false; ops.ExpireTimeSpan = TimeSpan.FromMinutes(InitialConfigurations.GetTimeSesion()); // If the LoginPath isn't set, ASP.NET Core defaults // the path to /Account/Login. ops.LoginPath = $"/{CultureInfo.CurrentCulture.Name}/Identity/Account/Login"; // If the AccessDeniedPath isn't set, ASP.NET Core defaults // the path to /Account/AccessDenied. ops.AccessDeniedPath = $"/{CultureInfo.CurrentCulture.Name}/Identity/Account/Logout"; ops.SlidingExpiration = true; }); services.Configure <CookiePolicyOptions>(options => { // This lambda determines whether user consent for non-essential cookies is needed for a given request. options.CheckConsentNeeded = context => true; options.MinimumSameSitePolicy = SameSiteMode.None; }); services.AddSingleton <CultureLocalizer>(); services.ConfigureRequestLocalization(); services.AddSession(); services.AddMemoryCache(); //Configuracion de las politicas y los roles services.AddAuthorization(config => { #region Profile config.AddPolicy("PolicyProfile", policy => policy.RequireRole("OFFICER", "SEGMENTATION", "EXECUTIVE", "TREASURER", "GUEST", "PAYER", "OPERATIONSTREASURER", "ACCOUNTANT", "ADMINISTRATOR", "LEGAL", "MANAGER")); config.AddPolicy("PolicyProfileChange", policy => policy.RequireRole("ADMINISTRATOR", "LEGAL", "MANAGER")); config.AddPolicy("PolicyContracts", policy => policy.RequireRole("LEGAL")); config.AddPolicy("PolicySecurity", policy => policy.RequireRole("ADMINISTRATOR", "LEGAL", "MANAGER")); #endregion #region Debtor config.AddPolicy("RequiredDebtor", policy => policy.RequireRole("DEBTOR")); config.AddPolicy("PolicyLoadInvoiceDebtor", policy => policy.RequireRole("MANAGER", "PAYER")); config.AddPolicy("PolicyEditInvoiceDebtor", policy => policy.RequireRole("MANAGER", "PAYER")); config.AddPolicy("PolicyPostedDebtor", policy => policy.RequireRole("MANAGER", "TREASURER")); config.AddPolicy("PolicyFinancingDebtor", policy => policy.RequireRole("MANAGER", "TREASURER")); config.AddPolicy("PolicyConfirmingDebtor", policy => policy.RequireRole("MANAGER", "TREASURER")); #endregion #region Supplier config.AddPolicy("RequiredSupplier", policy => policy.RequireRole("SUPPLIER")); #region Publication Page config.AddPolicy("PolicyPagePublishedSupplier", policy => policy.RequireRole("MANAGER", "TREASURER", "PAYER")); config.AddPolicy("PolicyAcceptOfferBankSupplier", policy => policy.RequireRole("MANAGER", "TREASURER")); config.AddPolicy("PolicyPublishedInvoiceSupplier", policy => policy.RequireRole("MANAGER", "TREASURER", "PAYER")); #endregion config.AddPolicy("PolicyOverdueInvoiceSupplier", policy => policy.RequireRole("MANAGER", "TREASURER", "PAYER")); config.AddPolicy("PolicyLoadInvoiceSupplier", policy => policy.RequireRole("MANAGER", "PAYER")); config.AddPolicy("PolicyEditInvoiceSupplier", policy => policy.RequireRole("MANAGER", "PAYER")); config.AddPolicy("PolicyPostedSupplier", policy => policy.RequireRole("MANAGER", "TREASURER")); config.AddPolicy("PolicyAuctionSupplier", policy => policy.RequireRole("LEGAL", "MANAGER", "TREASURER", "PAYER", "GUEST")); config.AddPolicy("PolicyCloseAuctionSupplier", policy => policy.RequireRole("MANAGER", "TREASURER")); #endregion #region Confirmant config.AddPolicy("RequiredConfirmant", policy => policy.RequireRole("CONFIRMANT")); config.AddPolicy("PolicyRegisterDebtorConfirmant", policy => policy.RequireRole("ADMINISTRATOR", "LEGAL", "MANAGER", "EXECUTIVE")); config.AddPolicy("PolicyVerifyConfirmant", policy => policy.RequireRole("MANAGER", "OFFICER")); config.AddPolicy("PolicyReviewInvoice", policy => policy.RequireRole("MANAGER", "TREASURER")); config.AddPolicy("PolicyAssignExecutiveConfirmant", policy => policy.RequireRole("MANAGER", "SEGMENTATION")); config.AddPolicy("PolicyAssignRiskConfirmant", policy => policy.RequireRole("MANAGER", "EXECUTIVE")); config.AddPolicy("PolicyConfirmInvoiceConfirmant", policy => policy.RequireRole("MANAGER", "EXECUTIVE")); config.AddPolicy("PolicyBuyInvoiceConfirmant", policy => policy.RequireRole("MANAGER", "TREASURER")); config.AddPolicy("PolicyPaidInvoiceConfirmant", policy => policy.RequireRole("MANAGER", "OPERATIONSTREASURER")); config.AddPolicy("PolicyPaidConciliedConfirmant", policy => policy.RequireRole("MANAGER", "OPERATIONSTREASURER")); config.AddPolicy("PolicyPaidInvoiceOverdueConfirmant", policy => policy.RequireRole("MANAGER", "OPERATIONSTREASURER")); #endregion #region Factor config.AddPolicy("RequiredFactor", policy => policy.RequireRole("FACTOR")); config.AddPolicy("PolicyAuctionFactor", policy => policy.RequireRole("TREASURER", "DPERSON")); config.AddPolicy("PolicyPaidFactor", policy => policy.RequireRole("TREASURER", "DPERSON")); #endregion #region Backoffice config.AddPolicy("RequiredBackoffice", policy => policy.RequireRole("BACKOFFICE")); #endregion }); services.AddMvc() .SetCompatibilityVersion(CompatibilityVersion.Version_2_2) .AddViewLocalization(o => o.ResourcesPath = "Resources") .AddModelBindingMessagesLocalizer(services) // Option A: use this for localization with shared resource .AddDataAnnotationsLocalization(o => { var type = typeof(ViewResource); var assemblyName = new AssemblyName(type.GetTypeInfo().Assembly.FullName); var factory = services.BuildServiceProvider().GetService <IStringLocalizerFactory>(); var localizer = factory.Create("ViewResource", assemblyName.Name); o.DataAnnotationLocalizerProvider = (t, f) => localizer; }) // Option B: use this for localization by view specific resource //.AddDataAnnotationsLocalization() .AddRazorPagesOptions(o => { o.Conventions.Add(new CultureTemplateRouteModelConvention()); o.AllowAreas = true; #region Profile o.Conventions.AuthorizeAreaFolder("Profile", "/"); o.Conventions.AuthorizeAreaPage("Profile", "/ActualizarEmpresa", "PolicyProfile"); o.Conventions.AuthorizeAreaPage("Profile", "/MantenimientoUsuarios", "PolicySecurity"); #endregion #region Debtor o.Conventions.AuthorizeAreaFolder("Debtor", "/", "RequiredDebtor"); o.Conventions.AuthorizeAreaPage("Debtor", "/CargaMasiva", "PolicyLoadInvoiceDebtor"); o.Conventions.AuthorizeAreaPage("Debtor", "/CargaManual", "PolicyEditInvoiceDebtor"); o.Conventions.AuthorizeAreaPage("Debtor", "/PostularFacturas", "PolicyPostedDebtor"); o.Conventions.AuthorizeAreaPage("Debtor", "/FinanciamientoFacturas", "PolicyFinancingDebtor"); o.Conventions.AuthorizeAreaPage("Debtor", "/ConfirmarFacturas", "PolicyConfirmingDebtor"); #endregion #region Confirmant o.Conventions.AuthorizeAreaFolder("Confirmant", "/", "RequiredConfirmant"); o.Conventions.AuthorizeAreaPage("Confirmant", "/Account/Register", "PolicyRegisterDebtorConfirmant"); o.Conventions.AuthorizeAreaPage("Confirmant", "/VerificarDatos", "PolicyVerifyConfirmant"); o.Conventions.AuthorizeAreaPage("Confirmant", "/Segmentacion", "PolicyAssignExecutiveConfirmant"); o.Conventions.AuthorizeAreaPage("Confirmant", "/EjecutivoCuentas", "PolicyAssignRiskConfirmant"); o.Conventions.AuthorizeAreaPage("Confirmant", "/ConfirmarFacturas", "PolicyConfirmInvoiceConfirmant"); o.Conventions.AuthorizeAreaPage("Confirmant", "/CompraFactura", "PolicyBuyInvoiceConfirmant"); o.Conventions.AuthorizeAreaPage("Confirmant", "/PagoFacturas", "PolicyPaidInvoiceConfirmant"); o.Conventions.AuthorizeAreaPage("Confirmant", "/FacturasConciliadas", "PolicyPaidConciliedConfirmant"); o.Conventions.AuthorizeAreaPage("Confirmant", "/FacturasVencidas", "PolicyPaidInvoiceOverdueConfirmant"); #endregion #region Supplier o.Conventions.AuthorizeAreaFolder("Supplier", "/", "RequiredSupplier"); o.Conventions.AuthorizeAreaPage("Supplier", "/PublicarFacturas", "PolicyPagePublishedSupplier"); o.Conventions.AuthorizeAreaPage("Supplier", "/FacturasVencimiento", "PolicyOverdueInvoiceSupplier"); o.Conventions.AuthorizeAreaPage("Supplier", "/MercadoFacturas", "PolicyAuctionSupplier"); o.Conventions.AuthorizeAreaPage("Supplier", "/CierreMercado", "PolicyCloseAuctionSupplier"); #endregion #region Factor o.Conventions.AuthorizeAreaFolder("Factor", "/", "RequiredFactor"); o.Conventions.AuthorizeAreaPage("Factor", "/MercadoFacturas", "PolicyAuctionFactor"); o.Conventions.AuthorizeAreaPage("Factor", "/PagoFacturas", "PolicyPaidFactor"); #endregion o.Conventions.AuthorizeAreaFolder("Backoffice", "/", "RequiredBackoffice"); }); // Add identity types services.AddIdentity <User, Role>( config => { //config.SignIn.RequireConfirmedEmail = true; //config.User.RequireUniqueEmail = true; // Password requirements config.Password.RequiredLength = 8; config.Password.RequireDigit = true; config.Password.RequireUppercase = true; config.Password.RequireLowercase = true; config.Password.RequireNonAlphanumeric = true; }).AddDefaultUI(UIFramework.Bootstrap4) .AddDefaultTokenProviders() .AddClaimsPrincipalFactory <CustomClaimsStore>(); // Identity Services services.AddTransient <IUserStore <User>, CustomUserStore>(); services.AddTransient <IRoleStore <Role>, CustomRoleStore>(); services.AddDbContext <ApplicationDbContext>(options => options.UseNpgsql(Configuration.GetConnectionString("DefaultConnection"))); // Add application services. services.AddTransient <IEmailSender, AuthMessageSender>(); services.AddTransient <ISmsSender, AuthMessageSender>(); services.AddSingleton <IAuthService, AuthService>(); services.AddSingleton <IAuctionService, AuctionService>(); services.AddSingleton <IGlobalService, GlobalService>(); services.AddSingleton <IPeopleService, PeopleService>(); services.AddSingleton <IInvoiceService, InvoiceService>(); services.AddSingleton <IPaymentService, PaymentService>(); // Services services.AddSingleton(t => new GraphQLClient(Configuration["GraphQlEndpoint"])); services.AddSingleton <GlobalConsumer>(); services.AddSingleton <AuthConsumer>(); services.AddSingleton <PeopleConsumer>(); services.AddSingleton <InvoiceConsumer>(); services.AddSingleton <AuctionConsumer>(); services.AddSingleton <PaymentConsumer>(); services.AddSignalR(); services.AddProgressiveWebApp(); services.AddSession(options => { options.IdleTimeout = TimeSpan.FromMinutes(5); }); }
private void configLoadHelper(InitialConfigurations config) { var children = new List <GameObject>(); var parentTransform = buildingMenu.transform.Find("Panel").Find("ScrollRect").Find("Content Panel"); foreach (Transform child in parentTransform) { children.Add(child.gameObject); } children.ForEach(child => Destroy(child)); materialList = config.buildingConfig.defaultSkins; InputField min = buildingMenu.transform.Find("Panel").Find("HeightComponent").Find("InputField_Min").GetComponent <InputField>(); min.text = config.buildingConfig.minheight.ToString(); InputField max = buildingMenu.transform.Find("Panel").Find("HeightComponent").Find("InputField_Max").GetComponent <InputField>(); max.text = config.buildingConfig.maxheight.ToString(); GameObject skinList = buildingMenu.transform.Find("Panel").Find("ScrollRect").Find("Content Panel").gameObject; for (int k = 0; k < config.buildingConfig.defaultSkins.Count; k++) { GameObject skinItem = (GameObject)MonoBehaviour.Instantiate(Resources.Load("Prefabs/Menu/BuildingSkin")); Toggle skinitemToggle = skinItem.transform.Find("Panel").Find("Toggle").gameObject.GetComponent <Toggle>(); skinitemToggle.isOn = config.buildingConfig.defaultSkins[k].isActive; Text skinitemName = skinItem.transform.Find("Panel").Find("Text_Type").gameObject.GetComponent <Text>(); skinitemName.text = config.buildingConfig.defaultSkins[k].name; Text skinitemSize = skinItem.transform.Find("Panel").Find("Text_Size").GetComponent <Text>(); skinitemSize.text = config.buildingConfig.defaultSkins[k].width.ToString(); byte[] fileData; RawImage skinitemColor = skinItem.transform.Find("Panel").Find("Image_ColorTexture").GetComponent <RawImage>(); Texture2D colorText; if (File.Exists(config.buildingConfig.defaultSkins[k].colorTexturePath)) { fileData = File.ReadAllBytes(config.buildingConfig.defaultSkins[k].colorTexturePath); colorText = new Texture2D(2, 2); colorText.LoadImage(fileData); skinitemColor.texture = colorText; } else { skinitemColor.texture = null; } RawImage skinitemNormal = skinItem.transform.Find("Panel").Find("Image_NormalTexture").GetComponent <RawImage>(); Texture2D normalText; if (File.Exists(config.buildingConfig.defaultSkins[k].normalTexturePath)) { fileData = File.ReadAllBytes(config.buildingConfig.defaultSkins[k].normalTexturePath); normalText = new Texture2D(2, 2); normalText.LoadImage(fileData); skinitemNormal.texture = normalText; } else { skinitemNormal.texture = null; } RawImage skinitemSpecular = skinItem.transform.Find("Panel").Find("Image_SpecularTexture").GetComponent <RawImage>(); Texture2D specularText; if (File.Exists(config.buildingConfig.defaultSkins[k].specularTexturePath)) { fileData = File.ReadAllBytes(config.buildingConfig.defaultSkins[k].specularTexturePath); specularText = new Texture2D(2, 2); specularText.LoadImage(fileData); skinitemSpecular.texture = specularText; } else { skinitemSpecular.texture = null; } skinItem.transform.SetParent(skinList.transform); } }
/// <summary> /// Constructs the scene from given parameters /// </summary> /// <param name="OSMfilename">Full path of OSM file</param> /// <param name="continent">Specify Continent to download correct Heightmap from Nasa Srtm Data</param> /// <param name="provider">Choose mapProvider to select Texture of Terrain</param> public void initializeScene(string OSMfilename, HeightmapContinent _continent, MapProvider _provider) { string[] subStr = OSMfilename.Split(new char[] { '/', '\\' }); sceneName = subStr[subStr.Length - 1]; OSMPath = OSMfilename; continent = _continent; provider = _provider; List <Way> WayListforHighway = new List <Way>(); List <Way> WayListforBuilding = new List <Way>(); InitialConfigLoader configloader = new InitialConfigLoader(); var stopwatch = new System.Diagnostics.Stopwatch(); stopwatch.Start(); OSMparser parser = new OSMparser(); scenebbox = parser.readBBox(OSMfilename); scenebbox = editbbox(scenebbox); config = configloader.loadInitialConfig(); HeightmapLoader heightMap = new HeightmapLoader(scenebbox, continent); terrain = new myTerrain(heightMap, scenebbox, OSMfilename, provider); stopwatch.Stop(); Debug.Log("<color=blue>TERRAIN RENDER TIME:</color>" + stopwatch.ElapsedMilliseconds); stopwatch.Reset(); stopwatch.Start(); osmxml = parser.parseOSM(OSMfilename); assignNodePositions(); stopwatch.Stop(); Debug.Log("<color=blue>OSM PARSING TIME:</color>" + stopwatch.ElapsedMilliseconds); stopwatch.Reset(); stopwatch.Start(); defaultObject3DList = DefaultObject3DHandler.drawDefaultObjects(osmxml.defaultobject3DList); stopwatch.Stop(); Debug.Log("<color=blue>3D OBJECT RENDER TIME:</color>" + stopwatch.ElapsedMilliseconds); stopwatch.Reset(); stopwatch.Start(); 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; } } stopwatch.Stop(); Debug.Log("<color=blue>ITEM ENUMERATING TIME:</color>" + stopwatch.ElapsedMilliseconds); stopwatch.Reset(); stopwatch.Start(); highwayModeller = new HighwayModeller(WayListforHighway, terrain, config.highwayConfig); highwayModeller.renderHighwayList(); highwayModeller.renderPavementList(); highwayList = highwayModeller.highwayList; pavementList = highwayModeller.pavementList; stopwatch.Stop(); Debug.Log("<color=blue>HIGHWAY RENDERING TIME:</color>" + stopwatch.ElapsedMilliseconds); stopwatch.Reset(); stopwatch.Start(); BuildingListModeller buildingListModeller = new BuildingListModeller(WayListforBuilding, osmxml.buildingRelations, config.buildingConfig); buildingListModeller.renderBuildingList(); buildingList = buildingListModeller.buildingList; stopwatch.Stop(); Debug.Log("<color=blue>BUILDING RENDERING TIME:</color>" + stopwatch.ElapsedMilliseconds); Debug.Log("<color=red>Scene Info:</color> BuildingCount:" + buildingList.Count.ToString() + " HighwayCount:" + highwayList.Count); }
/// <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); }