vtkSpanSpace Class Reference

organize data according to scalar span space More...

`#include <vtkSpanSpace.h>`

Inheritance diagram for vtkSpanSpace:
[legend]
Collaboration diagram for vtkSpanSpace:
[legend]

## Public Types

typedef vtkScalarTree | Superclass
| Standard type related macros and PrintSelf() method. More...
Public Types inherited from vtkScalarTree
typedef vtkObject | Superclass
| Standard type related macros and PrintSelf() method. More...

## Public Member Functions

virtual vtkTypeBool | IsA (const char *type)
| Return 1 if this class is the same type of (or a subclass of) the named class. More...
vtkSpanSpace * | NewInstance () const
void | PrintSelf (ostream &os, vtkIndent indent) override
| Methods invoked by print to print information about the object including superclasses. More...
void | ShallowCopy (vtkScalarTree *stree) override
| This method is used to copy data members when cloning an instance of the class. More...
virtual void | SetScalarRange (double, double)
| Specify the scalar range in terms of minimum and maximum values (smin,smax). More...
void | SetScalarRange (double[2])
virtual double * | GetScalarRange ()
virtual void | GetScalarRange (double data[2])
virtual void | SetComputeScalarRange (vtkTypeBool)
| This boolean controls whether the determination of the scalar range is computed from the input scalar data. More...
virtual vtkTypeBool | GetComputeScalarRange ()
virtual void | ComputeScalarRangeOn ()
virtual void | ComputeScalarRangeOff ()
virtual void | SetResolution (vtkIdType)
| Set/Get the resolution N of the span space. More...
virtual vtkIdType | GetResolution ()
virtual void | SetComputeResolution (vtkTypeBool)
| Boolean controls whether the resolution of span space is computed automatically from the average number of cells falling in each bucket. More...
virtual vtkTypeBool | GetComputeResolution ()
virtual void | ComputeResolutionOn ()
virtual void | ComputeResolutionOff ()
virtual void | SetNumberOfCellsPerBucket (int)
| Specify the average number of cells in each bucket. More...
virtual int | GetNumberOfCellsPerBucket ()
void | Initialize () override
| Initialize the span space. More...
void | BuildTree () override
| Construct the scalar tree from the dataset provided. More...
void | InitTraversal (double scalarValue) override
| Begin to traverse the cells based on a scalar value. More...
vtkCell * | GetNextCell (vtkIdType &cellId, vtkIdList *&ptIds, vtkDataArray *cellScalars) override
| Return the next cell that may contain scalar value specified to InitTraversal(). More...
vtkIdType | GetNumberOfCellBatches (double scalarValue) override
| Get the number of cell batches available for processing as a function of the specified scalar value. More...
const vtkIdType * | GetCellBatch (vtkIdType batchNum, vtkIdType &numCells) override
| Return the array of cell ids in the specified batch. More...
virtual void | SetBatchSize (vtkIdType)
| Set/Get the size of the cell batches when processing in parallel. More...
virtual vtkIdType | GetBatchSize ()
Public Member Functions inherited from vtkScalarTree
vtkScalarTree * | NewInstance () const
virtual void | SetDataSet (vtkDataSet *)
| Build the tree from the points/cells and scalars defining this dataset. More...
virtual vtkDataSet * | GetDataSet ()
virtual void | SetScalars (vtkDataArray *)
| Build the tree from the points/cells and scalars defining the dataset and scalars provided. More...
virtual vtkDataArray * | GetScalars ()
double | GetScalarValue ()
| Return the current scalar value over which tree traversal is proceeding. More...
Public Member Functions inherited from vtkObject
| vtkBaseTypeMacro (vtkObject, vtkObjectBase)
virtual void | DebugOn ()
| Turn debugging output on. More...
virtual void | DebugOff ()
| Turn debugging output off. More...
bool | GetDebug ()
| Get the value of the debug flag. More...
void | SetDebug (bool debugFlag)
| Set the value of the debug flag. More...
virtual void | Modified ()
| Update the modification time for this object. More...
virtual vtkMTimeType | GetMTime ()
| Return this object's modified time. More...
unsigned long | AddObserver (unsigned long event, vtkCommand *, float priority=0.0f)
| Allow people to add/remove/invoke observers (callbacks) to any VTK object. More...
unsigned long | AddObserver (const char *event, vtkCommand *, float priority=0.0f)
vtkCommand * | GetCommand (unsigned long tag)
void | RemoveObserver (vtkCommand *)
void | RemoveObservers (unsigned long event, vtkCommand *)
void | RemoveObservers (const char *event, vtkCommand *)
vtkTypeBool | HasObserver (unsigned long event, vtkCommand *)
vtkTypeBool | HasObserver (const char *event, vtkCommand *)
void | RemoveObserver (unsigned long tag)
void | RemoveObservers (unsigned long event)
void | RemoveObservers (const char *event)
void | RemoveAllObservers ()
vtkTypeBool | HasObserver (unsigned long event)
vtkTypeBool | HasObserver (const char *event)
template<class U , class T >
unsigned long | AddObserver (unsigned long event, U observer, void(T::*callback)(), float priority=0.0f)
| Overloads to AddObserver that allow developers to add class member functions as callbacks for events. More...
template<class U , class T >
unsigned long | AddObserver (unsigned long event, U observer, void(T::*callback)(vtkObject *, unsigned long, void *), float priority=0.0f)
template<class U , class T >
unsigned long | AddObserver (unsigned long event, U observer, bool(T::*callback)(vtkObject *, unsigned long, void *), float priority=0.0f)
| Allow user to set the AbortFlagOn() with the return value of the callback method. More...
int | InvokeEvent (unsigned long event, void *callData)
| This method invokes an event and return whether the event was aborted or not. More...
int | InvokeEvent (const char *event, void *callData)
int | InvokeEvent (unsigned long event)
int | InvokeEvent (const char *event)
Public Member Functions inherited from vtkObjectBase
const char * | GetClassName () const
| Return the class name as a string. More...
virtual vtkIdType | GetNumberOfGenerationsFromBase (const char *name)
| Given a the name of a base class of this class type, return the distance of inheritance between this class type and the named class (how many generations of inheritance are there between this class and the named class). More...
virtual void | Delete ()
| Delete a VTK object. More...
virtual void | FastDelete ()
| Delete a reference to this object. More...
void | InitializeObjectBase ()
void | Print (ostream &os)
| Print an object to an ostream. More...
virtual void | PrintHeader (ostream &os, vtkIndent indent)
virtual void | PrintTrailer (ostream &os, vtkIndent indent)
virtual void | Register (vtkObjectBase *o)
| Increase the reference count (mark as used by another object). More...
virtual void | UnRegister (vtkObjectBase *o)
| Decrease the reference count (release by another object). More...
int | GetReferenceCount ()
| Return the current reference count of this object. More...
void | SetReferenceCount (int)
| Sets the reference count. More...
void | PrintRevisions (ostream &)
| Legacy. More...

## Static Public Member Functions

static vtkSpanSpace * | New ()
| Instantiate a scalar tree with default resolution of 100 and automatic scalar range computation. More...
static vtkTypeBool | IsTypeOf (const char *type)
static vtkSpanSpace * | SafeDownCast (vtkObjectBase *o)
Static Public Member Functions inherited from vtkScalarTree
static vtkTypeBool | IsTypeOf (const char *type)
static vtkScalarTree * | SafeDownCast (vtkObjectBase *o)
Static Public Member Functions inherited from vtkObject
static vtkObject * | New ()
| Create an object with Debug turned off, modified time initialized to zero, and reference counting on. More...
static void | BreakOnError ()
| This method is called when vtkErrorMacro executes. More...
static void | SetGlobalWarningDisplay (int val)
| This is a global flag that controls whether any debug, warning or error messages are displayed. More...
static void | GlobalWarningDisplayOn ()
static void | GlobalWarningDisplayOff ()
static int | GetGlobalWarningDisplay ()
Static Public Member Functions inherited from vtkObjectBase
static vtkTypeBool | IsTypeOf (const char *name)
| Return 1 if this class type is the same type of (or a subclass of) the named class. More...
static vtkIdType | GetNumberOfGenerationsFromBaseType (const char *name)
| Given a the name of a base class of this class type, return the distance of inheritance between this class type and the named class (how many generations of inheritance are there between this class and the named class). More...
static vtkObjectBase * | New ()
| Create an object with Debug turned off, modified time initialized to zero, and reference counting on. More...

## Protected Member Functions

virtual vtkObjectBase * | NewInstanceInternal () const
| vtkSpanSpace ()
| ~vtkSpanSpace () override
Protected Member Functions inherited from vtkScalarTree
| vtkScalarTree ()
| ~vtkScalarTree () override
Protected Member Functions inherited from vtkObject
| vtkObject ()
| ~vtkObject () override
void | RegisterInternal (vtkObjectBase *, vtkTypeBool check) override
void | UnRegisterInternal (vtkObjectBase *, vtkTypeBool check) override
void | InternalGrabFocus (vtkCommand *mouseEvents, vtkCommand *keypressEvents=nullptr)
| These methods allow a command to exclusively grab all events. More...
void | InternalReleaseFocus ()
Protected Member Functions inherited from vtkObjectBase
| vtkObjectBase ()
virtual | ~vtkObjectBase ()
virtual void | CollectRevisions (ostream &)
virtual void | ReportReferences (vtkGarbageCollector *)
| vtkObjectBase (const vtkObjectBase &)
void | operator= (const vtkObjectBase &)

## Protected Attributes

double | ScalarRange [2]
vtkTypeBool | ComputeScalarRange
vtkIdType | Resolution
vtkTypeBool | ComputeResolution
int | NumberOfCellsPerBucket
vtkInternalSpanSpace * | SpanSpace
vtkIdType | BatchSize
Protected Attributes inherited from vtkScalarTree
vtkDataSet * | DataSet
vtkDataArray * | Scalars
double | ScalarValue
vtkTimeStamp | BuildTime
Protected Attributes inherited from vtkObject
bool | Debug
vtkTimeStamp | MTime
vtkSubjectHelper * | SubjectHelper
Protected Attributes inherited from vtkObjectBase
std::atomic< int32_t > | ReferenceCount
vtkWeakPointerBase ** | WeakPointers

## Detailed Description

organize data according to scalar span space

This is a helper class used to accelerate contouring operations. Given an dataset, it organizes the dataset cells into a 2D binned space, with coordinate axes (scalar_min,scalar_max). This so-called span space can then be traversed quickly to find the cells that intersect a specified contour value.

This class has an API that supports both serial and parallel operation. The parallel API enables the using class to grab arrays (or batches) of cells that lie along a particular row in the span space. These arrays can then be processed separately or in parallel.

Learn more about span space in these two publications: 1) "A Near Optimal Isosorface Extraction Algorithm Using the Span Space." Yarden Livnat et al. and 2) Isosurfacing in Span Space with Utmost Efficiency." Han-Wei Shen et al.

See also
  vtkScalarTree vtkSimpleScalarTree

Definition at line 48 of file vtkSpanSpace.h.

## Member Typedef Documentation

## Superclass

typedef vtkScalarTree vtkSpanSpace::Superclass

Standard type related macros and PrintSelf() method.

Definition at line 61 of file vtkSpanSpace.h.

## Constructor & Destructor Documentation

## vtkSpanSpace()

vtkSpanSpace::vtkSpanSpace | ( |  | ) |

protected

## ~vtkSpanSpace()

vtkSpanSpace::~vtkSpanSpace | ( |  | ) |

override protected

## Member Function Documentation

## New()

static vtkSpanSpace* vtkSpanSpace::New | ( |  | ) |

static

Instantiate a scalar tree with default resolution of 100 and automatic scalar range computation.

## IsTypeOf()

static vtkTypeBool vtkSpanSpace::IsTypeOf | ( | const char * | type | ) |

static

## IsA()

virtual vtkTypeBool vtkSpanSpace::IsA | ( | const char * | name | ) |

virtual

Return 1 if this class is the same type of (or a subclass of) the named class.

Returns 0 otherwise. This method works in combination with vtkTypeMacro found in vtkSetGet.h.

Reimplemented from vtkScalarTree.

## SafeDownCast()

static vtkSpanSpace* vtkSpanSpace::SafeDownCast | ( | vtkObjectBase * | o | ) |

static

## NewInstanceInternal()

virtual vtkObjectBase* vtkSpanSpace::NewInstanceInternal | ( |  | ) | const

protected virtual

Reimplemented from vtkScalarTree.

## NewInstance()

vtkSpanSpace* vtkSpanSpace::NewInstance | ( |  | ) | const

## PrintSelf()

void vtkSpanSpace::PrintSelf | ( | ostream & | os,
|  | vtkIndent | indent
| ) |  |

override virtual

Methods invoked by print to print information about the object including superclasses.

Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.

Reimplemented from vtkScalarTree.

## ShallowCopy()

void vtkSpanSpace::ShallowCopy | ( | vtkScalarTree * | stree | ) |

override virtual

This method is used to copy data members when cloning an instance of the class.

It does not copy heavy data.

Reimplemented from vtkScalarTree.

## SetScalarRange() [1/2]

virtual void vtkSpanSpace::SetScalarRange | ( | double | ,
|  | double |
| ) |  |

virtual

Specify the scalar range in terms of minimum and maximum values (smin,smax).

These values are used to build the span space. Note that setting the range can have significant impact on the performance of the span space as it controls the effective resolution near important isocontour values. By default the range is computed automatically; turn off ComputeScalarRange is you wish to manually specify it.

## SetScalarRange() [2/2]

void vtkSpanSpace::SetScalarRange | ( | double | [2] | ) |

## GetScalarRange() [1/2]

virtual double* vtkSpanSpace::GetScalarRange | ( |  | ) |

virtual

## GetScalarRange() [2/2]

virtual void vtkSpanSpace::GetScalarRange | ( | double | data[2] | ) |

virtual

## SetComputeScalarRange()

virtual void vtkSpanSpace::SetComputeScalarRange | ( | vtkTypeBool |  | ) |

virtual

This boolean controls whether the determination of the scalar range is computed from the input scalar data.

By default this is enabled.

## GetComputeScalarRange()

virtual vtkTypeBool vtkSpanSpace::GetComputeScalarRange | ( |  | ) |

virtual

## ComputeScalarRangeOn()

virtual void vtkSpanSpace::ComputeScalarRangeOn | ( |  | ) |

virtual

## ComputeScalarRangeOff()

virtual void vtkSpanSpace::ComputeScalarRangeOff | ( |  | ) |

virtual

## SetResolution()

virtual void vtkSpanSpace::SetResolution | ( | vtkIdType |  | ) |

virtual

Set/Get the resolution N of the span space.

The span space can be envisioned as a rectangular lattice of NXN buckets/bins (i.e., N rows and N columns), where each bucket stores a list of cell ids. The i-j coordinate of each cell (hence its location in the lattice) is determined from the cell's 2-tuple (smin,smax) scalar range. By default Resolution = 100, with a clamp of 10,000.

## GetResolution()

virtual vtkIdType vtkSpanSpace::GetResolution | ( |  | ) |

virtual

## SetComputeResolution()

virtual void vtkSpanSpace::SetComputeResolution | ( | vtkTypeBool |  | ) |

virtual

Boolean controls whether the resolution of span space is computed automatically from the average number of cells falling in each bucket.

## GetComputeResolution()

virtual vtkTypeBool vtkSpanSpace::GetComputeResolution | ( |  | ) |

virtual

## ComputeResolutionOn()

virtual void vtkSpanSpace::ComputeResolutionOn | ( |  | ) |

virtual

## ComputeResolutionOff()

virtual void vtkSpanSpace::ComputeResolutionOff | ( |  | ) |

virtual

## SetNumberOfCellsPerBucket()

virtual void vtkSpanSpace::SetNumberOfCellsPerBucket | ( | int |  | ) |

virtual

Specify the average number of cells in each bucket.

This is used to indirectly control the resolution if ComputeResolution is enabled.

## GetNumberOfCellsPerBucket()

virtual int vtkSpanSpace::GetNumberOfCellsPerBucket | ( |  | ) |

virtual

## Initialize()

void vtkSpanSpace::Initialize | ( |  | ) |

override virtual

Initialize the span space.

Frees memory and resets object as appropriate.

Implements vtkScalarTree.

## BuildTree()

void vtkSpanSpace::BuildTree | ( |  | ) |

override virtual

Construct the scalar tree from the dataset provided.

Checks build times and modified time from input and reconstructs the tree if necessary.

Implements vtkScalarTree.

## InitTraversal()

void vtkSpanSpace::InitTraversal | ( | double | scalarValue | ) |

override virtual

Begin to traverse the cells based on a scalar value.

Returned cells will have scalar values that span the scalar value specified (within the resolution of the span space). Note this method must be called prior to parallel or serial traversal since it specifies the scalar value to be extracted.

Implements vtkScalarTree.

## GetNextCell()

vtkCell* vtkSpanSpace::GetNextCell | ( | vtkIdType & | cellId,
|  | vtkIdList *& | ptIds,
|  | vtkDataArray * | cellScalars
| ) |  |

override virtual

Return the next cell that may contain scalar value specified to InitTraversal().

The value nullptr is returned if the list is exhausted. Make sure that InitTraversal() has been invoked first or you'll get undefined behavior. This is inherently a serial operation.

Implements vtkScalarTree.

## GetNumberOfCellBatches()

vtkIdType vtkSpanSpace::GetNumberOfCellBatches | ( | double | scalarValue | ) |

override virtual

Get the number of cell batches available for processing as a function of the specified scalar value.

Each batch contains a list of candidate cells that may contain the specified isocontour value.

Implements vtkScalarTree.

## GetCellBatch()

const vtkIdType* vtkSpanSpace::GetCellBatch | ( | vtkIdType | batchNum,
|  | vtkIdType & | numCells
| ) |  |

override virtual

Return the array of cell ids in the specified batch.

The method also returns the number of cell ids in the array. Make sure to call GetNumberOfCellBatches() beforehand.

Implements vtkScalarTree.

## SetBatchSize()

virtual void vtkSpanSpace::SetBatchSize | ( | vtkIdType |  | ) |

virtual

Set/Get the size of the cell batches when processing in parallel.

By default the batch size = 100 cells in each batch.

## GetBatchSize()

virtual vtkIdType vtkSpanSpace::GetBatchSize | ( |  | ) |

virtual

## Member Data Documentation

## ScalarRange

double vtkSpanSpace::ScalarRange[2]

protected

Definition at line 193 of file vtkSpanSpace.h.

## ComputeScalarRange

vtkTypeBool vtkSpanSpace::ComputeScalarRange

protected

Definition at line 194 of file vtkSpanSpace.h.

## Resolution

vtkIdType vtkSpanSpace::Resolution

protected

Definition at line 195 of file vtkSpanSpace.h.

## ComputeResolution

vtkTypeBool vtkSpanSpace::ComputeResolution

protected

Definition at line 196 of file vtkSpanSpace.h.

## NumberOfCellsPerBucket

int vtkSpanSpace::NumberOfCellsPerBucket

protected

Definition at line 197 of file vtkSpanSpace.h.

## SpanSpace

vtkInternalSpanSpace* vtkSpanSpace::SpanSpace

protected

Definition at line 198 of file vtkSpanSpace.h.

## BatchSize

vtkIdType vtkSpanSpace::BatchSize

protected

Definition at line 199 of file vtkSpanSpace.h.

The documentation for this class was generated from the following file:

- Common/ExecutionModel/vtkSpanSpace.h