VTK  9.1.0
vtkDataObjectToDataSetFilter.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkDataObjectToDataSetFilter.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
84 #ifndef vtkDataObjectToDataSetFilter_h
85 #define vtkDataObjectToDataSetFilter_h
86 
87 #include "vtkDataSetAlgorithm.h"
88 #include "vtkFiltersCoreModule.h" // For export macro
89 
90 class vtkCellArray;
91 class vtkDataArray;
92 class vtkDataSet;
93 class vtkPointSet;
94 class vtkPolyData;
95 class vtkRectilinearGrid;
96 class vtkStructuredGrid;
99 
100 class VTKFILTERSCORE_EXPORT vtkDataObjectToDataSetFilter : public vtkDataSetAlgorithm
101 {
102 public:
105  void PrintSelf(ostream& os, vtkIndent indent) override;
106 
111 
113 
116  void SetDataSetType(int);
117  vtkGetMacro(DataSetType, int);
118  void SetDataSetTypeToPolyData() { this->SetDataSetType(VTK_POLY_DATA); }
119  void SetDataSetTypeToStructuredPoints() { this->SetDataSetType(VTK_STRUCTURED_POINTS); }
120  void SetDataSetTypeToStructuredGrid() { this->SetDataSetType(VTK_STRUCTURED_GRID); }
121  void SetDataSetTypeToRectilinearGrid() { this->SetDataSetType(VTK_RECTILINEAR_GRID); }
122  void SetDataSetTypeToUnstructuredGrid() { this->SetDataSetType(VTK_UNSTRUCTURED_GRID); }
124 
126 
141 
143 
156  int comp, const char* arrayName, int arrayComp, int min, int max, int normalize);
157  void SetPointComponent(int comp, const char* arrayName, int arrayComp)
158  {
159  this->SetPointComponent(comp, arrayName, arrayComp, -1, -1, this->DefaultNormalize);
160  }
161  const char* GetPointComponentArrayName(int comp);
167 
169 
178  void SetVertsComponent(const char* arrayName, int arrayComp, int min, int max);
179  void SetVertsComponent(const char* arrayName, int arrayComp)
180  {
181  this->SetVertsComponent(arrayName, arrayComp, -1, -1);
182  }
187  void SetLinesComponent(const char* arrayName, int arrayComp, int min, int max);
188  void SetLinesComponent(const char* arrayName, int arrayComp)
189  {
190  this->SetLinesComponent(arrayName, arrayComp, -1, -1);
191  }
196  void SetPolysComponent(const char* arrayName, int arrayComp, int min, int max);
197  void SetPolysComponent(const char* arrayName, int arrayComp)
198  {
199  this->SetPolysComponent(arrayName, arrayComp, -1, -1);
200  }
205  void SetStripsComponent(const char* arrayName, int arrayComp, int min, int max);
206  void SetStripsComponent(const char* arrayName, int arrayComp)
207  {
208  this->SetStripsComponent(arrayName, arrayComp, -1, -1);
209  }
215 
217 
226  void SetCellTypeComponent(const char* arrayName, int arrayComp, int min, int max);
227  void SetCellTypeComponent(const char* arrayName, int arrayComp)
228  {
229  this->SetCellTypeComponent(arrayName, arrayComp, -1, -1);
230  }
235  void SetCellConnectivityComponent(const char* arrayName, int arrayComp, int min, int max);
236  void SetCellConnectivityComponent(const char* arrayName, int arrayComp)
237  {
238  this->SetCellConnectivityComponent(arrayName, arrayComp, -1, -1);
239  }
245 
247 
251  vtkSetMacro(DefaultNormalize, vtkTypeBool);
252  vtkGetMacro(DefaultNormalize, vtkTypeBool);
253  vtkBooleanMacro(DefaultNormalize, vtkTypeBool);
255 
257 
262  vtkSetVector3Macro(Dimensions, int);
263  vtkGetVectorMacro(Dimensions, int, 3);
265 
267 
271  vtkSetVector3Macro(Origin, double);
272  vtkGetVectorMacro(Origin, double, 3);
274 
276 
280  vtkSetVector3Macro(Spacing, double);
281  vtkGetVectorMacro(Spacing, double, 3);
283 
285 
291  void SetDimensionsComponent(const char* arrayName, int arrayComp, int min, int max);
292  void SetDimensionsComponent(const char* arrayName, int arrayComp)
293  {
294  this->SetDimensionsComponent(arrayName, arrayComp, -1, -1);
295  }
296  void SetSpacingComponent(const char* arrayName, int arrayComp, int min, int max);
297  void SetSpacingComponent(const char* arrayName, int arrayComp)
298  {
299  this->SetSpacingComponent(arrayName, arrayComp, -1, -1);
300  }
301  void SetOriginComponent(const char* arrayName, int arrayComp, int min, int max);
302  void SetOriginComponent(const char* arrayName, int arrayComp)
303  {
304  this->SetOriginComponent(arrayName, arrayComp, -1, -1);
305  }
307 
308 protected:
311 
313  vtkInformationVector*) override; // generate output data
318 
319  char Updating;
320 
321  // control flags used to generate the output dataset
322  int DataSetType; // the type of dataset to generate
323 
324  // Support definition of points
325  char* PointArrays[3]; // the name of the arrays
326  int PointArrayComponents[3]; // the array components used for x-y-z
327  vtkIdType PointComponentRange[3][2]; // the range of the components to use
328  int PointNormalize[3]; // flags control normalization
329 
330  // These define cells for vtkPolyData
331  char* VertsArray; // the name of the array
332  int VertsArrayComponent; // the array component
333  vtkIdType VertsComponentRange[2]; // the range of the components to use
334 
335  char* LinesArray; // the name of the array
336  int LinesArrayComponent; // the array component used for cell types
337  vtkIdType LinesComponentRange[2]; // the range of the components to use
338 
339  char* PolysArray; // the name of the array
340  int PolysArrayComponent; // the array component
341  vtkIdType PolysComponentRange[2]; // the range of the components to use
342 
343  char* StripsArray; // the name of the array
344  int StripsArrayComponent; // the array component
345  vtkIdType StripsComponentRange[2]; // the range of the components to use
346 
347  // Used to define vtkUnstructuredGrid datasets
348  char* CellTypeArray; // the name of the array
349  int CellTypeArrayComponent; // the array component used for cell types
350  vtkIdType CellTypeComponentRange[2]; // the range of the components to use
351 
352  char* CellConnectivityArray; // the name of the array
353  int CellConnectivityArrayComponent; // the array components used for cell connectivity
354  vtkIdType CellConnectivityComponentRange[2]; // the range of the components to use
355 
356  // helper methods (and attributes) to construct datasets
357  void SetArrayName(char*& name, char* newName);
362  vtkCellArray* ConstructCellArray(vtkDataArray* da, int comp, vtkIdType compRange[2]);
363 
364  // Default value for normalization
366 
367  // Couple of different ways to specify dimensions, spacing, and origin.
368  int Dimensions[3];
369  double Origin[3];
370  double Spacing[3];
371 
372  char* DimensionsArray; // the name of the array
373  int DimensionsArrayComponent; // the component of the array used for dimensions
374  vtkIdType DimensionsComponentRange[2]; // the ComponentRange of the array for the dimensions
375 
376  char* OriginArray; // the name of the array
377  int OriginArrayComponent; // the component of the array used for Origins
378  vtkIdType OriginComponentRange[2]; // the ComponentRange of the array for the Origins
379 
380  char* SpacingArray; // the name of the array
381  int SpacingArrayComponent; // the component of the array used for Spacings
382  vtkIdType SpacingComponentRange[2]; // the ComponentRange of the array for the Spacings
383 
387 
388 private:
390  void operator=(const vtkDataObjectToDataSetFilter&) = delete;
391 };
392 
393 #endif
object to represent cell connectivity
Definition: vtkCellArray.h:290
abstract superclass for arrays of numeric data
Definition: vtkDataArray.h:159
map field data to concrete dataset
void SetCellTypeComponent(const char *arrayName, int arrayComp, int min, int max)
Define cell types and cell connectivity when creating unstructured grid data.
int GetPointComponentMaxRange(int comp)
Define the component of the field to be used for the x, y, and z values of the points.
void SetLinesComponent(const char *arrayName, int arrayComp)
Define cell connectivity when creating vtkPolyData.
static vtkDataObjectToDataSetFilter * New()
void SetStripsComponent(const char *arrayName, int arrayComp)
Define cell connectivity when creating vtkPolyData.
void SetArrayName(char *&name, char *newName)
void SetCellConnectivityComponent(const char *arrayName, int arrayComp)
Define cell types and cell connectivity when creating unstructured grid data.
vtkRectilinearGrid * GetRectilinearGridOutput()
Get the output in different forms.
int GetCellConnectivityComponentMinRange()
Define cell types and cell connectivity when creating unstructured grid data.
const char * GetPointComponentArrayName(int comp)
Define the component of the field to be used for the x, y, and z values of the points.
void SetPointComponent(int comp, const char *arrayName, int arrayComp, int min, int max, int normalize)
Define the component of the field to be used for the x, y, and z values of the points.
int GetLinesComponentArrayComponent()
Define cell connectivity when creating vtkPolyData.
int GetPointComponentNormailzeFlag(int comp)
Define the component of the field to be used for the x, y, and z values of the points.
int GetCellConnectivityComponentMaxRange()
Define cell types and cell connectivity when creating unstructured grid data.
void SetOriginComponent(const char *arrayName, int arrayComp, int min, int max)
Alternative methods to specify the dimensions, spacing, and origin for those datasets requiring this ...
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called within ProcessRequest when a request asks the algorithm to do its work.
void SetDataSetTypeToRectilinearGrid()
Control what type of data is generated for output.
int GetStripsComponentMinRange()
Define cell connectivity when creating vtkPolyData.
int GetStripsComponentArrayComponent()
Define cell connectivity when creating vtkPolyData.
const char * GetStripsComponentArrayName()
Define cell connectivity when creating vtkPolyData.
int GetPointComponentArrayComponent(int comp)
Define the component of the field to be used for the x, y, and z values of the points.
int ConstructCells(vtkDataObject *input, vtkPolyData *pd)
int RequestDataObject(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called within ProcessRequest when a request asks the algorithm to create empty output data ob...
void SetSpacingComponent(const char *arrayName, int arrayComp)
Alternative methods to specify the dimensions, spacing, and origin for those datasets requiring this ...
void SetStripsComponent(const char *arrayName, int arrayComp, int min, int max)
Define cell connectivity when creating vtkPolyData.
int GetStripsComponentMaxRange()
Define cell connectivity when creating vtkPolyData.
int GetLinesComponentMinRange()
Define cell connectivity when creating vtkPolyData.
void SetDimensionsComponent(const char *arrayName, int arrayComp, int min, int max)
Alternative methods to specify the dimensions, spacing, and origin for those datasets requiring this ...
const char * GetCellTypeComponentArrayName()
Define cell types and cell connectivity when creating unstructured grid data.
void SetSpacingComponent(const char *arrayName, int arrayComp, int min, int max)
Alternative methods to specify the dimensions, spacing, and origin for those datasets requiring this ...
void SetDataSetTypeToUnstructuredGrid()
Control what type of data is generated for output.
void SetDataSetTypeToStructuredGrid()
Control what type of data is generated for output.
int RequestInformation(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called within ProcessRequest when a request asks for Information.
~vtkDataObjectToDataSetFilter() override
int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called within ProcessRequest when each filter in the pipeline decides what portion of its inp...
void SetDataSetTypeToStructuredPoints()
Control what type of data is generated for output.
void SetPointComponent(int comp, const char *arrayName, int arrayComp)
Define the component of the field to be used for the x, y, and z values of the points.
int GetPolysComponentArrayComponent()
Define cell connectivity when creating vtkPolyData.
vtkStructuredPoints * GetStructuredPointsOutput()
Get the output in different forms.
vtkDataSet * GetOutput(int idx)
Get the output in different forms.
vtkIdType ConstructPoints(vtkDataObject *input, vtkPointSet *ps)
vtkUnstructuredGrid * GetUnstructuredGridOutput()
Get the output in different forms.
vtkDataSet * GetOutput()
Get the output in different forms.
const char * GetVertsComponentArrayName()
Define cell connectivity when creating vtkPolyData.
void SetCellConnectivityComponent(const char *arrayName, int arrayComp, int min, int max)
Define cell types and cell connectivity when creating unstructured grid data.
void SetCellTypeComponent(const char *arrayName, int arrayComp)
Define cell types and cell connectivity when creating unstructured grid data.
int GetPointComponentMinRange(int comp)
Define the component of the field to be used for the x, y, and z values of the points.
const char * GetLinesComponentArrayName()
Define cell connectivity when creating vtkPolyData.
void ConstructOrigin(vtkDataObject *input)
void ConstructSpacing(vtkDataObject *input)
int GetCellTypeComponentArrayComponent()
Define cell types and cell connectivity when creating unstructured grid data.
int GetVertsComponentMinRange()
Define cell connectivity when creating vtkPolyData.
int GetCellTypeComponentMinRange()
Define cell types and cell connectivity when creating unstructured grid data.
vtkCellArray * ConstructCellArray(vtkDataArray *da, int comp, vtkIdType compRange[2])
void SetLinesComponent(const char *arrayName, int arrayComp, int min, int max)
Define cell connectivity when creating vtkPolyData.
int GetPolysComponentMaxRange()
Define cell connectivity when creating vtkPolyData.
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
void SetDataSetTypeToPolyData()
Control what type of data is generated for output.
void SetVertsComponent(const char *arrayName, int arrayComp)
Define cell connectivity when creating vtkPolyData.
vtkDataObject * GetInput()
Get the input to the filter.
int ConstructCells(vtkDataObject *input, vtkUnstructuredGrid *ug)
const char * GetPolysComponentArrayName()
Define cell connectivity when creating vtkPolyData.
int GetLinesComponentMaxRange()
Define cell connectivity when creating vtkPolyData.
void SetPolysComponent(const char *arrayName, int arrayComp, int min, int max)
Define cell connectivity when creating vtkPolyData.
int GetPolysComponentMinRange()
Define cell connectivity when creating vtkPolyData.
void SetPolysComponent(const char *arrayName, int arrayComp)
Define cell connectivity when creating vtkPolyData.
vtkPolyData * GetPolyDataOutput()
Get the output in different forms.
void ConstructDimensions(vtkDataObject *input)
int GetCellTypeComponentMaxRange()
Define cell types and cell connectivity when creating unstructured grid data.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkIdType ConstructPoints(vtkDataObject *input, vtkRectilinearGrid *rg)
void SetOriginComponent(const char *arrayName, int arrayComp)
Alternative methods to specify the dimensions, spacing, and origin for those datasets requiring this ...
void SetVertsComponent(const char *arrayName, int arrayComp, int min, int max)
Define cell connectivity when creating vtkPolyData.
void SetDataSetType(int)
Control what type of data is generated for output.
int GetVertsComponentMaxRange()
Define cell connectivity when creating vtkPolyData.
int GetVertsComponentArrayComponent()
Define cell connectivity when creating vtkPolyData.
void SetDimensionsComponent(const char *arrayName, int arrayComp)
Alternative methods to specify the dimensions, spacing, and origin for those datasets requiring this ...
const char * GetCellConnectivityComponentArrayName()
Define cell types and cell connectivity when creating unstructured grid data.
int GetCellConnectivityComponentArrayComponent()
Define cell types and cell connectivity when creating unstructured grid data.
vtkStructuredGrid * GetStructuredGridOutput()
Get the output in different forms.
general representation of visualization data
Superclass for algorithms that produce output of the same type as input.
abstract class to specify dataset behavior
Definition: vtkDataSet.h:166
a simple class to control print indentation
Definition: vtkIndent.h:113
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
concrete class for storing a set of points
Definition: vtkPointSet.h:106
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:195
a dataset that is topologically regular with variable spacing in the three coordinate directions
topologically regular array of data
A subclass of ImageData.
dataset represents arbitrary combinations of all possible cell types
@ info
Definition: vtkX3D.h:382
@ port
Definition: vtkX3D.h:453
@ name
Definition: vtkX3D.h:225
int vtkTypeBool
Definition: vtkABI.h:69
int vtkIdType
Definition: vtkType.h:332
#define VTK_RECTILINEAR_GRID
Definition: vtkType.h:80
#define VTK_UNSTRUCTURED_GRID
Definition: vtkType.h:81
#define VTK_STRUCTURED_GRID
Definition: vtkType.h:79
#define VTK_POLY_DATA
Definition: vtkType.h:77
#define VTK_STRUCTURED_POINTS
Definition: vtkType.h:78
#define max(a, b)