VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkHyperOctreeSurfaceFilter.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 =========================================================================*/ 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 // Variables used by generate recursively. 00094 // It avoids to pass to much argument. 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&); // Not implemented. 00108 void operator=(const vtkHyperOctreeSurfaceFilter&); // Not implemented. 00109 }; 00110 00111 #endif