|
virtual int | IsA (const char *type) |
|
vtkHyperOctree * | NewInstance () const |
|
void | PrintSelf (ostream &os, vtkIndent indent) |
|
int | GetDataObjectType () |
|
void | CopyStructure (vtkDataSet *ds) |
|
int | GetDimension () |
|
void | SetDimension (int dim) |
|
vtkIdType | GetNumberOfCells () |
|
vtkIdType | GetNumberOfLeaves () |
|
vtkIdType | GetNumberOfPoints () |
|
vtkIdType | GetMaxNumberOfPoints (int level) |
|
vtkIdType | GetMaxNumberOfPointsOnBoundary (int level) |
|
vtkIdType | GetMaxNumberOfCellsOnBoundary (int level) |
|
vtkIdType | GetNumberOfLevels () |
|
vtkHyperOctreeCursor * | NewCellCursor () |
|
void | SubdivideLeaf (vtkHyperOctreeCursor *leaf) |
|
void | CollapseTerminalNode (vtkHyperOctreeCursor *node) |
|
virtual double * | GetPoint (vtkIdType ptId) |
|
virtual void | GetPoint (vtkIdType id, double x[3]) |
|
virtual vtkCell * | GetCell (vtkIdType cellId) |
|
virtual void | GetCell (vtkIdType cellId, vtkGenericCell *cell) |
|
virtual int | GetCellType (vtkIdType cellId) |
|
virtual void | GetPointCells (vtkIdType ptId, vtkIdList *cellIds) |
|
virtual vtkIdType | FindPoint (double x[3]) |
|
void | Initialize () |
|
virtual int | GetMaxCellSize () |
|
vtkDataSetAttributes * | GetLeafData () |
|
unsigned long | GetActualMemorySize () |
|
|
virtual void | SetSize (double, double, double) |
|
virtual void | SetSize (double[3]) |
|
|
virtual double * | GetSize () |
|
virtual void | GetSize (double &, double &, double &) |
|
virtual void | GetSize (double[3]) |
|
|
virtual void | SetOrigin (double, double, double) |
|
virtual void | SetOrigin (double[3]) |
|
virtual double * | GetOrigin () |
|
virtual void | GetOrigin (double &, double &, double &) |
|
virtual void | GetOrigin (double[3]) |
|
|
virtual void | GetCellPoints (vtkIdType cellId, vtkIdList *ptIds) |
|
virtual void | GetCellPoints (vtkIdType cellId, vtkIdType &npts, vtkIdType *&pts) |
|
|
virtual void | GetCellNeighbors (vtkIdType cellId, vtkIdList *ptIds, vtkIdList *cellIds) |
|
|
virtual vtkIdType | FindCell (double x[3], vtkCell *cell, vtkIdType cellId, double tol2, int &subId, double pcoords[3], double *weights) |
|
|
virtual vtkIdType | FindCell (double x[3], vtkCell *cell, vtkGenericCell *gencell, vtkIdType cellId, double tol2, int &subId, double pcoords[3], double *weights) |
|
|
void | ShallowCopy (vtkDataObject *src) |
|
void | DeepCopy (vtkDataObject *src) |
|
|
void | GetPointsOnFace (vtkHyperOctreeCursor *sibling, int face, int level, vtkHyperOctreePointsGrabber *grabber) |
|
|
void | GetPointsOnParentFaces (int faces[3], int level, vtkHyperOctreeCursor *cursor, vtkHyperOctreePointsGrabber *grabber) |
|
|
void | GetPointsOnEdge (vtkHyperOctreeCursor *sibling, int level, int axis, int k, int j, vtkHyperOctreePointsGrabber *grabber) |
|
|
void | GetPointsOnParentEdge (vtkHyperOctreeCursor *cursor, int level, int axis, int k, int j, vtkHyperOctreePointsGrabber *grabber) |
|
|
void | GetPointsOnEdge2D (vtkHyperOctreeCursor *sibling, int edge, int level, vtkHyperOctreePointsGrabber *grabber) |
|
|
void | GetPointsOnParentEdge2D (vtkHyperOctreeCursor *cursor, int edge, int level, vtkHyperOctreePointsGrabber *grabber) |
|
|
void | SetDualGridFlag (int flag) |
|
virtual int | GetDualGridFlag () |
|
vtkDataSet * | NewInstance () const |
|
virtual void | CopyAttributes (vtkDataSet *ds) |
|
virtual vtkCellIterator * | NewCellIterator () |
|
virtual void | GetCellBounds (vtkIdType cellId, double bounds[6]) |
|
virtual void | GetCellTypes (vtkCellTypes *types) |
|
unsigned long int | GetMTime () |
|
vtkCellData * | GetCellData () |
|
vtkPointData * | GetPointData () |
|
virtual void | Squeeze () |
|
double * | GetBounds () |
|
void | GetBounds (double bounds[6]) |
|
double * | GetCenter () |
|
void | GetCenter (double center[3]) |
|
double | GetLength () |
|
virtual void | GetScalarRange (double range[2]) |
|
double * | GetScalarRange () |
|
int | CheckAttributes () |
|
virtual vtkFieldData * | GetAttributesAsFieldData (int type) |
|
virtual vtkIdType | GetNumberOfElements (int type) |
|
bool | HasAnyGhostCells () |
|
bool | HasAnyGhostPoints () |
|
vtkUnsignedCharArray * | GetPointGhostArray () |
|
void | UpdatePointGhostArrayCache () |
|
vtkUnsignedCharArray * | AllocatePointGhostArray () |
|
vtkUnsignedCharArray * | GetCellGhostArray () |
|
void | UpdateCellGhostArrayCache () |
|
vtkUnsignedCharArray * | AllocateCellGhostArray () |
|
vtkIdType | FindPoint (double x, double y, double z) |
|
virtual vtkCell * | FindAndGetCell (double x[3], vtkCell *cell, vtkIdType cellId, double tol2, int &subId, double pcoords[3], double *weights) |
|
virtual void | GenerateGhostArray (int zeroExt[6]) |
|
virtual void | GenerateGhostArray (int zeroExt[6], bool cellOnly) |
|
virtual bool | HasAnyBlankCells () |
|
virtual bool | HasAnyBlankPoints () |
|
vtkDataObject * | NewInstance () const |
|
void | ReleaseData () |
|
unsigned long | GetUpdateTime () |
|
virtual void | CopyInformationToPipeline (vtkInformation *vtkNotUsed(info)) |
|
void | DataHasBeenGenerated () |
|
virtual void | PrepareForNewData () |
|
virtual int | GetExtentType () |
|
virtual void | Crop (const int *updateExtent) |
|
virtual vtkDataSetAttributes * | GetAttributes (int type) |
|
virtual int | GetAttributeTypeForArray (vtkAbstractArray *arr) |
|
virtual vtkInformation * | GetInformation () |
|
virtual void | SetInformation (vtkInformation *) |
|
virtual int | GetDataReleased () |
|
virtual void | SetFieldData (vtkFieldData *) |
|
virtual vtkFieldData * | GetFieldData () |
|
virtual void | CopyInformationFromPipeline (vtkInformation *vtkNotUsed(info)) |
|
void | GlobalReleaseDataFlagOn () |
|
void | GlobalReleaseDataFlagOff () |
|
vtkObject * | NewInstance () const |
|
virtual void | DebugOn () |
|
virtual void | DebugOff () |
|
bool | GetDebug () |
|
void | SetDebug (bool debugFlag) |
|
virtual void | Modified () |
|
unsigned long | AddObserver (unsigned long event, vtkCommand *, float priority=0.0f) |
|
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 *) |
|
int | HasObserver (unsigned long event, vtkCommand *) |
|
int | HasObserver (const char *event, vtkCommand *) |
|
void | RemoveObserver (unsigned long tag) |
|
void | RemoveObservers (unsigned long event) |
|
void | RemoveObservers (const char *event) |
|
void | RemoveAllObservers () |
|
int | HasObserver (unsigned long event) |
|
int | HasObserver (const char *event) |
|
template<class U , class T > |
unsigned long | AddObserver (unsigned long event, U observer, void(T::*callback)(), float priority=0.0f) |
|
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) |
|
int | InvokeEvent (unsigned long event, void *callData) |
|
int | InvokeEvent (const char *event, void *callData) |
|
int | InvokeEvent (unsigned long event) |
|
int | InvokeEvent (const char *event) |
|
const char * | GetClassName () const |
|
virtual void | Delete () |
|
virtual void | FastDelete () |
|
void | Print (ostream &os) |
|
virtual void | Register (vtkObjectBase *o) |
|
virtual void | UnRegister (vtkObjectBase *o) |
|
void | SetReferenceCount (int) |
|
void | PrintRevisions (ostream &) |
|
virtual void | PrintHeader (ostream &os, vtkIndent indent) |
|
virtual void | PrintTrailer (ostream &os, vtkIndent indent) |
|
int | GetReferenceCount () |
|
|
static vtkInformationIntegerKey * | LEVELS () |
|
static vtkInformationIntegerKey * | DIMENSION () |
|
static vtkInformationDoubleVectorKey * | SIZES () |
|
static vtkHyperOctree * | New () |
|
static int | IsTypeOf (const char *type) |
|
static vtkHyperOctree * | SafeDownCast (vtkObjectBase *o) |
|
|
static vtkHyperOctree * | GetData (vtkInformation *info) |
|
static vtkHyperOctree * | GetData (vtkInformationVector *v, int i=0) |
|
static int | IsTypeOf (const char *type) |
|
static vtkDataSet * | SafeDownCast (vtkObjectBase *o) |
|
static vtkDataSet * | GetData (vtkInformation *info) |
|
static vtkDataSet * | GetData (vtkInformationVector *v, int i=0) |
|
static vtkDataObject * | New () |
|
static int | IsTypeOf (const char *type) |
|
static vtkDataObject * | SafeDownCast (vtkObjectBase *o) |
|
static const char * | GetAssociationTypeAsString (int associationType) |
|
static int | GetAssociationTypeFromString (const char *associationType) |
|
static vtkInformationStringKey * | DATA_TYPE_NAME () |
|
static vtkInformationDataObjectKey * | DATA_OBJECT () |
|
static vtkInformationIntegerKey * | DATA_EXTENT_TYPE () |
|
static vtkInformationIntegerPointerKey * | DATA_EXTENT () |
|
static vtkInformationIntegerVectorKey * | ALL_PIECES_EXTENT () |
|
static vtkInformationIntegerKey * | DATA_PIECE_NUMBER () |
|
static vtkInformationIntegerKey * | DATA_NUMBER_OF_PIECES () |
|
static vtkInformationIntegerKey * | DATA_NUMBER_OF_GHOST_LEVELS () |
|
static vtkInformationDoubleKey * | DATA_TIME_STEP () |
|
static vtkInformationInformationVectorKey * | POINT_DATA_VECTOR () |
|
static vtkInformationInformationVectorKey * | CELL_DATA_VECTOR () |
|
static vtkInformationInformationVectorKey * | VERTEX_DATA_VECTOR () |
|
static vtkInformationInformationVectorKey * | EDGE_DATA_VECTOR () |
|
static vtkInformationIntegerKey * | FIELD_ARRAY_TYPE () |
|
static vtkInformationIntegerKey * | FIELD_ASSOCIATION () |
|
static vtkInformationIntegerKey * | FIELD_ATTRIBUTE_TYPE () |
|
static vtkInformationIntegerKey * | FIELD_ACTIVE_ATTRIBUTE () |
|
static vtkInformationIntegerKey * | FIELD_NUMBER_OF_COMPONENTS () |
|
static vtkInformationIntegerKey * | FIELD_NUMBER_OF_TUPLES () |
|
static vtkInformationIntegerKey * | FIELD_OPERATION () |
|
static vtkInformationDoubleVectorKey * | FIELD_RANGE () |
|
static vtkInformationIntegerVectorKey * | PIECE_EXTENT () |
|
static vtkInformationStringKey * | FIELD_NAME () |
|
static vtkInformationDoubleVectorKey * | ORIGIN () |
|
static vtkInformationDoubleVectorKey * | SPACING () |
|
static vtkInformationDoubleVectorKey * | BOUNDING_BOX () |
|
static vtkInformationDataObjectKey * | SIL () |
|
static vtkInformation * | GetActiveFieldInformation (vtkInformation *info, int fieldAssociation, int attributeType) |
|
static vtkInformation * | GetNamedFieldInformation (vtkInformation *info, int fieldAssociation, const char *name) |
|
static void | RemoveNamedFieldInformation (vtkInformation *info, int fieldAssociation, const char *name) |
|
static vtkInformation * | SetActiveAttribute (vtkInformation *info, int fieldAssociation, const char *attributeName, int attributeType) |
|
static void | SetActiveAttributeInfo (vtkInformation *info, int fieldAssociation, int attributeType, const char *name, int arrayType, int numComponents, int numTuples) |
|
static void | SetPointDataActiveScalarInfo (vtkInformation *info, int arrayType, int numComponents) |
|
static vtkDataObject * | GetData (vtkInformation *info) |
|
static vtkDataObject * | GetData (vtkInformationVector *v, int i=0) |
|
static void | SetGlobalReleaseDataFlag (int val) |
|
static int | GetGlobalReleaseDataFlag () |
|
static int | IsTypeOf (const char *type) |
|
static vtkObject * | SafeDownCast (vtkObjectBase *o) |
|
static vtkObject * | New () |
|
static void | BreakOnError () |
|
static void | SetGlobalWarningDisplay (int val) |
|
static void | GlobalWarningDisplayOn () |
|
static void | GlobalWarningDisplayOff () |
|
static int | GetGlobalWarningDisplay () |
|
static int | IsTypeOf (const char *name) |
|
static vtkObjectBase * | New () |
|
A dataset structured as a tree where each node has exactly 2^n children.
An hyperoctree is a dataset where each node has either exactly 2^n children or no child at all if the node is a leaf. `n' is the dimension of the dataset (1 (binary tree), 2 (quadtree) or 3 (octree) ). The class name comes from the following paper:
@ARTICLE{yau-srihari-1983,
author={Mann-May Yau and Sargur N. Srihari},
title={A Hierarchical Data Structure for Multidimensional Digital Images},
journal={Communications of the ACM},
month={July},
year={1983},
volume={26},
number={7},
pages={504--515}
}
Each node is a cell. Attributes are associated with cells, not with points. The geometry is implicitly given by the size of the root node on each axis and position of the center and the orientation. (TODO: review center position and orientation). The geometry is then not limited to an hybercube but can have a rectangular shape. Attributes are associated with leaves. For LOD (Level-Of-Detail) purpose, attributes can be computed on none-leaf nodes by computing the average values from its children (which can be leaves or not).
By construction, an hyperoctree is efficient in memory usage when the geometry is sparse. The LOD feature allows to cull quickly part of the dataset.
A couple of filters can be applied on this dataset: contour, outline, geometry.
3D case (octree) for each node, each child index (from 0 to 7) is encoded in the following orientation. It is easy to access each child as a cell of a grid. Note also that the binary representation is relevant, each bit code a side: bit 0 encodes -x side (0) or +x side (1) bit 1 encodes -y side (0) or +y side (1) bit 2 encodes -z side (0) or +z side (2)
The cases with fewer dimensions are consistent with the octree case:
Quadtree: in counter-clockwise
Definition at line 142 of file vtkHyperOctree.h.