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 
46 class vtkAbstractArray;
48 class vtkFieldData;
49 class vtkInformation;
59 
60 #define VTK_PIECES_EXTENT 0
61 #define VTK_3D_EXTENT 1
62 #define VTK_TIME_EXTENT 2
63 
65 {
66 public:
67  static vtkDataObject *New();
68 
70  void PrintSelf(ostream& os, vtkIndent indent);
71 
73 
77 
80  unsigned long int GetMTime();
81 
83  virtual void Initialize();
84 
89  void ReleaseData();
90 
92 
93  vtkGetMacro(DataReleased,int);
95 
96 
98 
100  static void SetGlobalReleaseDataFlag(int val);
101  void GlobalReleaseDataFlagOn() {this->SetGlobalReleaseDataFlag(1);};
102  void GlobalReleaseDataFlagOff() {this->SetGlobalReleaseDataFlag(0);};
105 
107 
108  virtual void SetFieldData(vtkFieldData*);
111 
116  virtual int GetDataObjectType() {return VTK_DATA_OBJECT;}
117 
120  unsigned long GetUpdateTime();
121 
127  virtual unsigned long GetActualMemorySize();
128 
130 
133  {}
135 
140 
142 
147  int fieldAssociation, int attributeType);
149 
151 
155  int fieldAssociation, const char *name);
157 
159 
161  int fieldAssociation,
162  const char *name);
164 
166 
172  int fieldAssociation, const char *attributeName, int attributeType);
174 
176 
184  int fieldAssociation, int attributeType, const char *name, int arrayType,
185  int numComponents, int numTuples);
187 
189 
193  int arrayType, int numComponents);
195 
200 
204  virtual void PrepareForNewData() {this->Initialize();};
205 
207 
209  virtual void ShallowCopy(vtkDataObject *src);
210  virtual void DeepCopy(vtkDataObject *src);
212 
219  virtual int GetExtentType() { return VTK_PIECES_EXTENT; };
220 
223  virtual void Crop(const int* updateExtent);
224 
225  //BTX
227 
229  {
237  NUMBER_OF_ASSOCIATIONS
238  };
239  //ETX
241 
242  //BTX
244 
247  {
255  NUMBER_OF_ATTRIBUTE_TYPES
256  };
257  //ETX
259 
269 
275 
280 
284 
285  //BTX
287 
289  {
293  FIELD_OPERATION_REMOVED
294  };
295  //ETX
297 
300  static const char* GetAssociationTypeAsString(int associationType);
301 
304  static int GetAssociationTypeFromString(const char* associationType);
305 
306  // \ingroup InformationKeys
308  // \ingroup InformationKeys
310  // \ingroup InformationKeys
312  // \ingroup InformationKeys
314  // \ingroup InformationKeys
316  // \ingroup InformationKeys
318  // \ingroup InformationKeys
320  // \ingroup InformationKeys
322  // \ingroup InformationKeys
324  // \ingroup InformationKeys
326  // \ingroup InformationKeys
328  // \ingroup InformationKeys
330  // \ingroup InformationKeys
332  // \ingroup InformationKeys
334  // \ingroup InformationKeys
336  // \ingroup InformationKeys
338  // \ingroup InformationKeys
340  // \ingroup InformationKeys
342  // \ingroup InformationKeys
344  // \ingroup InformationKeys
346  // \ingroup InformationKeys
348  // \ingroup InformationKeys
350  // \ingroup InformationKeys
352  // \ingroup InformationKeys
354  // \ingroup InformationKeys
356  // \ingroup InformationKeys
358 
359  // Key used to put SIL information in the output information by readers.
360  // \ingroup InformationKeys
362 
363  //BTX
365 
368  //ETX
370 
371 protected:
372 
375 
376  // General field data associated with data object
378 
379  // Keep track of data release during network execution
381 
382  // When was this data last generated?
384 
385  // Arbitrary extra information associated with this data object.
387 
388 private:
389  // Helper method for the ShallowCopy and DeepCopy methods.
390  void InternalDataObjectCopy(vtkDataObject *src);
391 
392 private:
393  vtkDataObject(const vtkDataObject&); // Not implemented.
394  void operator=(const vtkDataObject&); // Not implemented.
395 };
396 
397 #endif
398 
vtkDataObject::FIELD_ASSOCIATION_EDGES
@ FIELD_ASSOCIATION_EDGES
Definition: vtkDataObject.h:235
vtkDataObject::DATA_TYPE_NAME
static vtkInformationStringKey * DATA_TYPE_NAME()
vtkDataObject::GetAttributes
virtual vtkDataSetAttributes * GetAttributes(int type)
vtkInformationStringKey
Key for string values in vtkInformation.
Definition: vtkInformationStringKey.h:34
vtkGetObjectMacro
#define vtkGetObjectMacro(name, type)
Definition: vtkSetGet.h:232
vtkDataObject::POINT
@ POINT
Definition: vtkDataObject.h:248
vtkDataObject::POINT_DATA_VECTOR
static vtkInformationInformationVectorKey * POINT_DATA_VECTOR()
vtkDataObject::GetUpdateTime
unsigned long GetUpdateTime()
vtkDataObject::Initialize
virtual void Initialize()
vtkDataObject::FIELD_ACTIVE_ATTRIBUTE
static vtkInformationIntegerKey * FIELD_ACTIVE_ATTRIBUTE()
vtkDataObject::CELL
@ CELL
Definition: vtkDataObject.h:249
vtkDataObject::GetAssociationTypeAsString
static const char * GetAssociationTypeAsString(int associationType)
VTK_DATA_OBJECT
#define VTK_DATA_OBJECT
Definition: vtkType.h:73
vtkDataObject::EDGE_DATA_VECTOR
static vtkInformationInformationVectorKey * EDGE_DATA_VECTOR()
vtkDataObject::SPACING
static vtkInformationDoubleVectorKey * SPACING()
vtkDataObject::FieldData
vtkFieldData * FieldData
Definition: vtkDataObject.h:377
vtkDataObject::GetAttributesAsFieldData
virtual vtkFieldData * GetAttributesAsFieldData(int type)
vtkIdType
int vtkIdType
Definition: vtkType.h:275
vtkCommonDataModelModule.h
vtkDataObject::VERTEX_DATA_VECTOR
static vtkInformationInformationVectorKey * VERTEX_DATA_VECTOR()
vtkDataSetAttributes
represent and manipulate attribute data in a dataset
Definition: vtkDataSetAttributes.h:58
vtkDataObject::SetPointDataActiveScalarInfo
static void SetPointDataActiveScalarInfo(vtkInformation *info, int arrayType, int numComponents)
vtkInformationVector
Store zero or more vtkInformation instances.
Definition: vtkInformationVector.h:41
vtkDataObject::DATA_OBJECT
static vtkInformationDataObjectKey * DATA_OBJECT()
vtkTimeStamp
record modification and/or execution time
Definition: vtkTimeStamp.h:35
vtkDataObject::GetMTime
unsigned long int GetMTime()
vtkDataObject::FIELD_ASSOCIATION
static vtkInformationIntegerKey * FIELD_ASSOCIATION()
vtkInformationDataObjectKey
Key for vtkDataObject values.
Definition: vtkInformationDataObjectKey.h:33
vtkDataObject::SetInformation
virtual void SetInformation(vtkInformation *)
vtkDataObject::GetNamedFieldInformation
static vtkInformation * GetNamedFieldInformation(vtkInformation *info, int fieldAssociation, const char *name)
vtkTypeMacro
#define vtkTypeMacro(thisClass, superclass)
Definition: vtkSetGet.h:642
vtkDataObject::PIECE_EXTENT
static vtkInformationIntegerVectorKey * PIECE_EXTENT()
vtkObject
abstract base class for most VTK objects
Definition: vtkObject.h:62
vtkDataObject::CopyInformationFromPipeline
virtual void CopyInformationFromPipeline(vtkInformation *vtkNotUsed(info))
Definition: vtkDataObject.h:132
vtkgl::v
const GLdouble * v
Definition: vtkgl.h:11595
vtkDataObject::DATA_NUMBER_OF_GHOST_LEVELS
static vtkInformationIntegerKey * DATA_NUMBER_OF_GHOST_LEVELS()
vtkDataObject::Information
vtkInformation * Information
Definition: vtkDataObject.h:386
vtkDataObject::GetDataObjectType
virtual int GetDataObjectType()
Definition: vtkDataObject.h:116
vtkDataObject::FIELD_ASSOCIATION_POINTS
@ FIELD_ASSOCIATION_POINTS
Definition: vtkDataObject.h:230
vtkDataObject::GlobalReleaseDataFlagOn
void GlobalReleaseDataFlagOn()
Definition: vtkDataObject.h:101
vtkInformationIntegerPointerKey
Key for pointer to integer.
Definition: vtkInformationIntegerPointerKey.h:31
vtkInformationDoubleKey
Key for double values in vtkInformation.
Definition: vtkInformationDoubleKey.h:34
vtkDataObject::SIL
static vtkInformationDataObjectKey * SIL()
vtkDataObject::RemoveNamedFieldInformation
static void RemoveNamedFieldInformation(vtkInformation *info, int fieldAssociation, const char *name)
vtkDataObject::POINT_THEN_CELL
@ POINT_THEN_CELL
Definition: vtkDataObject.h:251
vtkDataObject::FIELD_ASSOCIATION_NONE
@ FIELD_ASSOCIATION_NONE
Definition: vtkDataObject.h:232
vtkDataObject::DeepCopy
virtual void DeepCopy(vtkDataObject *src)
vtkDataObject::vtkDataObject
vtkDataObject()
vtkDataObject::SetGlobalReleaseDataFlag
static void SetGlobalReleaseDataFlag(int val)
vtkDataObject::ALL_PIECES_EXTENT
static vtkInformationIntegerVectorKey * ALL_PIECES_EXTENT()
vtkDataObject::FIELD_ASSOCIATION_VERTICES
@ FIELD_ASSOCIATION_VERTICES
Definition: vtkDataObject.h:234
vtkFieldData
represent and manipulate fields of data
Definition: vtkFieldData.h:56
vtkDataObject::DataHasBeenGenerated
void DataHasBeenGenerated()
vtkDataObject::GetNumberOfElements
virtual vtkIdType GetNumberOfElements(int type)
vtkgl::val
GLuint GLfloat * val
Definition: vtkgl.h:13789
vtkgl::name
GLuint const GLchar * name
Definition: vtkgl.h:11983
vtkDataObject::GlobalReleaseDataFlagOff
void GlobalReleaseDataFlagOff()
Definition: vtkDataObject.h:102
vtkNotUsed
#define vtkNotUsed(x)
Definition: vtkSetGet.h:557
vtkDataObject::FieldOperations
FieldOperations
Definition: vtkDataObject.h:289
vtkDataObject::FIELD_OPERATION_MODIFIED
@ FIELD_OPERATION_MODIFIED
Definition: vtkDataObject.h:292
vtkDataObject::SetActiveAttribute
static vtkInformation * SetActiveAttribute(vtkInformation *info, int fieldAssociation, const char *attributeName, int attributeType)
vtkDataObject::FIELD_ASSOCIATION_CELLS
@ FIELD_ASSOCIATION_CELLS
Definition: vtkDataObject.h:231
vtkDataObject::FIELD_OPERATION
static vtkInformationIntegerKey * FIELD_OPERATION()
vtkDataObject::DATA_PIECE_NUMBER
static vtkInformationIntegerKey * DATA_PIECE_NUMBER()
vtkgl::src
GLenum src
Definition: vtkgl.h:12525
vtkDataObject::VERTEX
@ VERTEX
Definition: vtkDataObject.h:252
vtkInformationIntegerKey
Key for integer values in vtkInformation.
Definition: vtkInformationIntegerKey.h:34
vtkDataObject::FIELD_NUMBER_OF_COMPONENTS
static vtkInformationIntegerKey * FIELD_NUMBER_OF_COMPONENTS()
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:39
vtkDataObject::GetExtentType
virtual int GetExtentType()
Definition: vtkDataObject.h:219
vtkDataObject::BOUNDING_BOX
static vtkInformationDoubleVectorKey * BOUNDING_BOX()
vtkDataObject::PrepareForNewData
virtual void PrepareForNewData()
Definition: vtkDataObject.h:204
vtkDataObject::GetActiveFieldInformation
static vtkInformation * GetActiveFieldInformation(vtkInformation *info, int fieldAssociation, int attributeType)
vtkDataObject::SetActiveAttributeInfo
static void SetActiveAttributeInfo(vtkInformation *info, int fieldAssociation, int attributeType, const char *name, int arrayType, int numComponents, int numTuples)
vtkDataObject::DATA_NUMBER_OF_PIECES
static vtkInformationIntegerKey * DATA_NUMBER_OF_PIECES()
vtkDataObject::FIELD_RANGE
static vtkInformationDoubleVectorKey * FIELD_RANGE()
vtkGetMacro
#define vtkGetMacro(name, type)
Definition: vtkSetGet.h:93
vtkDataObject::Crop
virtual void Crop(const int *updateExtent)
vtkDataObject::UpdateTime
vtkTimeStamp UpdateTime
Definition: vtkDataObject.h:383
VTK_PIECES_EXTENT
#define VTK_PIECES_EXTENT
Definition: vtkDataObject.h:60
vtkDataObject::ROW
@ ROW
Definition: vtkDataObject.h:254
vtkObject.h
vtkDataObject::FIELD
@ FIELD
Definition: vtkDataObject.h:250
vtkDataObject::~vtkDataObject
~vtkDataObject()
vtkDataObject::DATA_TIME_STEP
static vtkInformationDoubleKey * DATA_TIME_STEP()
vtkDataObject::CopyInformationToPipeline
virtual void CopyInformationToPipeline(vtkInformation *vtkNotUsed(info))
Definition: vtkDataObject.h:139
vtkDataObject::ReleaseData
void ReleaseData()
vtkDataObject::GetActualMemorySize
virtual unsigned long GetActualMemorySize()
vtkAbstractArray
Abstract superclass for all arrays.
Definition: vtkAbstractArray.h:65
vtkInformation
Store vtkAlgorithm input/output information.
Definition: vtkInformation.h:86
vtkX3D::info
@ info
Definition: vtkX3D.h:376
vtkDataObject::GetAttributeTypeForArray
virtual int GetAttributeTypeForArray(vtkAbstractArray *arr)
vtkDataObject::EDGE
@ EDGE
Definition: vtkDataObject.h:253
vtkDataObject::DataReleased
int DataReleased
Definition: vtkDataObject.h:380
vtkInformationDoubleVectorKey
Key for double vector values.
Definition: vtkInformationDoubleVectorKey.h:34
vtkDataObject::GetAssociationTypeFromString
static int GetAssociationTypeFromString(const char *associationType)
vtkDataObject::SetFieldData
virtual void SetFieldData(vtkFieldData *)
vtkInformationInformationVectorKey
Key for vtkInformation vectors.
Definition: vtkInformationInformationVectorKey.h:33
vtkDataObject::GetData
static vtkDataObject * GetData(vtkInformationVector *v, int i=0)
vtkDataObject::FIELD_OPERATION_REINTERPOLATED
@ FIELD_OPERATION_REINTERPOLATED
Definition: vtkDataObject.h:291
vtkDataObject::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent)
VTKCOMMONDATAMODEL_EXPORT
#define VTKCOMMONDATAMODEL_EXPORT
Definition: vtkCommonDataModelModule.h:15
vtkDataObject::FIELD_NAME
static vtkInformationStringKey * FIELD_NAME()
vtkDataObject::FIELD_ASSOCIATION_POINTS_THEN_CELLS
@ FIELD_ASSOCIATION_POINTS_THEN_CELLS
Definition: vtkDataObject.h:233
vtkDataObject::FieldAssociations
FieldAssociations
Definition: vtkDataObject.h:229
vtkDataObject::FIELD_NUMBER_OF_TUPLES
static vtkInformationIntegerKey * FIELD_NUMBER_OF_TUPLES()
vtkDataObject::FIELD_ATTRIBUTE_TYPE
static vtkInformationIntegerKey * FIELD_ATTRIBUTE_TYPE()
vtkInformationIntegerVectorKey
Key for integer vector values.
Definition: vtkInformationIntegerVectorKey.h:31
vtkDataObject::FIELD_ASSOCIATION_ROWS
@ FIELD_ASSOCIATION_ROWS
Definition: vtkDataObject.h:236
vtkDataObject::ORIGIN
static vtkInformationDoubleVectorKey * ORIGIN()
vtkDataObject
general representation of visualization data
Definition: vtkDataObject.h:65
vtkDataObject::GetGlobalReleaseDataFlag
static int GetGlobalReleaseDataFlag()
vtkgl::type
GLuint GLuint GLsizei GLenum type
Definition: vtkgl.h:11315
vtkDataObject::FIELD_ARRAY_TYPE
static vtkInformationIntegerKey * FIELD_ARRAY_TYPE()
vtkDataObject::CELL_DATA_VECTOR
static vtkInformationInformationVectorKey * CELL_DATA_VECTOR()
vtkDataObject::ShallowCopy
virtual void ShallowCopy(vtkDataObject *src)
vtkDataObject::DATA_EXTENT_TYPE
static vtkInformationIntegerKey * DATA_EXTENT_TYPE()
vtkDataObject::DATA_EXTENT
static vtkInformationIntegerPointerKey * DATA_EXTENT()
vtkDataObject::AttributeTypes
AttributeTypes
Definition: vtkDataObject.h:247
vtkDataObject::GetData
static vtkDataObject * GetData(vtkInformation *info)
vtkDataObject::FIELD_OPERATION_PRESERVED
@ FIELD_OPERATION_PRESERVED
Definition: vtkDataObject.h:290
vtkDataObject::New
static vtkDataObject * New()