00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
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&);
00106 void operator=(const vtkSTLReader&);
00107 };
00108
00109 #endif