00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00027 #ifndef __vtkHyperOctreeSurfaceFilter_h
00028 #define __vtkHyperOctreeSurfaceFilter_h
00029
00030 #include "vtkPolyDataAlgorithm.h"
00031
00032 class vtkHyperOctreeCursor;
00033 class vtkDataSetAttributes;
00034 class vtkIdTypeArray;
00035
00036 class VTK_GRAPHICS_EXPORT vtkHyperOctreeSurfaceFilter : public vtkPolyDataAlgorithm
00037 {
00038 public:
00039 static vtkHyperOctreeSurfaceFilter *New();
00040 vtkTypeRevisionMacro(vtkHyperOctreeSurfaceFilter,vtkPolyDataAlgorithm);
00041 void PrintSelf(ostream& os, vtkIndent indent);
00042
00044
00047 vtkSetMacro(Merging,int);
00048 vtkGetMacro(Merging,int);
00049 vtkBooleanMacro(Merging,int);
00051
00053
00055 void SetLocator(vtkPointLocator *locator);
00056 vtkGetObjectMacro(Locator,vtkPointLocator);
00058
00060 unsigned long GetMTime();
00061
00063
00067 vtkSetMacro(PassThroughCellIds,int);
00068 vtkGetMacro(PassThroughCellIds,int);
00069 vtkBooleanMacro(PassThroughCellIds,int);
00071
00072 protected:
00073 vtkHyperOctreeSurfaceFilter();
00074 ~vtkHyperOctreeSurfaceFilter();
00075
00076 virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
00077 virtual int FillInputPortInformation(int port, vtkInformation *info);
00078
00079 void GenerateLines(double bounds[2],
00080 vtkIdType ptIds[2]);
00081 void GenerateQuads(double bounds[4],
00082 vtkIdType ptIds[4]);
00083 void GenerateFaces(double bounds[6],
00084 vtkIdType ptIds[8],
00085 int onFace[6]);
00086
00088 void CreateDefaultLocator();
00089
00090 int Merging;
00091 vtkPointLocator *Locator;
00092
00093
00094
00095 vtkDataSetAttributes *InputCD;
00096
00097 vtkHyperOctreeCursor *Cursor;
00098 vtkPoints *OutPts;
00099 vtkCellArray *OutCells;
00100 vtkCellData *OutputCD;
00101
00102 int PassThroughCellIds;
00103 void RecordOrigCellId(vtkIdType destIndex, vtkIdType originalId);
00104 vtkIdTypeArray *OriginalCellIds;
00105
00106 private:
00107 vtkHyperOctreeSurfaceFilter(const vtkHyperOctreeSurfaceFilter&);
00108 void operator=(const vtkHyperOctreeSurfaceFilter&);
00109 };
00110
00111 #endif