private void ShowHelp(TextWriter writer, ModeParser specifiedMode = null) { writer.WriteLine($"Canvas {GetVersion()} {Illumina.Shared.Version.VersionInfo.AssemblyCopyright}"); writer.WriteLine(); string modeName = specifiedMode?.Name ?? "[MODE]"; if (specifiedMode != null) { writer.WriteLine($"{specifiedMode.Name} - {specifiedMode.Description}"); writer.WriteLine(); } writer.WriteLine($"Usage: Canvas.exe {modeName} [OPTIONS]+"); writer.WriteLine(); if (specifiedMode == null) { writer.WriteLine("Available modes:"); foreach (var mode in _modeParsers.Values) { writer.WriteLine($"\t{mode.Name} - {mode.Description}"); } writer.WriteLine(); } writer.WriteLine("Options:"); if (specifiedMode != null) { specifiedMode.ShowHelp(writer); } BaseOptionsParser.ShowHelp(writer); }
private bool HandleBaseOptions(BaseOptions baseOptions, TextWriter writer, ModeParser specifiedMode = null) { if (baseOptions.ShowHelp) { ShowHelp(writer, specifiedMode); return true; } if (baseOptions.ShowVersion) { ShowVersion(writer); return true; } return false; }
public override void OnImportAsset(AssetImportContext ctx) { var lines = File.ReadAllLines(ctx.assetPath); int modeCoordinates = 0; int maxModeCoordinates = 0; var coordParser = new CoordinateParser(); var modeParser = new ModeParser(); MoleculeDefinition molecule = new MoleculeDefinition(); foreach (var line in lines) { coordParser.ParseLine(molecule, line); modeParser.ParseLine(molecule, line); if (molecule.VibrationalModes.Count > 0) { var regexBond = " ! R\\d+ +R\\((\\d+),(\\d+)\\)"; var match = Regex.Match(line, regexBond); if (match.Success) { var atom1 = int.Parse(match.Groups [1].Value) - 1; var atom2 = int.Parse(match.Groups [2].Value) - 1; molecule.Bonds.Add(new BondDefinition() { AtomIndex1 = atom1, AtomIndex2 = atom2 }); } } } ctx.AddObjectToAsset("Data", molecule); ctx.SetMainObject(molecule); }