00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00022 #ifndef __vtkPVGeometryFilter_h
00023 #define __vtkPVGeometryFilter_h
00024
00025 #include "vtkPolyDataAlgorithm.h"
00026
00027 class vtkDataObject;
00028 class vtkDataSet;
00029 class vtkDataSetSurfaceFilter;
00030 class vtkGenericDataSet;
00031 class vtkImageData;
00032 class vtkInformationVector;
00033 class vtkStructuredGrid;
00034 class vtkRectilinearGrid;
00035 class vtkUnstructuredGrid;
00036 class vtkOutlineSource;
00037 class vtkMultiProcessController;
00038 class vtkCallbackCommand;
00039 class vtkGenericGeometryFilter;
00040
00041 class VTK_EXPORT vtkPVGeometryFilter : public vtkPolyDataAlgorithm
00042 {
00043 public:
00044 static vtkPVGeometryFilter *New();
00045 vtkTypeRevisionMacro(vtkPVGeometryFilter,vtkPolyDataAlgorithm);
00046 void PrintSelf(ostream& os, vtkIndent indent);
00047
00049
00051 vtkGetMacro(OutlineFlag, int);
00053
00055
00056 vtkSetMacro(UseOutline, int);
00057 vtkGetMacro(UseOutline, int);
00059
00061
00064 vtkSetMacro(UseStrips, int);
00065 vtkGetMacro(UseStrips, int);
00066 vtkBooleanMacro(UseStrips, int);
00068
00070
00074 vtkSetMacro(GenerateCellNormals, int);
00075 vtkGetMacro(GenerateCellNormals, int);
00076 vtkBooleanMacro(GenerateCellNormals, int);
00078
00080
00081 virtual void SetController(vtkMultiProcessController*);
00082 vtkGetObjectMacro(Controller, vtkMultiProcessController);
00084
00085 protected:
00086 vtkPVGeometryFilter();
00087 ~vtkPVGeometryFilter();
00088
00089 virtual int RequestInformation(vtkInformation* request,
00090 vtkInformationVector** inputVector,
00091 vtkInformationVector* outputVector);
00092 virtual int RequestCompositeData(vtkInformation* request,
00093 vtkInformationVector** inputVector,
00094 vtkInformationVector* outputVector);
00095 virtual int RequestData(vtkInformation* request,
00096 vtkInformationVector** inputVector,
00097 vtkInformationVector* outputVector);
00098
00099
00100 virtual vtkExecutive* CreateDefaultExecutive();
00101
00102 void ExecuteBlock(vtkDataObject* input, vtkPolyData* output, int doCommunicate);
00103
00104 void DataSetExecute(vtkDataSet* input, vtkPolyData* output,
00105 int doCommunicate);
00106 void GenericDataSetExecute(vtkGenericDataSet* input, vtkPolyData* output,
00107 int doCommunicate);
00108 void ImageDataExecute(vtkImageData* input, vtkPolyData* output, int doCommunicate);
00109 void StructuredGridExecute(vtkStructuredGrid* input, vtkPolyData* output);
00110 void RectilinearGridExecute(vtkRectilinearGrid* input, vtkPolyData* output);
00111 void UnstructuredGridExecute(
00112 vtkUnstructuredGrid* input, vtkPolyData* output, int doCommunicate);
00113 void PolyDataExecute(
00114 vtkPolyData* input, vtkPolyData* output, int doCommunicate);
00115 void DataSetSurfaceExecute(vtkDataSet* input, vtkPolyData* output);
00116 void ExecuteCellNormals(vtkPolyData* output, int doCommunicate);
00117
00118 int OutlineFlag;
00119 int UseOutline;
00120 int UseStrips;
00121 int GenerateCellNormals;
00122
00123 vtkMultiProcessController* Controller;
00124 vtkOutlineSource *OutlineSource;
00125 vtkDataSetSurfaceFilter* DataSetSurfaceFilter;
00126 vtkGenericGeometryFilter *GenericGeometryFilter;
00127
00128 int CheckAttributes(vtkDataObject* input);
00129
00130
00131 static void InternalProgressCallbackFunction(vtkObject*, unsigned long,
00132 void* clientdata, void*);
00133 void InternalProgressCallback(vtkAlgorithm *algorithm);
00134
00135 vtkCallbackCommand* InternalProgressObserver;
00136
00137 virtual int FillInputPortInformation(int, vtkInformation*);
00138
00139 virtual void ReportReferences(vtkGarbageCollector*);
00140
00141 private:
00142 vtkPVGeometryFilter(const vtkPVGeometryFilter&);
00143 void operator=(const vtkPVGeometryFilter&);
00144
00145 int GenerateGroupScalars;
00146 unsigned int CurrentGroup;
00147 };
00148
00149 #endif
00150
00151