IOWriteResult Write_STL(string sFilename, List <WriteMesh> vMeshes, WriteOptions options) { if (options.bWriteBinary) { FileStream file_stream = File.Open(sFilename, FileMode.Create); BinaryWriter w = new BinaryWriter(file_stream); if (w.BaseStream == null) { return(new IOWriteResult(IOCode.FileAccessError, "Could not open file " + sFilename + " for writing")); } STLWriter writer = new STLWriter(); var result = writer.Write(w, vMeshes, options); w.Close(); file_stream.Close(); return(result); } else { StreamWriter w = new StreamWriter(sFilename); if (w.BaseStream == null) { return(new IOWriteResult(IOCode.FileAccessError, "Could not open file " + sFilename + " for writing")); } STLWriter writer = new STLWriter(); var result = writer.Write(w, vMeshes, options); w.Close(); return(result); } }
IOWriteResult Write_STL(string sFilename, List <WriteMesh> vMeshes, WriteOptions options) { Stream stream = OpenStreamF(sFilename); if (stream == null) { return(new IOWriteResult(IOCode.FileAccessError, "Could not open file " + sFilename + " for writing")); } try { if (options.bWriteBinary) { var w = new BinaryWriter(stream); var writer = new STLWriter(); var result = writer.Write(w, vMeshes, options); w.Flush(); return(result); } else { var w = new StreamWriter(stream); var writer = new STLWriter(); var result = writer.Write(w, vMeshes, options); w.Flush(); return(result); } } finally { CloseStreamF(stream); } }