VTK
vtkDataObject.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: vtkDataObject.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=========================================================================*/
40#ifndef vtkDataObject_h
41#define vtkDataObject_h
42
43#include "vtkCommonDataModelModule.h" // For export macro
44#include "vtkObject.h"
45
48class vtkFieldData;
49class vtkInformation;
59
60#define VTK_PIECES_EXTENT 0
61#define VTK_3D_EXTENT 1
62#define VTK_TIME_EXTENT 2
63
64class VTKCOMMONDATAMODEL_EXPORT vtkDataObject : public vtkObject
65{
66public:
67 static vtkDataObject *New();
68
69 vtkTypeMacro(vtkDataObject,vtkObject);
70 void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;
71
73
76 vtkGetObjectMacro(Information, vtkInformation);
79
84 vtkMTimeType GetMTime() VTK_OVERRIDE;
85
89 virtual void Initialize();
90
97 void ReleaseData();
98
100
103 vtkGetMacro(DataReleased,int);
105
106
108
112 static void SetGlobalReleaseDataFlag(int val);
113 void GlobalReleaseDataFlagOn() {this->SetGlobalReleaseDataFlag(1);};
114 void GlobalReleaseDataFlagOff() {this->SetGlobalReleaseDataFlag(0);};
117
119
123 vtkGetObjectMacro(FieldData,vtkFieldData);
125
132 virtual int GetDataObjectType() {return VTK_DATA_OBJECT;}
133
139
147 virtual unsigned long GetActualMemorySize();
148
154 {}
155
161 virtual void CopyInformationToPipeline(vtkInformation* vtkNotUsed(info)) {}
162
170 int fieldAssociation, int attributeType);
171
178 int fieldAssociation, const char *name);
179
184 int fieldAssociation,
185 const char *name);
186
194 int fieldAssociation, const char *attributeName, int attributeType);
195
206 int fieldAssociation, int attributeType, const char *name, int arrayType,
207 int numComponents, int numTuples);
208
214 int arrayType, int numComponents);
215
222
228 virtual void PrepareForNewData() {this->Initialize();};
229
231
235 virtual void ShallowCopy(vtkDataObject *src);
236 virtual void DeepCopy(vtkDataObject *src);
238
247 virtual int GetExtentType() { return VTK_PIECES_EXTENT; };
248
253 virtual void Crop(const int* updateExtent);
254
259 {
267 NUMBER_OF_ASSOCIATIONS
268 };
269
275 {
283 NUMBER_OF_ATTRIBUTE_TYPES
284 };
285
302
310
317
322
327 {
331 FIELD_OPERATION_REMOVED
332 };
333
338 static const char* GetAssociationTypeAsString(int associationType);
339
344 static int GetAssociationTypeFromString(const char* associationType);
345
346 // \ingroup InformationKeys
348 // \ingroup InformationKeys
350 // \ingroup InformationKeys
352 // \ingroup InformationKeys
354 // \ingroup InformationKeys
356 // \ingroup InformationKeys
358 // \ingroup InformationKeys
360 // \ingroup InformationKeys
362 // \ingroup InformationKeys
364 // \ingroup InformationKeys
366 // \ingroup InformationKeys
368 // \ingroup InformationKeys
370 // \ingroup InformationKeys
372 // \ingroup InformationKeys
374 // \ingroup InformationKeys
376 // \ingroup InformationKeys
378 // \ingroup InformationKeys
380 // \ingroup InformationKeys
382 // \ingroup InformationKeys
384 // \ingroup InformationKeys
386 // \ingroup InformationKeys
388 // \ingroup InformationKeys
390 // \ingroup InformationKeys
392 // \ingroup InformationKeys
394 // \ingroup InformationKeys
396 // \ingroup InformationKeys
398
399 // Key used to put SIL information in the output information by readers.
400 // \ingroup InformationKeys
402
404
410
411protected:
412
414 ~vtkDataObject() VTK_OVERRIDE;
415
416 // General field data associated with data object
417 vtkFieldData *FieldData;
418
419 // Keep track of data release during network execution
420 int DataReleased;
421
422 // When was this data last generated?
423 vtkTimeStamp UpdateTime;
424
425 // Arbitrary extra information associated with this data object.
426 vtkInformation* Information;
427
428private:
429 // Helper method for the ShallowCopy and DeepCopy methods.
430 void InternalDataObjectCopy(vtkDataObject *src);
431
432private:
433 vtkDataObject(const vtkDataObject&) VTK_DELETE_FUNCTION;
434 void operator=(const vtkDataObject&) VTK_DELETE_FUNCTION;
435};
436
437#endif
438
Abstract superclass for all arrays.
general representation of visualization data
Definition: vtkDataObject.h:65
static vtkInformationIntegerKey * FIELD_ACTIVE_ATTRIBUTE()
static vtkInformation * GetActiveFieldInformation(vtkInformation *info, int fieldAssociation, int attributeType)
Return the information object within the input information object's field data corresponding to the s...
virtual void ShallowCopy(vtkDataObject *src)
Shallow and Deep copy.
virtual vtkFieldData * GetAttributesAsFieldData(int type)
Returns the attributes of the data object as a vtkFieldData.
vtkMTimeType GetUpdateTime()
Used by Threaded ports to determine if they should initiate an asynchronous update (still in developm...
static vtkInformationDoubleVectorKey * SPACING()
static const char * GetAssociationTypeAsString(int associationType)
Given an integer association type, this static method returns a string type for the attribute (i....
virtual int GetAttributeTypeForArray(vtkAbstractArray *arr)
Retrieves the attribute type that an array came from.
static vtkInformationDoubleKey * DATA_TIME_STEP()
static vtkInformationInformationVectorKey * CELL_DATA_VECTOR()
static vtkInformationIntegerKey * FIELD_OPERATION()
virtual unsigned long GetActualMemorySize()
Return the actual size of the data in kibibytes (1024 bytes).
static void SetActiveAttributeInfo(vtkInformation *info, int fieldAssociation, int attributeType, const char *name, int arrayType, int numComponents, int numTuples)
Set the name, array type, number of components, and number of tuples within the passed information ob...
virtual void Crop(const int *updateExtent)
This method crops the data object (if necessary) so that the extent matches the update extent.
static vtkInformationIntegerVectorKey * PIECE_EXTENT()
FieldOperations
Possible values for the FIELD_OPERATION information entry.
@ FIELD_OPERATION_REINTERPOLATED
~vtkDataObject() override
static vtkInformationIntegerKey * FIELD_ARRAY_TYPE()
virtual void DeepCopy(vtkDataObject *src)
static vtkInformationIntegerKey * FIELD_NUMBER_OF_COMPONENTS()
FieldAssociations
Possible values for the FIELD_ASSOCIATION information entry.
@ FIELD_ASSOCIATION_POINTS_THEN_CELLS
@ FIELD_ASSOCIATION_VERTICES
static vtkInformationIntegerKey * FIELD_ATTRIBUTE_TYPE()
static vtkInformationIntegerKey * DATA_EXTENT_TYPE()
static vtkInformationIntegerKey * FIELD_NUMBER_OF_TUPLES()
static vtkDataObject * GetData(vtkInformationVector *v, int i=0)
static vtkInformationDoubleVectorKey * FIELD_RANGE()
static int GetGlobalReleaseDataFlag()
virtual void SetInformation(vtkInformation *)
virtual void PrepareForNewData()
make the output data ready for new data to be inserted.
static vtkInformationIntegerKey * FIELD_ASSOCIATION()
void GlobalReleaseDataFlagOff()
AttributeTypes
Possible attribute types.
static void RemoveNamedFieldInformation(vtkInformation *info, int fieldAssociation, const char *name)
Remove the info associated with an array.
virtual void CopyInformationFromPipeline(vtkInformation *vtkNotUsed(info))
Copy from the pipeline information to the data object's own information.
static vtkInformationIntegerKey * DATA_NUMBER_OF_PIECES()
virtual vtkDataSetAttributes * GetAttributes(int type)
Returns the attributes of the data object of the specified attribute type.
static vtkDataObject * GetData(vtkInformation *info)
Retrieve an instance of this class from an information object.
static vtkInformation * SetActiveAttribute(vtkInformation *info, int fieldAssociation, const char *attributeName, int attributeType)
Set the named array to be the active field for the specified type (SCALARS, VECTORS,...
static vtkInformationInformationVectorKey * VERTEX_DATA_VECTOR()
static vtkInformationInformationVectorKey * EDGE_DATA_VECTOR()
static vtkInformationIntegerPointerKey * DATA_EXTENT()
static vtkInformationIntegerKey * DATA_NUMBER_OF_GHOST_LEVELS()
void DataHasBeenGenerated()
This method is called by the source when it executes to generate data.
static vtkInformationStringKey * FIELD_NAME()
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
virtual int GetDataObjectType()
Return class name of data type.
vtkMTimeType GetMTime() override
Data objects are composite objects and need to check each part for MTime.
static vtkInformationDataObjectKey * SIL()
static vtkInformation * GetNamedFieldInformation(vtkInformation *info, int fieldAssociation, const char *name)
Return the information object within the input information object's field data corresponding to the s...
static vtkInformationDoubleVectorKey * ORIGIN()
static vtkInformationDoubleVectorKey * BOUNDING_BOX()
static void SetPointDataActiveScalarInfo(vtkInformation *info, int arrayType, int numComponents)
Convenience version of previous method for use (primarily) by the Imaging filters.
static vtkInformationStringKey * DATA_TYPE_NAME()
static vtkInformationInformationVectorKey * POINT_DATA_VECTOR()
static int GetAssociationTypeFromString(const char *associationType)
Given an integer association type, this static method returns a string type for the attribute (i....
static vtkDataObject * New()
virtual void CopyInformationToPipeline(vtkInformation *vtkNotUsed(info))
Copy information from this data object to the pipeline information.
virtual void SetFieldData(vtkFieldData *)
Assign or retrieve a general field data to this data object.
virtual int GetExtentType()
The ExtentType will be left as VTK_PIECES_EXTENT for data objects such as vtkPolyData and vtkUnstruct...
static vtkInformationIntegerVectorKey * ALL_PIECES_EXTENT()
static vtkInformationDataObjectKey * DATA_OBJECT()
virtual vtkIdType GetNumberOfElements(int type)
Get the number of elements for a specific attribute type (POINT, CELL, etc.).
static vtkInformationIntegerKey * DATA_PIECE_NUMBER()
represent and manipulate attribute data in a dataset
represent and manipulate fields of data
Definition: vtkFieldData.h:57
a simple class to control print indentation
Definition: vtkIndent.h:40
Key for vtkDataObject values.
Key for double values in vtkInformation.
Key for integer values in vtkInformation.
Key for string values in vtkInformation.
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
abstract base class for most VTK objects
Definition: vtkObject.h:60
record modification and/or execution time
Definition: vtkTimeStamp.h:36
@ info
Definition: vtkX3D.h:376
@ type
Definition: vtkX3D.h:516
@ name
Definition: vtkX3D.h:219
#define VTK_PIECES_EXTENT
Definition: vtkDataObject.h:60
int vtkIdType
Definition: vtkType.h:287
vtkTypeUInt64 vtkMTimeType
Definition: vtkType.h:248
#define VTK_DATA_OBJECT
Definition: vtkType.h:94