public STLFile(FileStream fileStream, STLInfo.STLUnits units, bool InhibitFullAnalysis = false) { // Set vars Surfaces = new List <Surface>(); Units = units; this.InhibitFullAnalysis = InhibitFullAnalysis; this.fileStream = fileStream; reader = new StreamReader(fileStream); // Determine type and name of STL GetTypeAndName(); // Correct reader now at end of header element // Get vertices, surface normal vectors, triangles // I.E. Get Surfaces GetSurfaces(); }
public STLExtractor(string stlFileLocation, STLInfo.STLUnits units = STLInfo.STLUnits.Centimeters, bool InhibitFullAnalysis = false) { if (File.Exists(stlFileLocation)) { ValidState = FileValidity.Valid; IsValid = true; try { STL = new STLFile(File.Open(stlFileLocation, FileMode.Open), units, InhibitFullAnalysis); } catch (ArgumentNullException) { IsValid = false; ValidState = FileValidity.FileNameNull; } catch (UnauthorizedAccessException) { IsValid = false; ValidState = FileValidity.UnauthorizedAccess; } catch (ArgumentException) { IsValid = false; ValidState = FileValidity.InvalidFile; } catch (PathTooLongException) { IsValid = false; ValidState = FileValidity.PathTooLong; } catch (NotSupportedException) { IsValid = false; ValidState = FileValidity.UnsupportedFileOperation; } } else { ValidState = FileValidity.WrongPath; IsValid = false; } }