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);
     }
 }
Example #2
0
        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);
            }
        }