VTK  9.2.20220811
vtkDataObjectTree.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkDataObjectTree.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 =========================================================================*/
36 #ifndef vtkDataObjectTree_h
37 #define vtkDataObjectTree_h
38 
39 #include "vtkCommonDataModelModule.h" // For export macro
40 #include "vtkCompositeDataSet.h"
41 
45 class vtkInformation;
47 class vtkDataObject;
48 
49 class VTKCOMMONDATAMODEL_EXPORT vtkDataObjectTree : public vtkCompositeDataSet
50 {
51 public:
53  void PrintSelf(ostream& os, vtkIndent indent) override;
54 
59 
68 
74  void CopyStructure(vtkCompositeDataSet* input) override;
75 
82  void SetDataSet(vtkCompositeDataIterator* iter, vtkDataObject* dataObj) override;
83 
88 
89  // Needed because, otherwise vtkCompositeData::GetDataSet(unsigned int flatIndex) is hidden.
90  using Superclass::GetDataSet;
98 
108 
116 
121  unsigned long GetActualMemorySize() override;
122 
126  void Initialize() override;
127 
129 
132  void ShallowCopy(vtkDataObject* src) override;
133  void DeepCopy(vtkDataObject* src) override;
134  void RecursiveShallowCopy(vtkDataObject* src) override;
136 
143 
150 
152 
158 
162  int GetDataObjectType() override { return VTK_DATA_OBJECT_TREE; }
163 
164 protected:
166  ~vtkDataObjectTree() override;
167 
171  void SetNumberOfChildren(unsigned int num);
172 
176  unsigned int GetNumberOfChildren();
177 
182  void SetChild(unsigned int index, vtkDataObject*);
183 
187  void RemoveChild(unsigned int index);
188 
192  vtkDataObject* GetChild(unsigned int index);
193 
200 
205 
210  int HasChildMetaData(unsigned int index);
211 
219 
220  // The internal datastructure. Subclasses need not access this directly.
222 
224 
225 private:
226  vtkDataObjectTree(const vtkDataObjectTree&) = delete;
227  void operator=(const vtkDataObjectTree&) = delete;
228 };
229 
230 #endif
superclass for composite data iterators
abstract superclass for composite (multi-block or AMR) datasets
superclass for composite data iterators
provides implementation for most abstract methods in the superclass vtkCompositeDataSet
static vtkDataObjectTree * GetData(vtkInformation *info)
Retrieve an instance of this class from an information object.
virtual vtkDataObjectTree * CreateForCopyStructure(vtkDataObjectTree *other)
When copying structure from another vtkDataObjectTree, this method gets called for create a new non-l...
void SetChildMetaData(unsigned int index, vtkInformation *info)
Sets the meta-data at a given index.
virtual vtkInformation * GetMetaData(vtkCompositeDataIterator *iter)
Returns the meta-data associated with the position pointed by the iterator.
void RecursiveShallowCopy(vtkDataObject *src) override
Shallow and Deep copy.
void SetDataSet(vtkCompositeDataIterator *iter, vtkDataObject *dataObj) override
Sets the data set at the location pointed by the iterator.
static vtkDataObjectTree * GetData(vtkInformationVector *v, int i=0)
Retrieve an instance of this class from an information object.
vtkIdType GetNumberOfCells() override
Returns the total number of cells of all blocks.
vtkDataObjectTreeInternals * Internals
vtkInformation * GetChildMetaData(unsigned int index)
Returns the meta-data at a given index.
vtkDataObject * GetDataSet(vtkCompositeDataIterator *iter) override
Returns the dataset located at the position pointed by the iterator.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void Initialize() override
Restore data object to initial state,.
void DeepCopy(vtkDataObject *src) override
Shallow and Deep copy.
unsigned long GetActualMemorySize() override
Return the actual size of the data in kibibytes (1024 bytes).
void SetChild(unsigned int index, vtkDataObject *)
Set child dataset at a given index.
virtual int HasMetaData(vtkCompositeDataIterator *iter)
Returns if any meta-data associated with the position pointed by the iterator.
unsigned int GetNumberOfChildren()
Get the number of children.
vtkIdType GetNumberOfPoints() override
Returns the total number of points of all blocks.
void SetDataSetFrom(vtkDataObjectTreeIterator *iter, vtkDataObject *dataObj)
Sets the data at the location provided by a vtkDataObjectTreeIterator.
void SetNumberOfChildren(unsigned int num)
Set the number of children.
void CopyStructure(vtkCompositeDataSet *input) override
Copies the tree structure from the input.
vtkCompositeDataIterator * NewIterator() override
Return a new iterator (the iterator has to be deleted by user).
int HasChildMetaData(unsigned int index)
Returns if meta-data information is available for the given child index.
~vtkDataObjectTree() override
int GetDataObjectType() override
Overridden to return VTK_DATA_OBJECT_TREE.
void RemoveChild(unsigned int index)
Remove the child at a given index.
virtual vtkDataObjectTreeIterator * NewTreeIterator()
Return a new iterator (the iterator has to be deleted by user).
void ShallowCopy(vtkDataObject *src) override
Shallow and Deep copy.
vtkDataObject * GetChild(unsigned int index)
Returns a child dataset at a given index.
general representation of visualization data
a simple class to control print indentation
Definition: vtkIndent.h:119
Key for string values in vtkInformation.
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
@ info
Definition: vtkX3D.h:382
@ index
Definition: vtkX3D.h:252
#define VTK_DATA_OBJECT_TREE
Definition: vtkType.h:117
int vtkIdType
Definition: vtkType.h:325
#define VTK_NEWINSTANCE