private IEnumerator loadSettings(SettingsFile settingsFile, int moleculeID, string filePath, LoadMoleculeRenderSettingsDelegate loadMoleculeRenderSettingsCallback) { if (settingsFile.StructureFilePath != null) { if (settingsFile.TrajectoryFilePath != null) { yield return(molecules.LoadMolecule(moleculeID, settingsFile.StructureFilePath, settingsFile.TrajectoryFilePath, settingsFile.RenderSettings)); } else { yield return(molecules.LoadMoleculeStructure(moleculeID, settingsFile.StructureFilePath, settingsFile.RenderSettings)); } } if (settingsFile.MoleculeTransform != null) { molecules.SetMoleculeTransform(moleculeID, settingsFile.MoleculeTransform); molecules.SaveCurrentMoleculeTransformAsDefault(moleculeID); } if (settingsFile.CameraTransform != null) { lookAtMolecule(moleculeID); } if (settingsFile.RenderSettings != null) { loadMoleculeRenderSettingsCallback(moleculeID, settingsFile.RenderSettings); } userInterface.ShowConsoleMessage("Loaded new settings for molecule from " + filePath); loadingSettingsFile = false; }
public static void RaiseLoadMoleculeSettings(int moleculeID, string filePath, bool loadStructure, bool loadTrajectory, bool loadRenderSettings, bool loadMoleculeTransform, bool loadCameraTransform, LoadMoleculeRenderSettingsDelegate loadMoleculeRenderSettingsCallback) { if (OnLoadMoleculeSettings != null) { OnLoadMoleculeSettings(moleculeID, filePath, loadStructure, loadTrajectory, loadRenderSettings, loadMoleculeTransform, loadCameraTransform, loadMoleculeRenderSettingsCallback); } }
private void loadSettingsFile(int moleculeID, string filePath, bool loadStructure, bool loadTrajectory, bool loadRenderSettings, bool loadMoleculeTransform, bool loadCameraTransform, LoadMoleculeRenderSettingsDelegate loadMoleculeRenderSettingsCallback) { if (!loadingSettingsFile) { loadingSettingsFile = true; SettingsFile settingsFile = null; try { string json = File.ReadAllText(filePath); fsData data = fsJsonParser.Parse(json); object settings = null; (new fsSerializer()).TryDeserialize(data, typeof(SettingsFile), ref settings).AssertSuccessWithoutWarnings(); settingsFile = (SettingsFile)settings; } catch (Exception e) { userInterface.ShowConsoleError("Error loading settings: " + e.Message); loadingSettingsFile = false; if (loadStructure) { userInterface.MoleculeLoadFailed(moleculeID); } return; } if (loadStructure) { if (string.IsNullOrEmpty(settingsFile.StructureFilePath)) { settingsFile.StructureFilePath = null; } else if (!File.Exists(settingsFile.StructureFilePath)) { userInterface.ShowConsoleMessage("Can't load molecule from settings file. File not found: " + settingsFile.StructureFilePath); userInterface.MoleculeLoadFailed(moleculeID); loadingSettingsFile = false; return; } } else { settingsFile.StructureFilePath = null; } if (settingsFile.StructureFilePath == null) { loadTrajectory = false; settingsFile.TrajectoryFilePath = null; } if (loadTrajectory) { if (string.IsNullOrEmpty(settingsFile.TrajectoryFilePath)) { settingsFile.TrajectoryFilePath = null; } else if (!File.Exists(settingsFile.TrajectoryFilePath)) { userInterface.ShowConsoleMessage("Can't load trajectory for molecule. File not found: " + settingsFile.TrajectoryFilePath); settingsFile.TrajectoryFilePath = null; } } if (!loadMoleculeTransform) { settingsFile.MoleculeTransform = null; } if (!loadCameraTransform) { settingsFile.CameraTransform = null; } if (!loadRenderSettings) { settingsFile.RenderSettings = null; } StartCoroutine(loadSettings(settingsFile, moleculeID, filePath, loadMoleculeRenderSettingsCallback)); } }