VTK
vtkFieldDataToAttributeDataFilter.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: vtkFieldDataToAttributeDataFilter.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=========================================================================*/
58#ifndef vtkFieldDataToAttributeDataFilter_h
59#define vtkFieldDataToAttributeDataFilter_h
60
61#include "vtkFiltersCoreModule.h" // For export macro
62#include "vtkDataSetAlgorithm.h"
63
64#define VTK_DATA_OBJECT_FIELD 0
65#define VTK_POINT_DATA_FIELD 1
66#define VTK_CELL_DATA_FIELD 2
67
68#define VTK_CELL_DATA 0
69#define VTK_POINT_DATA 1
70
71class vtkDataArray;
73class vtkFieldData;
74
75class VTKFILTERSCORE_EXPORT vtkFieldDataToAttributeDataFilter : public vtkDataSetAlgorithm
76{
77public:
78 void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;
80
86
88
94 vtkSetMacro(InputField,int);
95 vtkGetMacro(InputField,int);
97 {this->SetInputField(VTK_DATA_OBJECT_FIELD);};
99 {this->SetInputField(VTK_POINT_DATA_FIELD);};
101 {this->SetInputField(VTK_CELL_DATA_FIELD);};
103
105
108 vtkSetMacro(OutputAttributeData,int);
109 vtkGetMacro(OutputAttributeData,int);
111 {this->SetOutputAttributeData(VTK_CELL_DATA);};
113 {this->SetOutputAttributeData(VTK_POINT_DATA);};
115
117
124 void SetScalarComponent(int comp, const char *arrayName, int arrayComp,
125 int min, int max, int normalize);
126 void SetScalarComponent(int comp, const char *arrayName, int arrayComp)
127 {this->SetScalarComponent(comp, arrayName, arrayComp, -1, -1, this->DefaultNormalize);};
128 const char *GetScalarComponentArrayName(int comp);
134
136
143 void SetVectorComponent(int comp, const char *arrayName, int arrayComp,
144 int min, int max, int normalize);
145 void SetVectorComponent(int comp, const char *arrayName, int arrayComp)
146 {this->SetVectorComponent(comp, arrayName, arrayComp, -1, -1, this->DefaultNormalize);};
147 const char *GetVectorComponentArrayName(int comp);
153
155
162 void SetNormalComponent(int comp, const char *arrayName, int arrayComp,
163 int min, int max, int normalize);
164 void SetNormalComponent(int comp, const char *arrayName, int arrayComp)
165 {this->SetNormalComponent(comp, arrayName, arrayComp, -1, -1, this->DefaultNormalize);};
166 const char *GetNormalComponentArrayName(int comp);
172
174
181 void SetTensorComponent(int comp, const char *arrayName, int arrayComp,
182 int min, int max, int normalize);
183 void SetTensorComponent(int comp, const char *arrayName, int arrayComp)
184 {this->SetTensorComponent(comp, arrayName, arrayComp, -1, -1, this->DefaultNormalize);};
185 const char *GetTensorComponentArrayName(int comp);
191
193
200 void SetTCoordComponent(int comp, const char *arrayName, int arrayComp,
201 int min, int max, int normalize);
202 void SetTCoordComponent(int comp, const char *arrayName, int arrayComp)
203 {this->SetTCoordComponent(comp, arrayName, arrayComp, -1, -1, this->DefaultNormalize);};
204 const char *GetTCoordComponentArrayName(int comp);
210
212
216 vtkSetMacro(DefaultNormalize,int);
217 vtkGetMacro(DefaultNormalize,int);
218 vtkBooleanMacro(DefaultNormalize,int);
220
221 // Helper functions, made public to support other classes
222
228 static int GetComponentsType(int numComp, vtkDataArray **arrays);
229
236 static int ConstructArray(vtkDataArray *da, int comp, vtkDataArray *frray,
237 int fieldComp, vtkIdType min, vtkIdType max,
238 int normalize);
239
243 static vtkDataArray *GetFieldArray(vtkFieldData *fd, char *name, int comp);
244
248 static void SetArrayName(vtkObject *self, char* &name, const char *newName);
249
254 static int UpdateComponentRange(vtkDataArray *da, vtkIdType compRange[2]);
255
260
261protected:
264
265 int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) VTK_OVERRIDE; //generate output data
266
267 int InputField;
268 int OutputAttributeData;
269
270 int NumberOfScalarComponents; //the number of components to fill-in
271 char *ScalarArrays[4]; //the name of the arrays used to construct the scalar
272 int ScalarArrayComponents[4]; //the components of the arrays used to construct
273 vtkIdType ScalarComponentRange[4][2]; //the range of the components to use
274 int ScalarNormalize[4]; //flags control normalization
275
276 char *VectorArrays[3]; //the name of the arrays used to construct the vectors
277 int VectorArrayComponents[3]; //the components of the arrays used to construct
278 vtkIdType VectorComponentRange[3][2]; //the range of the components to use
279 int VectorNormalize[3]; //flags control normalization
280
281 char *GhostLevelArray; //the name of the array used to construct the ghost levels
282 int GhostLevelArrayComponent; //the component of the array used to construct
283 vtkIdType GhostLevelComponentRange[2]; //the range of the components to use
284 int GhostLevelNormalize; //flags control normalization
285
286 char *NormalArrays[3]; //the name of the arrays used to construct the normals
287 int NormalArrayComponents[3]; //the components of the arrays used to construct
288 vtkIdType NormalComponentRange[3][2]; //the range of the components to use
289 int NormalNormalize[3]; //flags control normalization
290
291 char *TensorArrays[9]; //the name of the arrays used to construct the tensors
292 int TensorArrayComponents[9]; //the components of the arrays used to construct
293 vtkIdType TensorComponentRange[9][2]; //the range of the components to use
294 int TensorNormalize[9]; //flags control normalization
295
296 int NumberOfTCoordComponents; //the number of components to fill-in
297 char *TCoordArrays[3]; //the name of the arrays used to construct the tcoords
298 int TCoordArrayComponents[3]; //the components of the arrays used to construct
299 vtkIdType TCoordComponentRange[3][2]; //the range of the components to use
300 int TCoordNormalize[3]; //flags control normalization
301
302 int DefaultNormalize;
303
304 void ConstructScalars(int num, vtkFieldData *fd, vtkDataSetAttributes *attr,
305 vtkIdType componentRange[4][2], char *arrays[4],
306 int arrayComponents[4], int normalize[4], int numComp);
307 void ConstructVectors(int num, vtkFieldData *fd, vtkDataSetAttributes *attr,
308 vtkIdType componentRange[3][2], char *arrays[3],
309 int arrayComponents[3], int normalize[3]);
310 void ConstructGhostLevels(int num, vtkFieldData *fd,
312 vtkIdType componentRange[2],
313 char *array, int arrayComponent, int normalize);
314 void ConstructNormals(int num, vtkFieldData *fd, vtkDataSetAttributes *attr,
315 vtkIdType componentRange[3][2], char *arrays[3],
316 int arrayComponents[3], int normalize[3]);
317 void ConstructTCoords(int num, vtkFieldData *fd, vtkDataSetAttributes *attr,
318 vtkIdType componentRange[3][2], char *arrays[3],
319 int arrayComponents[3], int normalize[3], int numComp);
320 void ConstructTensors(int num, vtkFieldData *fd, vtkDataSetAttributes *attr,
321 vtkIdType componentRange[9][2], char *arrays[9],
322 int arrayComponents[9], int normalize[9]);
323 void ConstructFieldData(int num, vtkDataSetAttributes *attr);
324
325private:
327 void operator=(const vtkFieldDataToAttributeDataFilter&) VTK_DELETE_FUNCTION;
328};
329
330#endif
331
332
abstract superclass for arrays of numeric data
Definition: vtkDataArray.h:55
Superclass for algorithms that produce output of the same type as input.
represent and manipulate attribute data in a dataset
map field data to dataset attribute data
static int GetComponentsType(int numComp, vtkDataArray **arrays)
Given an array of names of arrays in field data, return the common type for these arrays.
static vtkFieldDataToAttributeDataFilter * New()
Construct object with input field set to the data object field, and the output attribute data set to ...
void SetTensorComponent(int comp, const char *arrayName, int arrayComp)
const char * GetTCoordComponentArrayName(int comp)
static int UpdateComponentRange(vtkDataArray *da, vtkIdType compRange[2])
Update the maximum and minimum component range values.
static void SetArrayName(vtkObject *self, char *&name, const char *newName)
Specify an array name for one of the components.
const char * GetVectorComponentArrayName(int comp)
const char * GetScalarComponentArrayName(int comp)
const char * GetNormalComponentArrayName(int comp)
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
int GetTCoordComponentArrayComponent(int comp)
static int ConstructArray(vtkDataArray *da, int comp, vtkDataArray *frray, int fieldComp, vtkIdType min, vtkIdType max, int normalize)
Construct a portion of a data array (the comp portion) from another data array and its component.
void SetNormalComponent(int comp, const char *arrayName, int arrayComp)
static vtkDataArray * GetFieldArray(vtkFieldData *fd, char *name, int comp)
Return an array of a particular name from field data and do error checking.
int GetVectorComponentArrayComponent(int comp)
int GetTensorComponentNormalizeFlag(int comp)
void SetVectorComponent(int comp, const char *arrayName, int arrayComp, int min, int max, int normalize)
Define the component(s) of the field to be used for the vector components.
int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
If output does not need exact extent, the I do not either.
const char * GetTensorComponentArrayName(int comp)
int GetTensorComponentArrayComponent(int comp)
void SetTCoordComponent(int comp, const char *arrayName, int arrayComp)
void SetScalarComponent(int comp, const char *arrayName, int arrayComp, int min, int max, int normalize)
Define the component(s) of the field to be used for the scalar components.
void SetTCoordComponent(int comp, const char *arrayName, int arrayComp, int min, int max, int normalize)
Define the components of the field to be used for the cell texture coord components.
void SetVectorComponent(int comp, const char *arrayName, int arrayComp)
void SetScalarComponent(int comp, const char *arrayName, int arrayComp)
void SetTensorComponent(int comp, const char *arrayName, int arrayComp, int min, int max, int normalize)
Define the components of the field to be used for the tensor components.
int GetNormalComponentArrayComponent(int comp)
int GetScalarComponentArrayComponent(int comp)
int GetTCoordComponentNormalizeFlag(int comp)
int GetNormalComponentNormalizeFlag(int comp)
void SetNormalComponent(int comp, const char *arrayName, int arrayComp, int min, int max, int normalize)
Define the component(s) of the field to be used for the normal components.
int GetScalarComponentNormalizeFlag(int comp)
int GetVectorComponentNormalizeFlag(int comp)
represent and manipulate fields of data
Definition: vtkFieldData.h:57
a simple class to control print indentation
Definition: vtkIndent.h:40
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
abstract base class for most VTK objects
Definition: vtkObject.h:60
@ name
Definition: vtkX3D.h:219
#define VTK_POINT_DATA_FIELD
#define VTK_CELL_DATA_FIELD
#define VTK_DATA_OBJECT_FIELD
vtkSetMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
vtkBooleanMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
int vtkIdType
Definition: vtkType.h:287
#define max(a, b)