// Look up the path set associated with a particular mesh public static InteriorPathSet FindPathsForMesh(WorldEditor app, string meshName) { InteriorPathSetLookup result; if (pathSetDictionary.TryGetValue(meshName, out result)) { return(result.paths); } else { string meshNameWithoutExtension = Path.GetFileNameWithoutExtension(meshName); string modelPathFile = meshNameWithoutExtension + ".modelpaths"; try { Stream stream = ResourceManager.FindCommonResourceData(modelPathFile); InteriorPathSet pathset = new InteriorPathSet(stream, app, meshNameWithoutExtension); return(pathset); } catch (Exception e) { LogManager.Instance.Write("Could not read '{0}'; error was '{1}'", modelPathFile, e.Message); pathSetDictionary[meshNameWithoutExtension] = new InteriorPathSetLookup(false, null); return(null); } } }
// This constructor reads the xml from the file, filling in // the instance, and adding it to the dictionary mapping mesh // name to InteriorPathSet instance. public InteriorPathSet(Stream filestream, WorldEditor app, string meshName) { this.meshName = meshName; XmlReader r = XmlReader.Create(filestream, app.XMLReaderSettings); FromXml(r, app); pathSetDictionary[meshName] = new InteriorPathSetLookup(true, this); }
// Look up the path set associated with a particular mesh public static InteriorPathSet FindPathsForMesh(WorldEditor app, string meshName) { InteriorPathSetLookup result; if (pathSetDictionary.TryGetValue(meshName, out result)) return result.paths; else { string meshNameWithoutExtension = Path.GetFileNameWithoutExtension(meshName); string modelPathFile = meshNameWithoutExtension + ".modelpaths"; try { Stream stream = ResourceManager.FindCommonResourceData(modelPathFile); InteriorPathSet pathset = new InteriorPathSet(stream, app, meshNameWithoutExtension); return pathset; } catch (Exception e) { LogManager.Instance.Write("Could not read '{0}'; error was '{1}'", modelPathFile, e.Message); pathSetDictionary[meshNameWithoutExtension] = new InteriorPathSetLookup(false, null); return null; } } }
// This constructor is used when saving a collection of // InteriorPaths from a UI model object. public InteriorPathSet(string meshName) { this.meshName = meshName; pathSetDictionary[meshName] = new InteriorPathSetLookup(true, this); }