VTK  9.3.20240831
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
137#ifndef vtkDataObject_h
138#define vtkDataObject_h
139
140#include "vtkCommonDataModelModule.h" // For export macro
141#include "vtkObject.h"
142#include "vtkWrappingHints.h" // For VTK_MARSHALAUTO
143
144VTK_ABI_NAMESPACE_BEGIN
145class vtkAbstractArray;
147class vtkFieldData;
148class vtkInformation;
159
160#define VTK_PIECES_EXTENT 0
161#define VTK_3D_EXTENT 1
162#define VTK_TIME_EXTENT 2
163
164class VTKCOMMONDATAMODEL_EXPORT VTK_MARSHALAUTO vtkDataObject : public vtkObject
165{
166public:
168
169 vtkTypeMacro(vtkDataObject, vtkObject);
170 void PrintSelf(ostream& os, vtkIndent indent) override;
171
173
177 vtkGetObjectMacro(Information, vtkInformation);
179 virtual void SetInformation(vtkInformation*);
181
186 vtkMTimeType GetMTime() override;
187
191 virtual void Initialize();
192
198 void ReleaseData();
199
201
204 vtkGetMacro(DataReleased, vtkTypeBool);
206
208
212 static void SetGlobalReleaseDataFlag(vtkTypeBool val);
213 void GlobalReleaseDataFlagOn() { vtkDataObject::SetGlobalReleaseDataFlag(1); }
217
219
223 vtkGetObjectMacro(FieldData, vtkFieldData);
225
232 virtual int GetDataObjectType() { return VTK_DATA_OBJECT; }
233
239
247 virtual unsigned long GetActualMemorySize();
248
253 virtual void CopyInformationFromPipeline(vtkInformation* vtkNotUsed(info)) {}
254
260 virtual void CopyInformationToPipeline(vtkInformation* vtkNotUsed(info)) {}
261
269 vtkInformation* info, int fieldAssociation, int attributeType);
270
277 vtkInformation* info, int fieldAssociation, const char* name);
278
283 vtkInformation* info, int fieldAssociation, const char* name);
284
292 vtkInformation* info, int fieldAssociation, const char* attributeName, int attributeType);
293
303 static void SetActiveAttributeInfo(vtkInformation* info, int fieldAssociation, int attributeType,
304 const char* name, int arrayType, int numComponents, int numTuples);
305
310 static void SetPointDataActiveScalarInfo(vtkInformation* info, int arrayType, int numComponents);
311
318
324 virtual void PrepareForNewData() { this->Initialize(); }
325
333 virtual void ShallowCopy(vtkDataObject* src);
334
342 virtual void DeepCopy(vtkDataObject* src);
343
352 virtual int GetExtentType() { return VTK_PIECES_EXTENT; }
353
358 virtual void Crop(const int* updateExtent);
359
364 {
372 NUMBER_OF_ASSOCIATIONS
373 };
374
380 {
388 NUMBER_OF_ATTRIBUTE_TYPES
389 };
390
411
424
437 virtual bool SupportsGhostArray(int type);
438
446
453
458
463 {
467 FIELD_OPERATION_REMOVED
468 };
469
474 static const char* GetAssociationTypeAsString(int associationType);
475
480 static int GetAssociationTypeFromString(const char* associationName);
481
590
591 // Key used to put SIL information in the output information by readers.
596
598
604
605protected:
607 ~vtkDataObject() override;
608
609 // General field data associated with data object
611
612 // Keep track of data release during network execution
614
615 // When was this data last generated?
617
618 // Arbitrary extra information associated with this data object.
620
621private:
622 // Helper method for the ShallowCopy and DeepCopy methods.
623 void InternalDataObjectCopy(vtkDataObject* src);
624
625 vtkDataObject(const vtkDataObject&) = delete;
626 void operator=(const vtkDataObject&) = delete;
627};
628
629VTK_ABI_NAMESPACE_END
630#endif
Abstract superclass for all arrays.
general representation of visualization data
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.
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 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.
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.
FieldOperations
Possible values for the FIELD_OPERATION information entry.
@ FIELD_OPERATION_REINTERPOLATED
~vtkDataObject() override
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
virtual bool SupportsGhostArray(int type)
Returns if this type of data object support ghost array for specified type.
FieldAssociations
Possible values for the FIELD_ASSOCIATION information entry.
@ FIELD_ASSOCIATION_POINTS_THEN_CELLS
static vtkDataObject * GetData(vtkInformationVector *v, int i=0)
Retrieve an instance of this class from an information object.
virtual void PrepareForNewData()
make the output data ready for new data to be inserted.
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.
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,...
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.
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.
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 void SetPointDataActiveScalarInfo(vtkInformation *info, int arrayType, int numComponents)
Convenience version of previous method for use (primarily) by the Imaging filters.
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...
virtual vtkIdType GetNumberOfElements(int type)
Get the number of elements for a specific attribute type (POINT, CELL, etc.).
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:108
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:162
record modification and/or execution time
dynamic, self-adjusting array of unsigned char
static vtkInformationIntegerKey * FIELD_ACTIVE_ATTRIBUTE()
static vtkInformationDoubleVectorKey * DIRECTION()
static vtkInformationDoubleVectorKey * SPACING()
static vtkInformationDoubleKey * DATA_TIME_STEP()
static vtkInformationInformationVectorKey * CELL_DATA_VECTOR()
static vtkInformationIntegerKey * FIELD_OPERATION()
static vtkInformationIntegerVectorKey * PIECE_EXTENT()
static vtkInformationIntegerKey * FIELD_ARRAY_TYPE()
static vtkInformationIntegerKey * FIELD_NUMBER_OF_COMPONENTS()
static vtkInformationIntegerKey * FIELD_ATTRIBUTE_TYPE()
static vtkInformationIntegerKey * DATA_EXTENT_TYPE()
static vtkInformationIntegerKey * FIELD_NUMBER_OF_TUPLES()
static vtkInformationDoubleVectorKey * FIELD_RANGE()
static vtkInformationIntegerKey * FIELD_ASSOCIATION()
static vtkInformationIntegerKey * DATA_NUMBER_OF_PIECES()
static vtkInformationInformationVectorKey * VERTEX_DATA_VECTOR()
static vtkInformationInformationVectorKey * EDGE_DATA_VECTOR()
static vtkInformationIntegerPointerKey * DATA_EXTENT()
static vtkInformationIntegerKey * DATA_NUMBER_OF_GHOST_LEVELS()
static vtkInformationStringKey * FIELD_NAME()
static vtkInformationDataObjectKey * SIL()
static vtkInformationDoubleVectorKey * ORIGIN()
static vtkInformationDoubleVectorKey * BOUNDING_BOX()
static vtkInformationStringKey * DATA_TYPE_NAME()
static vtkInformationInformationVectorKey * POINT_DATA_VECTOR()
static vtkInformationIntegerVectorKey * ALL_PIECES_EXTENT()
static vtkInformationDataObjectKey * DATA_OBJECT()
static vtkInformationIntegerKey * DATA_PIECE_NUMBER()
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
#define VTK_MARSHAL_EXCLUDE_REASON_NOT_SUPPORTED
#define VTK_MARSHALAUTO
#define VTK_MARSHALEXCLUDE(reason)