Cloned library of VTK-5.0.0 with extra build files for internal package management.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

151 lines
4.8 KiB

/*=========================================================================
Program: Visualization Toolkit
Module: $RCSfile: vtkHierarchicalDataSet.h,v $
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
All rights reserved.
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notice for more information.
=========================================================================*/
// .NAME vtkHierarchicalDataSet - abstract superclass for hierarchical datasets
// .SECTION Description
// vtkHierarchicalDataSet is a vtkCompositeDataSet that stores
// a hierarchy of datasets. The dataset collection consists of
// multiple levels. Each dataset can have an arbitrary number of
// parents and children at levels above and below. Currently,
// the interface for connecting parents-children is incomplete.
#ifndef __vtkHierarchicalDataSet_h
#define __vtkHierarchicalDataSet_h
#include "vtkCompositeDataSet.h"
//BTX
struct vtkHierarchicalDataSetInternal;
//ETX
class vtkDataObject;
class vtkHDSNode;
class vtkHierarchicalDataInformation;
class VTK_FILTERING_EXPORT vtkHierarchicalDataSet : public vtkCompositeDataSet
{
public:
static vtkHierarchicalDataSet *New();
vtkTypeRevisionMacro(vtkHierarchicalDataSet,vtkCompositeDataSet);
virtual void PrintSelf(ostream& os, vtkIndent indent);
// Description:
// Return a new (forward) iterator
// (the iterator has to be deleted by user)
virtual vtkCompositeDataIterator* NewIterator();
// Description:
// Return class name of data type (see vtkSystemIncludes.h for
// definitions).
virtual int GetDataObjectType() {return VTK_HIERARCHICAL_DATA_SET;}
// Description:
// Restore data object to initial state,
virtual void Initialize();
// Description:
// Set the number of refinement levels. This call might cause
// allocation if the new number of levels is larger than the
// current one.
void SetNumberOfLevels(unsigned int numLevels);
// Description:
// Returns the number of levels.
unsigned int GetNumberOfLevels();
// Description:
// Set the number of datasets in a given level. This call might
// cause allocation if the new number of datasets is larger
// than the current one.
void SetNumberOfDataSets(unsigned int level, unsigned int numDataSets);
// Description:
// Returns the number of datasets in a given level.
unsigned int GetNumberOfDataSets(unsigned int level);
// Description:
// Initialize the entry for a dataset node. This removes all
// parent/child links between the given node and others.
void InitializeNode(unsigned int level, unsigned int id);
// Description:
// Set the dataset pointer for a given node. This method does
// not remove the existing parent/child links. It only replaces
// the dataset pointer.
void SetDataSet(unsigned int level, unsigned int id, vtkDataObject* dataSet);
// Description:
// Uses keys LEVEL() and INDEX() to call SetDataSet(LEVEL, INDEX, dobj)
virtual void AddDataSet(vtkInformation* index, vtkDataObject* dobj);
// Description:
// Get a dataset give a level and an id.
vtkDataObject* GetDataSet(unsigned int level, unsigned int id);
// Description:
// Uses keys LEVEL() and INDEX() to call GetDataSet(LEVEL, INDEX)
virtual vtkDataObject* GetDataSet(vtkInformation* index);
// Description:
// Shallow and Deep copy.
virtual void ShallowCopy(vtkDataObject *src);
virtual void DeepCopy(vtkDataObject *src);
// Description:
// Returns the data structure containing information about
// the datasets.
vtkGetObjectMacro(HierarchicalDataInformation,vtkHierarchicalDataInformation);
// Description:
// Set the information about the datasets.
void SetHierarchicalDataInformation(vtkHierarchicalDataInformation* info);
// Description:
// Returns the total number of points of all blocks. This will
// iterate over all blocks and call GetNumberOfPoints() so it
// might be expansive.
virtual vtkIdType GetNumberOfPoints();
//BTX
friend class vtkHierarchicalDataIterator;
//ETX
static vtkInformationIntegerKey* LEVEL();
//BTX
// Description:
// Retrieve an instance of this class from an information object.
static vtkHierarchicalDataSet* GetData(vtkInformation* info);
static vtkHierarchicalDataSet* GetData(vtkInformationVector* v, int i=0);
//ETX
protected:
vtkHierarchicalDataSet();
~vtkHierarchicalDataSet();
vtkHierarchicalDataSetInternal* Internal;
void InitializeDataSets();
virtual vtkHDSNode* NewNode();
vtkHierarchicalDataInformation* HierarchicalDataInformation;
private:
vtkHierarchicalDataSet(const vtkHierarchicalDataSet&); // Not implemented.
void operator=(const vtkHierarchicalDataSet&); // Not implemented.
};
#endif