NAME
vtkScalarTree - organize data according to scalar values (used to accelerate contouring operations)
SYNOPSIS
#include "/opt/vtk-c++/graphics/vtkScalarTree.h"
class VTK_EXPORT vtkScalarTree : public vtkObject
vtkScalarTree();
~vtkScalarTree();
static vtkScalarTree *New() {return new vtkScalarTree;};
const char *GetClassName() {return "vtkScalarTree";};
void PrintSelf(ostream& os, vtkIndent indent);
void SetDataSet(vtkDataSet*);
void SetDataSet(vtkDataSet& );
vtkDataSet *GetDataSet();
void SetBranchingFactor(int);
int GetBranchingFactor();
int GetLevel();
void SetMaxLevel(int);
int GetMaxLevel();
void BuildTree();
void Initialize();
void InitTraversal(float scalarValue);
vtkCell *GetNextCell(int& cellId, vtkIdList* &ptIds,
vtkFloatScalars& cellScalars);
DESCRIPTION
vtkScalarTree creates a pointerless binary tree that helps search for cells that lie within a particular scalar range. This object is used to accelerate some contouring (and other scalar-baed techniques).
The tree consists of an array of (min,max) scalar range pairs per node in the tree. The (min,max) range is determined from looking at the range of the children of the tree node. If the node is a leaf, then the range is determined by scanning the range of scalar data in n cells in the dataset. The n cells are determined by arbitrary selecting cell ids from id(i) to id(i+n), and where n is specified using the BranchingFactor ivar. Note that leaf node i=0 contains the scalar range computed from cell ids (0,n-1); leaf node i=1 contains the range from cell ids (n,2n-1); and so on. The implication is that there are no direct lists of cell ids per leaf node, instead the cell ids are implicitly known.
TYPE DEFINITIONS
struct _vtkScalarRange
SUMMARY
void SetDataSet(vtkDataSet*) void SetDataSet(vtkDataSet& )
Build the tree from the points/cells defining this dataset.
void SetBranchingFactor(int)
Set the branching factor for the tree. This is the number of children per tree node. Smaller values (minimum is 2) mean deeper trees and more memory overhead. Larger values mean shallower trees, less memory usage, but worse performance.
int GetLevel()
Get the level of the locator (determined automatically if Automatic is true). The value of this ivar may change each time the locator is built.
void SetMaxLevel(int)
Set the maximum allowable level for the tree.
vtkScalarTree()
Instantiate scalar tree with maximum level of 20 and branching factor of 5.
void Initialize()
Initialize locator. Frees memory and resets object as appropriate.
void BuildTree()
Construct the scalar tree from the dataset provided. Checks build times and modified time from input and reconstructs the tree if necessaery.
void InitTraversal(float scalarValue)
Begin to traverse the cells based on a scalar value. Returned cells will have scalar values that span the scalar value specified.
vtkCell *GetNextCell(int& cellId, vtkIdList* &cellPts,
vtkFloatScalars&
cellScalars)
Return the next cell that may contain scalar value specified to initialize traversal. The value NULL is returned if the list is exhausted. Make sure that InitTraversal() has been invoked first or you'll get
erratic behavior.