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
37 #ifndef vtkDataObject_h
38 #define vtkDataObject_h
39 
40 #include "vtkCommonDataModelModule.h" // For export macro
41 #include "vtkObject.h"
42 
43 VTK_ABI_NAMESPACE_BEGIN
44 class vtkAbstractArray;
46 class vtkFieldData;
47 class vtkInformation;
58 
59 #define VTK_PIECES_EXTENT 0
60 #define VTK_3D_EXTENT 1
61 #define VTK_TIME_EXTENT 2
62 
63 class VTKCOMMONDATAMODEL_EXPORT vtkDataObject : public vtkObject
64 {
65 public:
66  static vtkDataObject* New();
67 
68  vtkTypeMacro(vtkDataObject, vtkObject);
69  void PrintSelf(ostream& os, vtkIndent indent) override;
70 
72 
75  vtkGetObjectMacro(Information, vtkInformation);
78 
83  vtkMTimeType GetMTime() override;
84 
88  virtual void Initialize();
89 
95  void ReleaseData();
96 
98 
101  vtkGetMacro(DataReleased, vtkTypeBool);
103 
105 
114 
116 
119  virtual void SetFieldData(vtkFieldData*);
120  vtkGetObjectMacro(FieldData, vtkFieldData);
122 
129  virtual int GetDataObjectType() { return VTK_DATA_OBJECT; }
130 
136 
144  virtual unsigned long GetActualMemorySize();
145 
150  virtual void CopyInformationFromPipeline(vtkInformation* vtkNotUsed(info)) {}
151 
157  virtual void CopyInformationToPipeline(vtkInformation* vtkNotUsed(info)) {}
158 
166  vtkInformation* info, int fieldAssociation, int attributeType);
167 
174  vtkInformation* info, int fieldAssociation, const char* name);
175 
180  vtkInformation* info, int fieldAssociation, const char* name);
181 
189  vtkInformation* info, int fieldAssociation, const char* attributeName, int attributeType);
190 
200  static void SetActiveAttributeInfo(vtkInformation* info, int fieldAssociation, int attributeType,
201  const char* name, int arrayType, int numComponents, int numTuples);
202 
207  static void SetPointDataActiveScalarInfo(vtkInformation* info, int arrayType, int numComponents);
208 
215 
221  virtual void PrepareForNewData() { this->Initialize(); }
222 
230  virtual void ShallowCopy(vtkDataObject* src);
231 
239  virtual void DeepCopy(vtkDataObject* src);
240 
249  virtual int GetExtentType() { return VTK_PIECES_EXTENT; }
250 
255  virtual void Crop(const int* updateExtent);
256 
261  {
269  NUMBER_OF_ASSOCIATIONS
270  };
271 
277  {
285  NUMBER_OF_ATTRIBUTE_TYPES
286  };
287 
308 
321 
329 
336 
341 
346  {
350  FIELD_OPERATION_REMOVED
351  };
352 
357  static const char* GetAssociationTypeAsString(int associationType);
358 
363  static int GetAssociationTypeFromString(const char* associationName);
364 
365  // \ingroup InformationKeys
367  // \ingroup InformationKeys
369  // \ingroup InformationKeys
371  // \ingroup InformationKeys
373  // \ingroup InformationKeys
375  // \ingroup InformationKeys
377  // \ingroup InformationKeys
379  // \ingroup InformationKeys
381  // \ingroup InformationKeys
383  // \ingroup InformationKeys
385  // \ingroup InformationKeys
387  // \ingroup InformationKeys
389  // \ingroup InformationKeys
391  // \ingroup InformationKeys
393  // \ingroup InformationKeys
395  // \ingroup InformationKeys
397  // \ingroup InformationKeys
399  // \ingroup InformationKeys
401  // \ingroup InformationKeys
403  // \ingroup InformationKeys
405  // \ingroup InformationKeys
407  // \ingroup InformationKeys
409  // \ingroup InformationKeys
411  // \ingroup InformationKeys
413  // \ingroup InformationKeys
415  // \ingroup InformationKeys
417  // \ingroup InformationKeys
419 
420  // Key used to put SIL information in the output information by readers.
421  // \ingroup InformationKeys
423 
425 
431 
432 protected:
434  ~vtkDataObject() override;
435 
436  // General field data associated with data object
438 
439  // Keep track of data release during network execution
441 
442  // When was this data last generated?
444 
445  // Arbitrary extra information associated with this data object.
447 
448 private:
449  // Helper method for the ShallowCopy and DeepCopy methods.
450  void InternalDataObjectCopy(vtkDataObject* src);
451 
452  vtkDataObject(const vtkDataObject&) = delete;
453  void operator=(const vtkDataObject&) = delete;
454 };
455 
456 VTK_ABI_NAMESPACE_END
457 #endif
Abstract superclass for all arrays.
general representation of visualization data
Definition: vtkDataObject.h:64
virtual vtkFieldData * GetAttributesAsFieldData(int type)
Returns the attributes of the data object as a vtkFieldData.
virtual void ShallowCopy(vtkDataObject *src)
The goal of the method is to copy the data up to the array pointers only.
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 vtkDataObject * New()
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 vtkInformationIntegerKey * DATA_NUMBER_OF_PIECES()
static vtkInformationDoubleVectorKey * BOUNDING_BOX()
static vtkInformationDoubleVectorKey * FIELD_RANGE()
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 vtkInformationIntegerKey * FIELD_OPERATION()
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....
FieldOperations
Possible values for the FIELD_OPERATION information entry.
@ FIELD_OPERATION_REINTERPOLATED
static vtkInformationIntegerKey * FIELD_ASSOCIATION()
~vtkDataObject() override
vtkTimeStamp UpdateTime
static vtkInformationIntegerKey * FIELD_ACTIVE_ATTRIBUTE()
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
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
@ FIELD_ASSOCIATION_VERTICES
virtual vtkDataSetAttributes * GetAttributes(int type)
Returns the attributes of the data object of the specified attribute type.
virtual vtkUnsignedCharArray * GetGhostArray(int type)
Returns the ghost arrays of the data object of the specified attribute type.
static vtkInformationDoubleVectorKey * DIRECTION()
static vtkDataObject * GetData(vtkInformationVector *v, int i=0)
Retrieve an instance of this class from an information object.
static vtkInformationIntegerKey * FIELD_ARRAY_TYPE()
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.
void GlobalReleaseDataFlagOff()
Turn on/off flag to control whether every object releases its data after being used by a filter.
static vtkInformationIntegerKey * FIELD_ATTRIBUTE_TYPE()
vtkTypeBool DataReleased
static vtkInformationIntegerKey * DATA_PIECE_NUMBER()
AttributeTypes
Possible attribute types.
static void RemoveNamedFieldInformation(vtkInformation *info, int fieldAssociation, const char *name)
Remove the info associated with an array.
static vtkInformationIntegerKey * DATA_EXTENT_TYPE()
virtual void CopyInformationFromPipeline(vtkInformation *vtkNotUsed(info))
Copy from the pipeline information to the data object's own information.
static vtkInformationInformationVectorKey * POINT_DATA_VECTOR()
static vtkInformationIntegerKey * DATA_NUMBER_OF_GHOST_LEVELS()
void DataHasBeenGenerated()
This method is called by the source when it executes to generate data.
static vtkInformationInformationVectorKey * CELL_DATA_VECTOR()
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 vtkInformationInformationVectorKey * VERTEX_DATA_VECTOR()
static vtkInformationIntegerKey * FIELD_NUMBER_OF_TUPLES()
static vtkInformationStringKey * FIELD_NAME()
static vtkInformationDataObjectKey * DATA_OBJECT()
static vtkInformationIntegerVectorKey * ALL_PIECES_EXTENT()
static vtkInformationStringKey * DATA_TYPE_NAME()
static vtkInformationDataObjectKey * SIL()
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 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 vtkInformationInformationVectorKey * EDGE_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 * GetData(vtkInformation *info)
Retrieve an instance of this class from an information object.
static vtkInformationIntegerVectorKey * PIECE_EXTENT()
static vtkInformationDoubleVectorKey * ORIGIN()
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.
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,...
virtual int GetExtentType()
The ExtentType will be left as VTK_PIECES_EXTENT for data objects such as vtkPolyData and vtkUnstruct...
static vtkInformationIntegerKey * FIELD_NUMBER_OF_COMPONENTS()
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 vtkIdType GetNumberOfElements(int type)
Get the number of elements for a specific attribute type (POINT, CELL, etc.).
vtkInformation * Information
static vtkInformationDoubleKey * DATA_TIME_STEP()
static vtkInformationIntegerPointerKey * DATA_EXTENT()
represent and manipulate attribute data in a dataset
represent and manipulate fields of data
Definition: vtkFieldData.h:61
a simple class to control print indentation
Definition: vtkIndent.h:38
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:61
record modification and/or execution time
Definition: vtkTimeStamp.h:34
dynamic, self-adjusting array of unsigned char
@ info
Definition: vtkX3D.h:376
@ type
Definition: vtkX3D.h:516
@ name
Definition: vtkX3D.h:219
int vtkTypeBool
Definition: vtkABI.h:64
#define VTK_PIECES_EXTENT
Definition: vtkDataObject.h:59
int vtkIdType
Definition: vtkType.h:315
#define VTK_DATA_OBJECT
Definition: vtkType.h:72
vtkTypeUInt32 vtkMTimeType
Definition: vtkType.h:270