00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00070
#ifndef __vtkDataObjectToDataSetFilter_h
00071
#define __vtkDataObjectToDataSetFilter_h
00072
00073
#include "vtkSource.h"
00074
00075
class vtkCellArray;
00076
class vtkDataArray;
00077
class vtkDataSet;
00078
class vtkPointSet;
00079
class vtkPolyData;
00080
class vtkRectilinearGrid;
00081
class vtkStructuredGrid;
00082
class vtkStructuredPoints;
00083
class vtkUnstructuredGrid;
00084
00085 class VTK_GRAPHICS_EXPORT vtkDataObjectToDataSetFilter :
public vtkSource
00086 {
00087
public:
00088
static vtkDataObjectToDataSetFilter *
New();
00089 vtkTypeRevisionMacro(vtkDataObjectToDataSetFilter,
vtkSource);
00090
void PrintSelf(ostream& os,
vtkIndent indent);
00091
00093
00094
void SetInput(
vtkDataObject *input);
00095
vtkDataObject *GetInput();
00097
00099
00100
void SetDataSetType(
int);
00101 vtkGetMacro(DataSetType,
int);
00102 void SetDataSetTypeToPolyData() {
00103 this->SetDataSetType(
VTK_POLY_DATA);};
00104 void SetDataSetTypeToStructuredPoints() {
00105 this->SetDataSetType(
VTK_STRUCTURED_POINTS);};
00106 void SetDataSetTypeToStructuredGrid() {
00107 this->SetDataSetType(
VTK_STRUCTURED_GRID);};
00108 void SetDataSetTypeToRectilinearGrid() {
00109 this->SetDataSetType(
VTK_RECTILINEAR_GRID);};
00110 void SetDataSetTypeToUnstructuredGrid() {
00111 this->SetDataSetType(
VTK_UNSTRUCTURED_GRID);};
00113
00115
00120
vtkDataSet *
GetOutput();
00121
vtkDataSet *
GetOutput(
int idx);
00122
vtkPolyData *GetPolyDataOutput();
00123
vtkStructuredPoints *GetStructuredPointsOutput();
00124
vtkStructuredGrid *GetStructuredGridOutput();
00125
vtkUnstructuredGrid *GetUnstructuredGridOutput();
00126
vtkRectilinearGrid *GetRectilinearGridOutput();
00128
00130
00141
void SetPointComponent(
int comp,
char *arrayName,
int arrayComp,
00142
int min,
int max,
int normalize);
00143 void SetPointComponent(
int comp,
char *arrayName,
int arrayComp)
00144 {this->SetPointComponent(comp, arrayName, arrayComp, -1, -1, this->DefaultNormalize);};
00145
const char *GetPointComponentArrayName(
int comp);
00146
int GetPointComponentArrayComponent(
int comp);
00147
int GetPointComponentMinRange(
int comp);
00148
int GetPointComponentMaxRange(
int comp);
00149
int GetPointComponentNormailzeFlag(
int comp);
00151
00153
00160
void SetVertsComponent(
char *arrayName,
int arrayComp,
int min,
int max);
00161 void SetVertsComponent(
char *arrayName,
int arrayComp)
00162 {this->SetVertsComponent(arrayName, arrayComp, -1, -1);};
00163
const char *GetVertsComponentArrayName();
00164
int GetVertsComponentArrayComponent();
00165
int GetVertsComponentMinRange();
00166
int GetVertsComponentMaxRange();
00167
void SetLinesComponent(
char *arrayName,
int arrayComp,
int min,
int max);
00168 void SetLinesComponent(
char *arrayName,
int arrayComp)
00169 {this->SetLinesComponent(arrayName, arrayComp, -1, -1);};
00170
const char *GetLinesComponentArrayName();
00171
int GetLinesComponentArrayComponent();
00172
int GetLinesComponentMinRange();
00173
int GetLinesComponentMaxRange();
00174
void SetPolysComponent(
char *arrayName,
int arrayComp,
int min,
int max);
00175 void SetPolysComponent(
char *arrayName,
int arrayComp)
00176 {this->SetPolysComponent(arrayName, arrayComp, -1, -1);};
00177
const char *GetPolysComponentArrayName();
00178
int GetPolysComponentArrayComponent();
00179
int GetPolysComponentMinRange();
00180
int GetPolysComponentMaxRange();
00181
void SetStripsComponent(
char *arrayName,
int arrayComp,
int min,
int max);
00182 void SetStripsComponent(
char *arrayName,
int arrayComp)
00183 {this->SetStripsComponent(arrayName, arrayComp, -1, -1);};
00184
const char *GetStripsComponentArrayName();
00185
int GetStripsComponentArrayComponent();
00186
int GetStripsComponentMinRange();
00187
int GetStripsComponentMaxRange();
00189
00191
00198
void SetCellTypeComponent(
char *arrayName,
int arrayComp,
00199
int min,
int max);
00200 void SetCellTypeComponent(
char *arrayName,
int arrayComp)
00201 {this->SetCellTypeComponent(arrayName, arrayComp, -1, -1);};
00202
const char *GetCellTypeComponentArrayName();
00203
int GetCellTypeComponentArrayComponent();
00204
int GetCellTypeComponentMinRange();
00205
int GetCellTypeComponentMaxRange();
00206
void SetCellConnectivityComponent(
char *arrayName,
int arrayComp,
00207
int min,
int max);
00208 void SetCellConnectivityComponent(
char *arrayName,
int arrayComp)
00209 {this->SetCellConnectivityComponent(arrayName, arrayComp, -1, -1);};
00210
const char *GetCellConnectivityComponentArrayName();
00211
int GetCellConnectivityComponentArrayComponent();
00212
int GetCellConnectivityComponentMinRange();
00213
int GetCellConnectivityComponentMaxRange();
00215
00217
00219 vtkSetMacro(DefaultNormalize,
int);
00220 vtkGetMacro(DefaultNormalize,
int);
00221 vtkBooleanMacro(DefaultNormalize,
int);
00223
00225
00228 vtkSetVector3Macro(Dimensions,
int);
00229 vtkGetVectorMacro(Dimensions,
int,3);
00231
00233
00235 vtkSetVector3Macro(Origin,
double);
00236 vtkGetVectorMacro(Origin,
double,3);
00238
00240
00242 vtkSetVector3Macro(Spacing,
double);
00243 vtkGetVectorMacro(Spacing,
double,3);
00245
00247
00252
void SetDimensionsComponent(
char *arrayName,
int arrayComp,
int min,
int max);
00253 void SetDimensionsComponent(
char *arrayName,
int arrayComp)
00254 {this->SetDimensionsComponent(arrayName, arrayComp, -1, -1);};
00255
void SetSpacingComponent(
char *arrayName,
int arrayComp,
int min,
int max);
00256 void SetSpacingComponent(
char *arrayName,
int arrayComp)
00257 {this->SetSpacingComponent(arrayName, arrayComp, -1, -1);};
00258
void SetOriginComponent(
char *arrayName,
int arrayComp,
int min,
int max);
00259 void SetOriginComponent(
char *arrayName,
int arrayComp)
00260 {this->SetOriginComponent(arrayName, arrayComp, -1, -1);};
00262
00263
protected:
00264 vtkDataObjectToDataSetFilter();
00265 ~vtkDataObjectToDataSetFilter();
00266
00267
void Execute();
00268
void ExecuteInformation();
00269
void ComputeInputUpdateExtents(
vtkDataObject *output);
00270
00271 char Updating;
00272
00273
00274 int DataSetType;
00275
00276
00277 char *PointArrays[3];
00278 int PointArrayComponents[3];
00279 vtkIdType PointComponentRange[3][2];
00280 int PointNormalize[3];
00281
00282
00283 char *VertsArray;
00284 int VertsArrayComponent;
00285 vtkIdType VertsComponentRange[2];
00286
00287 char *LinesArray;
00288 int LinesArrayComponent;
00289 vtkIdType LinesComponentRange[2];
00290
00291 char *PolysArray;
00292 int PolysArrayComponent;
00293 vtkIdType PolysComponentRange[2];
00294
00295 char *StripsArray;
00296 int StripsArrayComponent;
00297 vtkIdType StripsComponentRange[2];
00298
00299
00300 char *CellTypeArray;
00301 int CellTypeArrayComponent;
00302 vtkIdType CellTypeComponentRange[2];
00303
00304 char *CellConnectivityArray;
00305 int CellConnectivityArrayComponent;
00306 vtkIdType CellConnectivityComponentRange[2];
00307
00308
00309
void SetArrayName(
char* &name,
char *newName);
00310
vtkIdType ConstructPoints(
vtkPointSet *ps);
00311
vtkIdType ConstructPoints(
vtkRectilinearGrid *rg);
00312
int ConstructCells(
vtkPolyData *pd);
00313
int ConstructCells(
vtkUnstructuredGrid *ug);
00314
vtkCellArray *ConstructCellArray(
vtkDataArray *da,
int comp,
00315
vtkIdType compRange[2]);
00316
00317
00318 int DefaultNormalize;
00319
00320
00321 int Dimensions[3];
00322 double Origin[3];
00323 double Spacing[3];
00324
00325 char *DimensionsArray;
00326 int DimensionsArrayComponent;
00327 vtkIdType DimensionsComponentRange[2];
00328
00329 char *OriginArray;
00330 int OriginArrayComponent;
00331 vtkIdType OriginComponentRange[2];
00332
00333 char *SpacingArray;
00334 int SpacingArrayComponent;
00335 vtkIdType SpacingComponentRange[2];
00336
00337
void ConstructDimensions();
00338
void ConstructSpacing();
00339
void ConstructOrigin();
00340
00341
private:
00342 vtkDataObjectToDataSetFilter(
const vtkDataObjectToDataSetFilter&);
00343
void operator=(
const vtkDataObjectToDataSetFilter&);
00344 };
00345
00346
#endif