VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkHyperOctreeSurfaceFilter.h 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 "vtkFiltersHyperTreeModule.h" // For export macro 00031 #include "vtkPolyDataAlgorithm.h" 00032 00033 class vtkHyperOctreeCursor; 00034 class vtkDataSetAttributes; 00035 class vtkIdTypeArray; 00036 class vtkIncrementalPointLocator; 00037 00038 class VTKFILTERSHYPERTREE_EXPORT vtkHyperOctreeSurfaceFilter : public vtkPolyDataAlgorithm 00039 { 00040 public: 00041 static vtkHyperOctreeSurfaceFilter *New(); 00042 vtkTypeMacro(vtkHyperOctreeSurfaceFilter,vtkPolyDataAlgorithm); 00043 void PrintSelf(ostream& os, vtkIndent indent); 00044 00046 00049 vtkSetMacro(Merging,int); 00050 vtkGetMacro(Merging,int); 00051 vtkBooleanMacro(Merging,int); 00053 00055 00057 void SetLocator(vtkIncrementalPointLocator *locator); 00058 vtkGetObjectMacro(Locator,vtkIncrementalPointLocator); 00060 00062 unsigned long GetMTime(); 00063 00065 00069 vtkSetMacro(PassThroughCellIds,int); 00070 vtkGetMacro(PassThroughCellIds,int); 00071 vtkBooleanMacro(PassThroughCellIds,int); 00073 00074 protected: 00075 vtkHyperOctreeSurfaceFilter(); 00076 ~vtkHyperOctreeSurfaceFilter(); 00077 00078 virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *); 00079 virtual int FillInputPortInformation(int port, vtkInformation *info); 00080 00081 void GenerateLines(double bounds[2], 00082 vtkIdType ptIds[2]); 00083 void GenerateQuads(double bounds[4], 00084 vtkIdType ptIds[4]); 00085 void GenerateFaces(double bounds[6], 00086 vtkIdType ptIds[8], 00087 int onFace[6]); 00088 00090 void CreateDefaultLocator(); 00091 00092 int Merging; 00093 vtkIncrementalPointLocator *Locator; 00094 00095 // Variables used by generate recursively. 00096 // It avoids to pass to much argument. 00097 vtkDataSetAttributes *InputCD; 00098 00099 vtkHyperOctreeCursor *Cursor; 00100 vtkPoints *OutPts; 00101 vtkCellArray *OutCells; 00102 vtkCellData *OutputCD; 00103 00104 int PassThroughCellIds; 00105 void RecordOrigCellId(vtkIdType destIndex, vtkIdType originalId); 00106 vtkIdTypeArray *OriginalCellIds; 00107 00108 private: 00109 vtkHyperOctreeSurfaceFilter(const vtkHyperOctreeSurfaceFilter&); // Not implemented. 00110 void operator=(const vtkHyperOctreeSurfaceFilter&); // Not implemented. 00111 }; 00112 00113 #endif