00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00023 #ifndef __vtkUGFacetReader_h
00024 #define __vtkUGFacetReader_h
00025 
00026 #include "vtkPolyDataAlgorithm.h"
00027 
00028 class vtkPointLocator;
00029 class vtkShortArray;
00030 
00031 class VTK_IO_EXPORT vtkUGFacetReader : public vtkPolyDataAlgorithm 
00032 {
00033 public:
00034   vtkTypeRevisionMacro(vtkUGFacetReader,vtkPolyDataAlgorithm);
00035   void PrintSelf(ostream& os, vtkIndent indent);
00036 
00039   static vtkUGFacetReader *New();
00040 
00043   unsigned long GetMTime();
00044 
00046 
00047   vtkSetStringMacro(FileName);
00048   vtkGetStringMacro(FileName);
00050 
00052   int GetNumberOfParts();
00053 
00055   short GetPartColorIndex(int partId);
00056 
00058 
00062   vtkSetMacro(PartNumber,int);
00063   vtkGetMacro(PartNumber,int);
00065 
00067 
00068   vtkSetMacro(Merging,int);
00069   vtkGetMacro(Merging,int);
00070   vtkBooleanMacro(Merging,int);
00072   
00074 
00076   void SetLocator(vtkPointLocator *locator);
00077   vtkGetObjectMacro(Locator,vtkPointLocator);
00079 
00081   void CreateDefaultLocator();
00082 
00083 protected:
00084   vtkUGFacetReader();
00085   ~vtkUGFacetReader();
00086 
00087   int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
00088 
00089   char *FileName;
00090   vtkShortArray *PartColors;
00091   int PartNumber;
00092   int Merging;
00093   vtkPointLocator *Locator;
00094 private:
00095   vtkUGFacetReader(const vtkUGFacetReader&);  
00096   void operator=(const vtkUGFacetReader&);  
00097 };
00098 
00099 #endif