VTK  9.3.0
vtkDataObject.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2// SPDX-License-Identifier: BSD-3-Clause
28#ifndef vtkDataObject_h
29#define vtkDataObject_h
30
31#include "vtkCommonDataModelModule.h" // For export macro
32#include "vtkObject.h"
33
34VTK_ABI_NAMESPACE_BEGIN
37class vtkFieldData;
38class vtkInformation;
49
50#define VTK_PIECES_EXTENT 0
51#define VTK_3D_EXTENT 1
52#define VTK_TIME_EXTENT 2
53
54class VTKCOMMONDATAMODEL_EXPORT vtkDataObject : public vtkObject
55{
56public:
57 static vtkDataObject* New();
58
59 vtkTypeMacro(vtkDataObject, vtkObject);
60 void PrintSelf(ostream& os, vtkIndent indent) override;
61
63
66 vtkGetObjectMacro(Information, vtkInformation);
69
75
79 virtual void Initialize();
80
87
89
92 vtkGetMacro(DataReleased, vtkTypeBool);
94
96
105
107
111 vtkGetObjectMacro(FieldData, vtkFieldData);
113
120 virtual int GetDataObjectType() { return VTK_DATA_OBJECT; }
121
127
135 virtual unsigned long GetActualMemorySize();
136
141 virtual void CopyInformationFromPipeline(vtkInformation* vtkNotUsed(info)) {}
142
148 virtual void CopyInformationToPipeline(vtkInformation* vtkNotUsed(info)) {}
149
157 vtkInformation* info, int fieldAssociation, int attributeType);
158
165 vtkInformation* info, int fieldAssociation, const char* name);
166
171 vtkInformation* info, int fieldAssociation, const char* name);
172
180 vtkInformation* info, int fieldAssociation, const char* attributeName, int attributeType);
181
191 static void SetActiveAttributeInfo(vtkInformation* info, int fieldAssociation, int attributeType,
192 const char* name, int arrayType, int numComponents, int numTuples);
193
198 static void SetPointDataActiveScalarInfo(vtkInformation* info, int arrayType, int numComponents);
199
206
212 virtual void PrepareForNewData() { this->Initialize(); }
213
221 virtual void ShallowCopy(vtkDataObject* src);
222
230 virtual void DeepCopy(vtkDataObject* src);
231
240 virtual int GetExtentType() { return VTK_PIECES_EXTENT; }
241
246 virtual void Crop(const int* updateExtent);
247
252 {
260 NUMBER_OF_ASSOCIATIONS
261 };
262
268 {
276 NUMBER_OF_ATTRIBUTE_TYPES
277 };
278
299
312
320
327
332
337 {
341 FIELD_OPERATION_REMOVED
342 };
343
348 static const char* GetAssociationTypeAsString(int associationType);
349
354 static int GetAssociationTypeFromString(const char* associationName);
355
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 // \ingroup InformationKeys
400 // \ingroup InformationKeys
402 // \ingroup InformationKeys
404 // \ingroup InformationKeys
406 // \ingroup InformationKeys
408 // \ingroup InformationKeys
410
411 // Key used to put SIL information in the output information by readers.
412 // \ingroup InformationKeys
414
416
422
423protected:
425 ~vtkDataObject() override;
426
427 // General field data associated with data object
429
430 // Keep track of data release during network execution
432
433 // When was this data last generated?
435
436 // Arbitrary extra information associated with this data object.
438
439private:
440 // Helper method for the ShallowCopy and DeepCopy methods.
441 void InternalDataObjectCopy(vtkDataObject* src);
442
443 vtkDataObject(const vtkDataObject&) = delete;
444 void operator=(const vtkDataObject&) = delete;
445};
446
447VTK_ABI_NAMESPACE_END
448#endif
Abstract superclass for all arrays.
general representation of visualization data
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)
The goal of the method is to copy the data up to the array pointers only.
static vtkInformationDoubleVectorKey * DIRECTION()
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...
virtual void Initialize()
Restore data object to initial state,.
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....
static vtkTypeBool GetGlobalReleaseDataFlag()
Turn on/off flag to control whether every object releases its data after being used by a filter.
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()
vtkTimeStamp UpdateTime
virtual void DeepCopy(vtkDataObject *src)
The goal of the method is to copy the complete data from src into this object.
static int GetAssociationTypeFromString(const char *associationName)
Given a string association name, this static method returns an integer association type for the attri...
vtkFieldData * FieldData
static vtkInformationIntegerKey * FIELD_NUMBER_OF_COMPONENTS()
void ReleaseData()
Release data back to system to conserve memory resource.
FieldAssociations
Possible values for the FIELD_ASSOCIATION information entry.
@ FIELD_ASSOCIATION_POINTS_THEN_CELLS
static vtkInformationIntegerKey * FIELD_ATTRIBUTE_TYPE()
static vtkInformationIntegerKey * DATA_EXTENT_TYPE()
static vtkInformationIntegerKey * FIELD_NUMBER_OF_TUPLES()
static vtkDataObject * GetData(vtkInformationVector *v, int i=0)
Retrieve an instance of this class from an information object.
static vtkInformationDoubleVectorKey * FIELD_RANGE()
virtual void SetInformation(vtkInformation *)
Set/Get the information object associated with this data object.
virtual void PrepareForNewData()
make the output data ready for new data to be inserted.
static vtkInformationIntegerKey * FIELD_ASSOCIATION()
void GlobalReleaseDataFlagOff()
Turn on/off flag to control whether every object releases its data after being used by a filter.
vtkTypeBool DataReleased
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.
virtual vtkUnsignedCharArray * GetGhostArray(int type)
Returns the ghost arrays of the data object of the specified attribute type.
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()
void GlobalReleaseDataFlagOn()
Turn on/off flag to control whether every object releases its data after being used by a filter.
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 void SetGlobalReleaseDataFlag(vtkTypeBool val)
Turn on/off flag to control whether every object releases its data after being used by a filter.
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()
vtkInformation * Information
represent and manipulate attribute data in a dataset
represent and manipulate fields of data
a simple class to control print indentation
Definition vtkIndent.h:29
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:49
record modification and/or execution time
dynamic, self-adjusting array of unsigned char
int vtkTypeBool
Definition vtkABI.h:64
#define VTK_PIECES_EXTENT
int vtkIdType
Definition vtkType.h:315
#define VTK_DATA_OBJECT
Definition vtkType.h:72
vtkTypeUInt32 vtkMTimeType
Definition vtkType.h:270