/// <summary> /// Read mesh file at path, with given Options. Result is stored in MeshBuilder parameter /// </summary> public IOReadResult Read(Stream stream, string sExtension, ReadOptions options) { if (MeshBuilder == null) { return(new IOReadResult(IOCode.GenericReaderError, "MeshBuilder is null!")); } MeshFormatReader useReader = null; foreach (var reader in Readers) { foreach (string ext in reader.SupportedExtensions) { if (ext.Equals(sExtension, StringComparison.OrdinalIgnoreCase)) { useReader = reader; } } if (useReader != null) { break; } } if (useReader == null) { return(new IOReadResult(IOCode.UnknownFormatError, "format " + sExtension + " is not supported")); } // save current culture var current_culture = Thread.CurrentThread.CurrentCulture; try { // push invariant culture for write if (ReadInvariantCulture) { Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture; } var result = useReader.ReadFile(stream, MeshBuilder, options, on_warning); // restore culture if (ReadInvariantCulture) { Thread.CurrentThread.CurrentCulture = current_culture; } return(result); } catch (Exception e) { // restore culture if (ReadInvariantCulture) { Thread.CurrentThread.CurrentCulture = current_culture; } return(new IOReadResult(IOCode.GenericReaderError, "Unknown error : exception : " + e.Message)); } }
/// <summary> /// Read mesh file at path, with given Options. Result is stored in MeshBuilder parameter /// </summary> public IOReadResult Read(Stream stream, string sExtension, ReadOptions options) { if (MeshBuilder == null) { return(new IOReadResult(IOCode.GenericReaderError, "MeshBuilder is null!")); } MeshFormatReader useReader = null; foreach (var reader in Readers) { foreach (string ext in reader.SupportedExtensions) { if (ext.Equals(sExtension, StringComparison.OrdinalIgnoreCase)) { useReader = reader; } } if (useReader != null) { break; } } if (useReader == null) { return(new IOReadResult(IOCode.UnknownFormatError, "format " + sExtension + " is not supported")); } try { return(useReader.ReadFile(stream, MeshBuilder, options, on_warning)); } catch (Exception e) { return(new IOReadResult(IOCode.GenericReaderError, "Unknown error : exception : " + e.Message)); } }
/// <summary> /// Read mesh file at path, with given Options. Result is stored in MeshBuilder parameter /// </summary> public IOReadResult Read(string sFilename, ReadOptions options) { if (MeshBuilder == null) { return(new IOReadResult(IOCode.GenericReaderError, "MeshBuilder is null!")); } string sExtension = Path.GetExtension(sFilename); if (sExtension.Length < 2) { return(new IOReadResult(IOCode.InvalidFilenameError, "filename " + sFilename + " does not contain valid extension")); } sExtension = sExtension.Substring(1); MeshFormatReader useReader = null; foreach (var reader in Readers) { foreach (string ext in reader.SupportedExtensions) { if (ext.Equals(sExtension, StringComparison.OrdinalIgnoreCase)) { useReader = reader; } } if (useReader != null) { break; } } if (useReader == null) { return(new IOReadResult(IOCode.UnknownFormatError, "format " + sExtension + " is not supported")); } try { return(useReader.ReadFile(sFilename, MeshBuilder, options, on_warning)); } catch (Exception e) { return(new IOReadResult(IOCode.GenericReaderError, "Unknown error : exception : " + e.Message)); } }