VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkSTLReader.h,v $ 00005 00006 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 00007 All rights reserved. 00008 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00009 00010 This software is distributed WITHOUT ANY WARRANTY; without even 00011 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00012 PURPOSE. See the above copyright notice for more information. 00013 00014 =========================================================================*/ 00037 #ifndef __vtkSTLReader_h 00038 #define __vtkSTLReader_h 00039 00040 #include "vtkPolyDataAlgorithm.h" 00041 00042 class vtkCellArray; 00043 class vtkFloatArray; 00044 class vtkPointLocator; 00045 class vtkPoints; 00046 00047 class VTK_IO_EXPORT vtkSTLReader : public vtkPolyDataAlgorithm 00048 { 00049 public: 00050 vtkTypeRevisionMacro(vtkSTLReader,vtkPolyDataAlgorithm); 00051 void PrintSelf(ostream& os, vtkIndent indent); 00052 00054 static vtkSTLReader *New(); 00055 00058 unsigned long GetMTime(); 00059 00061 00062 vtkSetStringMacro(FileName); 00063 vtkGetStringMacro(FileName); 00065 00067 00068 vtkSetMacro(Merging,int); 00069 vtkGetMacro(Merging,int); 00070 vtkBooleanMacro(Merging,int); 00072 00074 00075 vtkSetMacro(ScalarTags,int); 00076 vtkGetMacro(ScalarTags,int); 00077 vtkBooleanMacro(ScalarTags,int); 00079 00081 00083 void SetLocator(vtkPointLocator *locator); 00084 vtkGetObjectMacro(Locator,vtkPointLocator); 00086 00088 void CreateDefaultLocator(); 00089 00090 protected: 00091 vtkSTLReader(); 00092 ~vtkSTLReader(); 00093 00094 char *FileName; 00095 int Merging; 00096 int ScalarTags; 00097 vtkPointLocator *Locator; 00098 00099 int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *); 00100 int ReadBinarySTL(FILE *fp, vtkPoints*, vtkCellArray*); 00101 int ReadASCIISTL(FILE *fp, vtkPoints*, vtkCellArray*, 00102 vtkFloatArray* scalars=0); 00103 int GetSTLFileType(const char *filename); 00104 private: 00105 vtkSTLReader(const vtkSTLReader&); // Not implemented. 00106 void operator=(const vtkSTLReader&); // Not implemented. 00107 }; 00108 00109 #endif