void LoadModels(string VideoFile) { StartedLoadingPrefabsEvent?.Invoke(); int total = CloudModels.Length; int cntr = 0; SceneModels = new List <SceneModel>(); var modelInstances = ModelInstances.Load(VideoFile); foreach (var cloudModel in CloudModels) { cntr += 1; var model = CloudAPI.Instance.GetModel(cloudModel.model); if (model.defaultPosition == null) { Log.Wrn($"no position for {cloudModel}, ignoring"); continue; } var pos = model.defaultPosition.GpsPos; var prefab = ModelAssets.LoadAsset(cloudModel.model); /* set trackable name to aid in debugging */ MainThreadRunner.Run(() => prefab.name = cloudModel.ToString()); var sceneModel = modelInstances.GetModel(cloudModel.model, cloudModel.name, prefab, pos); SceneModels.Add(sceneModel); PrefabLoadedEvent?.Invoke(cntr, total); } FinishedLoadingPrefabsEvent?.Invoke(); }
private void BindProductAssets() { TreeProvider tree = new TreeProvider(MembershipContext.AuthenticatedUser); var specSheets = tree.SelectNodes(CurrentSiteName, "/Media-Library/%", "en-US", false, "CMS.File", string.Empty, "NodeOrder", -1, true, CurrentDocument.NodeGUID, SpecSheetsRelationshipName, true).ToList(); if (specSheets.Any()) { SpecAssets.DataSource = specSheets; SpecAssets.DataBind(); SpecsContainer.Visible = true; } else { SpecsContainer.Visible = false; } var models = tree.SelectNodes(CurrentSiteName, "/Media-Library/%", "en-US", false, "CMS.File", string.Empty, "NodeOrder", -1, true, CurrentDocument.NodeGUID, ModelsRelationshipName, true).ToList(); if (models.Any()) { ModelAssets.DataSource = models; ModelAssets.DataBind(); ModelContainer.Visible = true; } else { ModelContainer.Visible = false; } var bimLink = ValidationHelper.GetString(DocumentContext.CurrentDocument["BIMLink"], String.Empty); var bimTitle = ValidationHelper.GetString(DocumentContext.CurrentDocument["BIMTitle"], "BIM"); if (!String.IsNullOrEmpty(bimLink) && !String.IsNullOrEmpty(bimTitle)) { BIMLink.NavigateUrl = bimLink; BIMLink.Text = bimTitle; BIMLink.Visible = true; ModelContainer.Visible = true; } else { BIMLink.Visible = false; } var videos = tree.SelectNodes(CurrentSiteName, "/Media-Library/%", "en-US", false, "CMS.File", string.Empty, "NodeOrder", -1, true, CurrentDocument.NodeGUID, VideosRelationshipName, true).ToList(); if (videos.Any()) { VideoAssets.DataSource = videos; VideoAssets.DataBind(); VideoContainer.Visible = true; } else { VideoContainer.Visible = false; } var pdfs = tree.SelectNodes(CurrentSiteName, "/Media-Library/%", "en-US", false, "CMS.File", string.Empty, "NodeOrder", -1, true, CurrentDocument.NodeGUID, PdfsRelationshipName, true).ToList(); if (pdfs.Any()) { PDFAssets.DataSource = pdfs; PDFAssets.DataBind(); PDFContainer.Visible = true; } else { PDFContainer.Visible = false; } if (!specSheets.Any() && !models.Any() && !videos.Any() && !pdfs.Any()) { ResourcesContainer.Visible = false; } }
public void Init(CloudAPI.Model[] models) { this.CloudModels = models; ModelAssets.Download(models); }