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.

115 lines
3.7 KiB

2 years ago
/*=========================================================================
Program: Visualization Toolkit
Module: $RCSfile: vtkHierarchicalBoxDataSet.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 vtkHierarchicalBoxDataSet - hierarchical dataset of vtkUniformGrids
// .SECTION Description
// vtkHierarchicalBoxDataSet is a concrete implementation of
// vtkHierarchicalDataSet. The dataset type is restricted to
// vtkUniformGrid. Each dataset has an associated vtkAMRBox
// that represents it's region (similar to extent) in space.
#ifndef __vtkHierarchicalBoxDataSet_h
#define __vtkHierarchicalBoxDataSet_h
#include "vtkHierarchicalDataSet.h"
//BTX
struct vtkHierarchicalBoxDataSetInternal;
//ETX
class vtkDataObject;
class vtkInformationIdTypeKey;
class vtkUniformGrid;
class vtkAMRBox;
class VTK_FILTERING_EXPORT vtkHierarchicalBoxDataSet : public vtkHierarchicalDataSet
{
public:
static vtkHierarchicalBoxDataSet *New();
vtkTypeRevisionMacro(vtkHierarchicalBoxDataSet,vtkHierarchicalDataSet);
void PrintSelf(ostream& os, vtkIndent indent);
// Description:
// Return class name of data type (see vtkSystemIncludes.h for
// definitions).
virtual int GetDataObjectType() {return VTK_HIERARCHICAL_BOX_DATA_SET;}
//BTX
// 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,
vtkAMRBox& box,
vtkUniformGrid* dataSet);
void SetDataSet(unsigned int level, unsigned int id, vtkDataObject* dataSet)
{
this->Superclass::SetDataSet(level, id, dataSet);
}
// Description:
// Get a dataset give a level and an id.
vtkUniformGrid* GetDataSet(unsigned int level,
unsigned int id,
vtkAMRBox& box);
//ETX
vtkDataObject* GetDataSet(unsigned int level, unsigned int id)
{ return this->Superclass::GetDataSet(level, id); }
vtkDataObject* GetDataSet(vtkInformation* index)
{ return this->Superclass::GetDataSet(index); }
// Description:
// Sets the refinement of a given level.
void SetRefinementRatio(unsigned int level, int refRatio);
// Description:
// Returns the refinement of a given level.
int GetRefinementRatio(unsigned int level);
// Description:
// Blank lower level cells if they are overlapped by higher
// level ones.
void GenerateVisibilityArrays();
// Description:
// Shallow and Deep copy.
virtual void ShallowCopy(vtkDataObject *src);
virtual void DeepCopy(vtkDataObject *src);
static vtkInformationIntegerVectorKey* BOX();
static vtkInformationIdTypeKey* NUMBER_OF_BLANKED_POINTS();
// Description:
// Returns the total number of points of all blocks. This will
// iterate over all blocks and call GetNumberOfPoints() so it
// might be expansive. Does not include the number of blanked
// points.
virtual vtkIdType GetNumberOfPoints();
protected:
vtkHierarchicalBoxDataSet();
~vtkHierarchicalBoxDataSet();
vtkHierarchicalBoxDataSetInternal* BoxInternal;
private:
vtkHierarchicalBoxDataSet(const vtkHierarchicalBoxDataSet&); // Not implemented.
void operator=(const vtkHierarchicalBoxDataSet&); // Not implemented.
};
#endif