// .NAME vtkPTXReader - read a ptx file into a polydata object // .SECTION Description // vtkPTXReader reads a ptx file into a polydata object #ifndef __vtkPTXReader_h #define __vtkPTXReader_h #include "vtkPolyDataAlgorithm.h" #include "vtkSmartPointer.h" #include "vtkDenseArray.h" struct Point { double x,y,z; }; struct Color { Color(){r=0;g=0;b=0;} Color(unsigned char* c) {r = c[0]; g=c[1]; b=c[2];} unsigned char r,g,b; }; //class vtkPTXReader : public vtkPolyDataAlgorithm class VTK_IO_EXPORT vtkPTXReader : public vtkPolyDataAlgorithm { public: vtkTypeRevisionMacro(vtkPTXReader,vtkPolyDataAlgorithm); void PrintSelf(ostream& os, vtkIndent indent); static vtkPTXReader *New(); // Description: // Specify file name of the ptx file. vtkSetStringMacro(FileName); vtkGetStringMacro(FileName); vtkSetMacro(SpanGaps, bool); vtkGetMacro(SpanGaps, bool); vtkSetMacro(Triangulate, bool); vtkGetMacro(Triangulate, bool); protected: vtkPTXReader(); ~vtkPTXReader(); int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *); private: vtkPTXReader(const vtkPTXReader&); // Not implemented. void operator=(const vtkPTXReader&); // Not implemented. //internal data //BTX vtkSmartPointer > PointGrid; vtkSmartPointer > ValidGrid; vtkSmartPointer > ColorGrid; vtkSmartPointer > IntensityGrid; vtkSmartPointer > IdGrid; //ETX char* FileName; unsigned int NumberOfThetaPoints; unsigned int NumberOfPhiPoints; //options bool Triangulate; bool SpanGaps; //funtions void GeneratePointPolyData(vtkPolyData* output); void GenerateTriangulatedPolyData(vtkPolyData* result); void GenerateTriangulatedPolyDataSpanGaps(vtkPolyData* result); bool ReadFile(); }; #endif