00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00067 #ifndef __vtkDataObjectToDataSetFilter_h
00068 #define __vtkDataObjectToDataSetFilter_h
00069
00070 #include "vtkDataSetAlgorithm.h"
00071
00072 class vtkCellArray;
00073 class vtkDataArray;
00074 class vtkDataSet;
00075 class vtkPointSet;
00076 class vtkPolyData;
00077 class vtkRectilinearGrid;
00078 class vtkStructuredGrid;
00079 class vtkStructuredPoints;
00080 class vtkUnstructuredGrid;
00081
00082 class VTK_GRAPHICS_EXPORT vtkDataObjectToDataSetFilter : public vtkDataSetAlgorithm
00083 {
00084 public:
00085 static vtkDataObjectToDataSetFilter *New();
00086 vtkTypeRevisionMacro(vtkDataObjectToDataSetFilter,vtkDataSetAlgorithm);
00087 void PrintSelf(ostream& os, vtkIndent indent);
00088
00090 vtkDataObject *GetInput();
00091
00093
00094 void SetDataSetType(int);
00095 vtkGetMacro(DataSetType,int);
00096 void SetDataSetTypeToPolyData() {
00097 this->SetDataSetType(VTK_POLY_DATA);};
00098 void SetDataSetTypeToStructuredPoints() {
00099 this->SetDataSetType(VTK_STRUCTURED_POINTS);};
00100 void SetDataSetTypeToStructuredGrid() {
00101 this->SetDataSetType(VTK_STRUCTURED_GRID);};
00102 void SetDataSetTypeToRectilinearGrid() {
00103 this->SetDataSetType(VTK_RECTILINEAR_GRID);};
00104 void SetDataSetTypeToUnstructuredGrid() {
00105 this->SetDataSetType(VTK_UNSTRUCTURED_GRID);};
00107
00109
00114 vtkDataSet *GetOutput();
00115 vtkDataSet *GetOutput(int idx);
00116 vtkPolyData *GetPolyDataOutput();
00117 vtkStructuredPoints *GetStructuredPointsOutput();
00118 vtkStructuredGrid *GetStructuredGridOutput();
00119 vtkUnstructuredGrid *GetUnstructuredGridOutput();
00120 vtkRectilinearGrid *GetRectilinearGridOutput();
00122
00124
00135 void SetPointComponent(int comp, char *arrayName, int arrayComp,
00136 int min, int max, int normalize);
00137 void SetPointComponent(int comp, char *arrayName, int arrayComp)
00138 {this->SetPointComponent(comp, arrayName, arrayComp, -1, -1, this->DefaultNormalize);};
00139 const char *GetPointComponentArrayName(int comp);
00140 int GetPointComponentArrayComponent(int comp);
00141 int GetPointComponentMinRange(int comp);
00142 int GetPointComponentMaxRange(int comp);
00143 int GetPointComponentNormailzeFlag(int comp);
00145
00147
00154 void SetVertsComponent(char *arrayName, int arrayComp, int min, int max);
00155 void SetVertsComponent(char *arrayName, int arrayComp)
00156 {this->SetVertsComponent(arrayName, arrayComp, -1, -1);};
00157 const char *GetVertsComponentArrayName();
00158 int GetVertsComponentArrayComponent();
00159 int GetVertsComponentMinRange();
00160 int GetVertsComponentMaxRange();
00161 void SetLinesComponent(char *arrayName, int arrayComp, int min, int max);
00162 void SetLinesComponent(char *arrayName, int arrayComp)
00163 {this->SetLinesComponent(arrayName, arrayComp, -1, -1);};
00164 const char *GetLinesComponentArrayName();
00165 int GetLinesComponentArrayComponent();
00166 int GetLinesComponentMinRange();
00167 int GetLinesComponentMaxRange();
00168 void SetPolysComponent(char *arrayName, int arrayComp, int min, int max);
00169 void SetPolysComponent(char *arrayName, int arrayComp)
00170 {this->SetPolysComponent(arrayName, arrayComp, -1, -1);};
00171 const char *GetPolysComponentArrayName();
00172 int GetPolysComponentArrayComponent();
00173 int GetPolysComponentMinRange();
00174 int GetPolysComponentMaxRange();
00175 void SetStripsComponent(char *arrayName, int arrayComp, int min, int max);
00176 void SetStripsComponent(char *arrayName, int arrayComp)
00177 {this->SetStripsComponent(arrayName, arrayComp, -1, -1);};
00178 const char *GetStripsComponentArrayName();
00179 int GetStripsComponentArrayComponent();
00180 int GetStripsComponentMinRange();
00181 int GetStripsComponentMaxRange();
00183
00185
00192 void SetCellTypeComponent(char *arrayName, int arrayComp,
00193 int min, int max);
00194 void SetCellTypeComponent(char *arrayName, int arrayComp)
00195 {this->SetCellTypeComponent(arrayName, arrayComp, -1, -1);};
00196 const char *GetCellTypeComponentArrayName();
00197 int GetCellTypeComponentArrayComponent();
00198 int GetCellTypeComponentMinRange();
00199 int GetCellTypeComponentMaxRange();
00200 void SetCellConnectivityComponent(char *arrayName, int arrayComp,
00201 int min, int max);
00202 void SetCellConnectivityComponent(char *arrayName, int arrayComp)
00203 {this->SetCellConnectivityComponent(arrayName, arrayComp, -1, -1);};
00204 const char *GetCellConnectivityComponentArrayName();
00205 int GetCellConnectivityComponentArrayComponent();
00206 int GetCellConnectivityComponentMinRange();
00207 int GetCellConnectivityComponentMaxRange();
00209
00211
00213 vtkSetMacro(DefaultNormalize,int);
00214 vtkGetMacro(DefaultNormalize,int);
00215 vtkBooleanMacro(DefaultNormalize,int);
00217
00219
00222 vtkSetVector3Macro(Dimensions,int);
00223 vtkGetVectorMacro(Dimensions,int,3);
00225
00227
00229 vtkSetVector3Macro(Origin,double);
00230 vtkGetVectorMacro(Origin,double,3);
00232
00234
00236 vtkSetVector3Macro(Spacing,double);
00237 vtkGetVectorMacro(Spacing,double,3);
00239
00241
00246 void SetDimensionsComponent(char *arrayName, int arrayComp, int min, int max);
00247 void SetDimensionsComponent(char *arrayName, int arrayComp)
00248 {this->SetDimensionsComponent(arrayName, arrayComp, -1, -1);};
00249 void SetSpacingComponent(char *arrayName, int arrayComp, int min, int max);
00250 void SetSpacingComponent(char *arrayName, int arrayComp)
00251 {this->SetSpacingComponent(arrayName, arrayComp, -1, -1);};
00252 void SetOriginComponent(char *arrayName, int arrayComp, int min, int max);
00253 void SetOriginComponent(char *arrayName, int arrayComp)
00254 {this->SetOriginComponent(arrayName, arrayComp, -1, -1);};
00256
00257 protected:
00258 vtkDataObjectToDataSetFilter();
00259 ~vtkDataObjectToDataSetFilter();
00260
00261 virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
00262 virtual int RequestInformation(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
00263 virtual int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
00264 virtual int FillInputPortInformation(int port, vtkInformation *info);
00265 virtual int RequestDataObject(vtkInformation *, vtkInformationVector **,
00266 vtkInformationVector *);
00267
00268 char Updating;
00269
00270
00271 int DataSetType;
00272
00273
00274 char *PointArrays[3];
00275 int PointArrayComponents[3];
00276 vtkIdType PointComponentRange[3][2];
00277 int PointNormalize[3];
00278
00279
00280 char *VertsArray;
00281 int VertsArrayComponent;
00282 vtkIdType VertsComponentRange[2];
00283
00284 char *LinesArray;
00285 int LinesArrayComponent;
00286 vtkIdType LinesComponentRange[2];
00287
00288 char *PolysArray;
00289 int PolysArrayComponent;
00290 vtkIdType PolysComponentRange[2];
00291
00292 char *StripsArray;
00293 int StripsArrayComponent;
00294 vtkIdType StripsComponentRange[2];
00295
00296
00297 char *CellTypeArray;
00298 int CellTypeArrayComponent;
00299 vtkIdType CellTypeComponentRange[2];
00300
00301 char *CellConnectivityArray;
00302 int CellConnectivityArrayComponent;
00303 vtkIdType CellConnectivityComponentRange[2];
00304
00305
00306 void SetArrayName(char* &name, char *newName);
00307 vtkIdType ConstructPoints(vtkDataObject *input, vtkPointSet *ps);
00308 vtkIdType ConstructPoints(vtkDataObject *input, vtkRectilinearGrid *rg);
00309 int ConstructCells(vtkDataObject *input, vtkPolyData *pd);
00310 int ConstructCells(vtkDataObject *input, vtkUnstructuredGrid *ug);
00311 vtkCellArray *ConstructCellArray(vtkDataArray *da, int comp,
00312 vtkIdType compRange[2]);
00313
00314
00315 int DefaultNormalize;
00316
00317
00318 int Dimensions[3];
00319 double Origin[3];
00320 double Spacing[3];
00321
00322 char *DimensionsArray;
00323 int DimensionsArrayComponent;
00324 vtkIdType DimensionsComponentRange[2];
00325
00326 char *OriginArray;
00327 int OriginArrayComponent;
00328 vtkIdType OriginComponentRange[2];
00329
00330 char *SpacingArray;
00331 int SpacingArrayComponent;
00332 vtkIdType SpacingComponentRange[2];
00333
00334 void ConstructDimensions(vtkDataObject *input);
00335 void ConstructSpacing(vtkDataObject *input);
00336 void ConstructOrigin(vtkDataObject *input);
00337
00338 private:
00339 vtkDataObjectToDataSetFilter(const vtkDataObjectToDataSetFilter&);
00340 void operator=(const vtkDataObjectToDataSetFilter&);
00341 };
00342
00343 #endif