protected override Vector2 GetCoordFromHit(RaycastHit hit)
        {
            LocalTerrainModel terrainModel = GetActiveTerrainModel();

            if (!terrainModel)
            {
                throw new Exception("Active localized terrain model not found.");
            }
            return(BoundingBoxUtils.UVToCoordinates(terrainModel.SquareBoundingBox, hit.textureCoord));
        }
        public void CreateLocalTerrainFromBookmark(string bookmarkJson)
        {
            Bookmark               bookmark            = JsonConvert.DeserializeObject <Bookmark>(bookmarkJson, JsonConfig.SerializerSettings);
            BoundingBox            bbox                = BoundingBoxUtils.ParseBoundingBox(bookmark.BoundingBox);
            TerrainProductMetadata baseProductMetadata = new TerrainProductMetadata(bookmark.TexturesUUID[0], bbox, 0);
            // TODO Add additional product layers if present.

            TerrainModelManager terrainModelManager = TerrainModelManager.Instance;
            LocalTerrainModel   terrainModel        = terrainModelManager.CreateLocalModelFromBookmark(bbox, bookmark.DemUUID, bookmark.TexturesUUID);

            terrainModelManager.ShowTerrainModel(terrainModel);
        }
 protected override void Start()
 {
     _terrainModel            = GetComponent <LocalTerrainModel>();
     _bboxSelectionController = LocalTerrainOverlayController.Instance.BBoxSelectionController;
     base.Start();
 }