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