VTK  9.0.2
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 =========================================================================*/
65 #ifndef vtkDataObjectToDataSetFilter_h
66 #define vtkDataObjectToDataSetFilter_h
67 
68 #include "vtkDataSetAlgorithm.h"
69 #include "vtkFiltersCoreModule.h" // For export macro
70 
71 class vtkCellArray;
72 class vtkDataArray;
73 class vtkDataSet;
74 class vtkPointSet;
75 class vtkPolyData;
76 class vtkRectilinearGrid;
77 class vtkStructuredGrid;
80 
81 class VTKFILTERSCORE_EXPORT vtkDataObjectToDataSetFilter : public vtkDataSetAlgorithm
82 {
83 public:
86  void PrintSelf(ostream& os, vtkIndent indent) override;
87 
92 
94 
97  void SetDataSetType(int);
98  vtkGetMacro(DataSetType, int);
99  void SetDataSetTypeToPolyData() { this->SetDataSetType(VTK_POLY_DATA); }
100  void SetDataSetTypeToStructuredPoints() { this->SetDataSetType(VTK_STRUCTURED_POINTS); }
101  void SetDataSetTypeToStructuredGrid() { this->SetDataSetType(VTK_STRUCTURED_GRID); }
102  void SetDataSetTypeToRectilinearGrid() { this->SetDataSetType(VTK_RECTILINEAR_GRID); }
103  void SetDataSetTypeToUnstructuredGrid() { this->SetDataSetType(VTK_UNSTRUCTURED_GRID); }
105 
107 
122 
124 
137  int comp, const char* arrayName, int arrayComp, int min, int max, int normalize);
138  void SetPointComponent(int comp, const char* arrayName, int arrayComp)
139  {
140  this->SetPointComponent(comp, arrayName, arrayComp, -1, -1, this->DefaultNormalize);
141  }
142  const char* GetPointComponentArrayName(int comp);
148 
150 
159  void SetVertsComponent(const char* arrayName, int arrayComp, int min, int max);
160  void SetVertsComponent(const char* arrayName, int arrayComp)
161  {
162  this->SetVertsComponent(arrayName, arrayComp, -1, -1);
163  }
168  void SetLinesComponent(const char* arrayName, int arrayComp, int min, int max);
169  void SetLinesComponent(const char* arrayName, int arrayComp)
170  {
171  this->SetLinesComponent(arrayName, arrayComp, -1, -1);
172  }
177  void SetPolysComponent(const char* arrayName, int arrayComp, int min, int max);
178  void SetPolysComponent(const char* arrayName, int arrayComp)
179  {
180  this->SetPolysComponent(arrayName, arrayComp, -1, -1);
181  }
186  void SetStripsComponent(const char* arrayName, int arrayComp, int min, int max);
187  void SetStripsComponent(const char* arrayName, int arrayComp)
188  {
189  this->SetStripsComponent(arrayName, arrayComp, -1, -1);
190  }
196 
198 
207  void SetCellTypeComponent(const char* arrayName, int arrayComp, int min, int max);
208  void SetCellTypeComponent(const char* arrayName, int arrayComp)
209  {
210  this->SetCellTypeComponent(arrayName, arrayComp, -1, -1);
211  }
216  void SetCellConnectivityComponent(const char* arrayName, int arrayComp, int min, int max);
217  void SetCellConnectivityComponent(const char* arrayName, int arrayComp)
218  {
219  this->SetCellConnectivityComponent(arrayName, arrayComp, -1, -1);
220  }
226 
228 
232  vtkSetMacro(DefaultNormalize, vtkTypeBool);
233  vtkGetMacro(DefaultNormalize, vtkTypeBool);
234  vtkBooleanMacro(DefaultNormalize, vtkTypeBool);
236 
238 
243  vtkSetVector3Macro(Dimensions, int);
244  vtkGetVectorMacro(Dimensions, int, 3);
246 
248 
252  vtkSetVector3Macro(Origin, double);
253  vtkGetVectorMacro(Origin, double, 3);
255 
257 
261  vtkSetVector3Macro(Spacing, double);
262  vtkGetVectorMacro(Spacing, double, 3);
264 
266 
272  void SetDimensionsComponent(const char* arrayName, int arrayComp, int min, int max);
273  void SetDimensionsComponent(const char* arrayName, int arrayComp)
274  {
275  this->SetDimensionsComponent(arrayName, arrayComp, -1, -1);
276  }
277  void SetSpacingComponent(const char* arrayName, int arrayComp, int min, int max);
278  void SetSpacingComponent(const char* arrayName, int arrayComp)
279  {
280  this->SetSpacingComponent(arrayName, arrayComp, -1, -1);
281  }
282  void SetOriginComponent(const char* arrayName, int arrayComp, int min, int max);
283  void SetOriginComponent(const char* arrayName, int arrayComp)
284  {
285  this->SetOriginComponent(arrayName, arrayComp, -1, -1);
286  }
288 
289 protected:
292 
294  vtkInformationVector*) override; // generate output data
299 
300  char Updating;
301 
302  // control flags used to generate the output dataset
303  int DataSetType; // the type of dataset to generate
304 
305  // Support definition of points
306  char* PointArrays[3]; // the name of the arrays
307  int PointArrayComponents[3]; // the array components used for x-y-z
308  vtkIdType PointComponentRange[3][2]; // the range of the components to use
309  int PointNormalize[3]; // flags control normalization
310 
311  // These define cells for vtkPolyData
312  char* VertsArray; // the name of the array
313  int VertsArrayComponent; // the array component
314  vtkIdType VertsComponentRange[2]; // the range of the components to use
315 
316  char* LinesArray; // the name of the array
317  int LinesArrayComponent; // the array component used for cell types
318  vtkIdType LinesComponentRange[2]; // the range of the components to use
319 
320  char* PolysArray; // the name of the array
321  int PolysArrayComponent; // the array component
322  vtkIdType PolysComponentRange[2]; // the range of the components to use
323 
324  char* StripsArray; // the name of the array
325  int StripsArrayComponent; // the array component
326  vtkIdType StripsComponentRange[2]; // the range of the components to use
327 
328  // Used to define vtkUnstructuredGrid datasets
329  char* CellTypeArray; // the name of the array
330  int CellTypeArrayComponent; // the array component used for cell types
331  vtkIdType CellTypeComponentRange[2]; // the range of the components to use
332 
333  char* CellConnectivityArray; // the name of the array
334  int CellConnectivityArrayComponent; // the array components used for cell connectivity
335  vtkIdType CellConnectivityComponentRange[2]; // the range of the components to use
336 
337  // helper methods (and attributes) to construct datasets
338  void SetArrayName(char*& name, char* newName);
343  vtkCellArray* ConstructCellArray(vtkDataArray* da, int comp, vtkIdType compRange[2]);
344 
345  // Default value for normalization
347 
348  // Couple of different ways to specify dimensions, spacing, and origin.
349  int Dimensions[3];
350  double Origin[3];
351  double Spacing[3];
352 
353  char* DimensionsArray; // the name of the array
354  int DimensionsArrayComponent; // the component of the array used for dimensions
355  vtkIdType DimensionsComponentRange[2]; // the ComponentRange of the array for the dimensions
356 
357  char* OriginArray; // the name of the array
358  int OriginArrayComponent; // the component of the array used for Origins
359  vtkIdType OriginComponentRange[2]; // the ComponentRange of the array for the Origins
360 
361  char* SpacingArray; // the name of the array
362  int SpacingArrayComponent; // the component of the array used for Spacings
363  vtkIdType SpacingComponentRange[2]; // the ComponentRange of the array for the Spacings
364 
368 
369 private:
371  void operator=(const vtkDataObjectToDataSetFilter&) = delete;
372 };
373 
374 #endif
object to represent cell connectivity
Definition: vtkCellArray.h:180
abstract superclass for arrays of numeric data
Definition: vtkDataArray.h:50
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)
void SetLinesComponent(const char *arrayName, int arrayComp)
static vtkDataObjectToDataSetFilter * New()
void SetStripsComponent(const char *arrayName, int arrayComp)
void SetArrayName(char *&name, char *newName)
void SetCellConnectivityComponent(const char *arrayName, int arrayComp)
vtkRectilinearGrid * GetRectilinearGridOutput()
const char * GetPointComponentArrayName(int comp)
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 GetPointComponentNormailzeFlag(int comp)
void SetOriginComponent(const char *arrayName, int arrayComp, int min, int max)
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called within ProcessRequest when a request asks the algorithm to do its work.
const char * GetStripsComponentArrayName()
int GetPointComponentArrayComponent(int comp)
int ConstructCells(vtkDataObject *input, vtkPolyData *pd)
int RequestDataObject(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called within ProcessRequest to when a request asks the algorithm to create empty output data...
void SetSpacingComponent(const char *arrayName, int arrayComp)
void SetStripsComponent(const char *arrayName, int arrayComp, int min, int max)
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()
void SetSpacingComponent(const char *arrayName, int arrayComp, int min, int max)
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 SetPointComponent(int comp, const char *arrayName, int arrayComp)
vtkStructuredPoints * GetStructuredPointsOutput()
vtkDataSet * GetOutput(int idx)
vtkIdType ConstructPoints(vtkDataObject *input, vtkPointSet *ps)
vtkUnstructuredGrid * GetUnstructuredGridOutput()
vtkDataSet * GetOutput()
Get the output in different forms.
const char * GetVertsComponentArrayName()
void SetCellConnectivityComponent(const char *arrayName, int arrayComp, int min, int max)
void SetCellTypeComponent(const char *arrayName, int arrayComp)
int GetPointComponentMinRange(int comp)
const char * GetLinesComponentArrayName()
void ConstructOrigin(vtkDataObject *input)
void ConstructSpacing(vtkDataObject *input)
vtkCellArray * ConstructCellArray(vtkDataArray *da, int comp, vtkIdType compRange[2])
void SetLinesComponent(const char *arrayName, int arrayComp, int min, int max)
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
void SetVertsComponent(const char *arrayName, int arrayComp)
vtkDataObject * GetInput()
Get the input to the filter.
int ConstructCells(vtkDataObject *input, vtkUnstructuredGrid *ug)
const char * GetPolysComponentArrayName()
void SetPolysComponent(const char *arrayName, int arrayComp, int min, int max)
void SetPolysComponent(const char *arrayName, int arrayComp)
vtkPolyData * GetPolyDataOutput()
void ConstructDimensions(vtkDataObject *input)
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)
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.
void SetDimensionsComponent(const char *arrayName, int arrayComp)
const char * GetCellConnectivityComponentArrayName()
int GetCellConnectivityComponentArrayComponent()
vtkStructuredGrid * GetStructuredGridOutput()
general representation of visualization data
Definition: vtkDataObject.h:60
Superclass for algorithms that produce output of the same type as input.
abstract class to specify dataset behavior
Definition: vtkDataSet.h:57
a simple class to control print indentation
Definition: vtkIndent.h:34
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
abstract class for specifying dataset behavior
Definition: vtkPointSet.h:63
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:85
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:338
#define VTK_RECTILINEAR_GRID
Definition: vtkType.h:88
#define VTK_UNSTRUCTURED_GRID
Definition: vtkType.h:89
#define VTK_STRUCTURED_GRID
Definition: vtkType.h:87
#define VTK_POLY_DATA
Definition: vtkType.h:85
#define VTK_STRUCTURED_POINTS
Definition: vtkType.h:86
#define max(a, b)