Ejemplo n.º 1
0
    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();
    }
Ejemplo n.º 2
0
        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;
            }
        }
Ejemplo n.º 3
0
 public void Init(CloudAPI.Model[] models)
 {
     this.CloudModels = models;
     ModelAssets.Download(models);
 }