async void DownloadSceneResultAs_Click(object sender, EventArgs e) { var scene = _TreeViewScenes.SelectedNode.Tag as ReCapPhotoscene; string sceneName = scene.SceneName; SceneSettingsForm settingsForm = new SceneSettingsForm( sceneName, scene.MeshQuality, MeshFormatEnumExtensions.FromString(scene.ConvertFormat)); if (settingsForm.ShowDialog() != System.Windows.Forms.DialogResult.OK) { return; } var linkResult = await _reCapClient.GetPhotosceneLinkAsync( scene.PhotosceneId, settingsForm.MeshFormat); if (!linkResult.IsOk()) { LogReCapError(linkResult.Error); return; } scene = linkResult.Photoscene; if (scene.Progress != 100.0) { LogMessage("Start processing for scene: " + sceneName); ShowProgressForm(sceneName, scene.PhotosceneId); } else { DownloadSceneResult(scene); } }
private async Task <ReCapPhotoscene> RetrieveSceneInfo(string photosceneId) { try { var scenePropsResponse = await _reCapClient.GetPhotoscenePropertiesAsync( photosceneId); if (!scenePropsResponse.IsOk()) { OnLogReCapError(scenePropsResponse.Error); return(null); } ReCapPhotoscene scene = scenePropsResponse.Photoscene; var sceneProgResponse = await _reCapClient.GetPhotosceneProgressAsync( photosceneId); if (!sceneProgResponse.IsOk()) { OnLogReCapError(sceneProgResponse.Error); return(null); } double progress = sceneProgResponse.Photoscene.Progress; string progressMsg = sceneProgResponse.Photoscene.ProgressMsg; Uri link = null; if (progress == 100.0) { var sceneLinkResponse = await _reCapClient.GetPhotosceneLinkAsync( scene.PhotosceneId, MeshFormatEnumExtensions.FromString( scene.ConvertFormat)); if (!sceneLinkResponse.IsOk()) { OnLogReCapError(sceneLinkResponse.Error); } else { link = sceneLinkResponse.Photoscene.SceneLink; } } return(new ReCapPhotoscene( scene.SceneName, scene.PhotosceneId, progressMsg, progress, link, scene.FileSize, scene.UserId, scene.MeshQuality, scene.ConvertFormat, scene.ConvertStatus, scene.ProcessingTime, scene.Deleted, scene.Files, scene.Nb3dPoints, scene.NbFaces, scene.NbShots, scene.NbStitchedShots, scene.NbVertices)); } catch { return(null); } }