VTK
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | List of all members
vtkOctreePointLocator Class Reference

an octree spatial decomposition of a set of points More...

#include <vtkOctreePointLocator.h>

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

Public Types

typedef vtkAbstractPointLocator Superclass
 
- Public Types inherited from vtkAbstractPointLocator
typedef vtkLocator Superclass
 
- Public Types inherited from vtkLocator
typedef vtkObject Superclass
 
- Public Types inherited from vtkObject
typedef vtkObjectBase Superclass
 

Public Member Functions

virtual int IsA (const char *type)
 
vtkOctreePointLocatorNewInstance () const
 
void PrintSelf (ostream &os, vtkIndent indent)
 
void GetRegionBounds (int regionID, double bounds[6])
 
void GetRegionDataBounds (int leafNodeID, double bounds[6])
 
int GetRegionContainingPoint (double x, double y, double z)
 
virtual void BuildLocator ()
 
void FindClosestNPoints (int N, const double x[3], vtkIdList *result)
 
vtkIdTypeArrayGetPointsInRegion (int leafNodeId)
 
virtual void FreeSearchStructure ()
 
void GenerateRepresentation (int level, vtkPolyData *pd)
 
void FindPointsInArea (double *area, vtkIdTypeArray *ids, bool clearArray=true)
 
virtual void SetMaximumPointsPerRegion (int)
 
virtual int GetMaximumPointsPerRegion ()
 
virtual void SetCreateCubicOctants (int)
 
virtual int GetCreateCubicOctants ()
 
virtual double GetFudgeFactor ()
 
virtual void SetFudgeFactor (double)
 
virtual doubleGetBounds ()
 
virtual void GetBounds (double *bounds)
 
virtual int GetNumberOfLeafNodes ()
 
virtual vtkIdType FindClosestPoint (const double x[3])
 
vtkIdType FindClosestPoint (double x, double y, double z, double &dist2)
 
virtual vtkIdType FindClosestPointWithinRadius (double radius, const double x[3], double &dist2)
 
vtkIdType FindClosestPointInRegion (int regionId, double *x, double &dist2)
 
vtkIdType FindClosestPointInRegion (int regionId, double x, double y, double z, double &dist2)
 
virtual void FindPointsWithinRadius (double radius, const double x[3], vtkIdList *result)
 
- Public Member Functions inherited from vtkAbstractPointLocator
vtkIdType FindClosestPoint (double x, double y, double z)
 
void FindClosestNPoints (int N, double x, double y, double z, vtkIdList *result)
 
void FindPointsWithinRadius (double R, double x, double y, double z, vtkIdList *result)
 
virtual vtkIdType GetNumberOfBuckets ()
 
vtkAbstractPointLocatorNewInstance () const
 
- Public Member Functions inherited from vtkLocator
virtual void Update ()
 
virtual void Initialize ()
 
virtual void SetDataSet (vtkDataSet *)
 
virtual vtkDataSetGetDataSet ()
 
virtual void SetMaxLevel (int)
 
virtual int GetMaxLevel ()
 
virtual int GetLevel ()
 
virtual void SetAutomatic (int)
 
virtual int GetAutomatic ()
 
virtual void AutomaticOn ()
 
virtual void AutomaticOff ()
 
virtual void SetTolerance (double)
 
virtual double GetTolerance ()
 
virtual unsigned long GetBuildTime ()
 
virtual void Register (vtkObjectBase *o)
 
virtual void UnRegister (vtkObjectBase *o)
 
vtkLocatorNewInstance () const
 
- Public Member Functions inherited from vtkObject
vtkObjectNewInstance () const
 
virtual void DebugOn ()
 
virtual void DebugOff ()
 
bool GetDebug ()
 
void SetDebug (bool debugFlag)
 
virtual void Modified ()
 
virtual unsigned long GetMTime ()
 
unsigned long AddObserver (unsigned long event, vtkCommand *, float priority=0.0f)
 
unsigned long AddObserver (const char *event, vtkCommand *, float priority=0.0f)
 
vtkCommandGetCommand (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)
 
- Public Member Functions inherited from vtkObjectBase
const char * GetClassName () const
 
virtual void Delete ()
 
virtual void FastDelete ()
 
void Print (ostream &os)
 
void SetReferenceCount (int)
 
void PrintRevisions (ostream &)
 
virtual void PrintHeader (ostream &os, vtkIndent indent)
 
virtual void PrintTrailer (ostream &os, vtkIndent indent)
 
int GetReferenceCount ()
 

Static Public Member Functions

static int IsTypeOf (const char *type)
 
static vtkOctreePointLocatorSafeDownCast (vtkObjectBase *o)
 
static vtkOctreePointLocatorNew ()
 
- Static Public Member Functions inherited from vtkAbstractPointLocator
static int IsTypeOf (const char *type)
 
static vtkAbstractPointLocatorSafeDownCast (vtkObjectBase *o)
 
- Static Public Member Functions inherited from vtkLocator
static int IsTypeOf (const char *type)
 
static vtkLocatorSafeDownCast (vtkObjectBase *o)
 
- Static Public Member Functions inherited from vtkObject
static int IsTypeOf (const char *type)
 
static vtkObjectSafeDownCast (vtkObjectBase *o)
 
static vtkObjectNew ()
 
static void BreakOnError ()
 
static void SetGlobalWarningDisplay (int val)
 
static void GlobalWarningDisplayOn ()
 
static void GlobalWarningDisplayOff ()
 
static int GetGlobalWarningDisplay ()
 
- Static Public Member Functions inherited from vtkObjectBase
static int IsTypeOf (const char *name)
 
static vtkObjectBaseNew ()
 

Protected Member Functions

virtual vtkObjectBaseNewInstanceInternal () const
 
 vtkOctreePointLocator ()
 
 ~vtkOctreePointLocator ()
 
void BuildLeafNodeList (vtkOctreePointLocatorNode *node, int &index)
 
void AddAllPointsInRegion (vtkOctreePointLocatorNode *node, vtkIdList *ids)
 
void FindPointsInArea (vtkOctreePointLocatorNode *node, double *area, vtkIdTypeArray *ids)
 
void AddAllPointsInRegion (vtkOctreePointLocatorNode *node, vtkIdTypeArray *ids)
 
void DivideRegion (vtkOctreePointLocatorNode *node, int *ordering, int level)
 
int DivideTest (int size, int level)
 
void AddPolys (vtkOctreePointLocatorNode *node, vtkPoints *pts, vtkCellArray *polys)
 
 vtkOctreePointLocator (const vtkOctreePointLocator &)
 
void operator= (const vtkOctreePointLocator &)
 
int FindRegion (vtkOctreePointLocatorNode *node, float x, float y, float z)
 
int FindRegion (vtkOctreePointLocatorNode *node, double x, double y, double z)
 
void FindPointsWithinRadius (vtkOctreePointLocatorNode *node, double radiusSquared, const double x[3], vtkIdList *ids)
 
int _FindClosestPointInRegion (int leafNodeId, double x, double y, double z, double &dist2)
 
int FindClosestPointInSphere (double x, double y, double z, double radius, int skipRegion, double &dist2)
 
- Protected Member Functions inherited from vtkAbstractPointLocator
 vtkAbstractPointLocator ()
 
virtual ~vtkAbstractPointLocator ()
 
- Protected Member Functions inherited from vtkLocator
 vtkLocator ()
 
 ~vtkLocator ()
 
virtual void ReportReferences (vtkGarbageCollector *)
 
- Protected Member Functions inherited from vtkObject
 vtkObject ()
 
virtual ~vtkObject ()
 
virtual void RegisterInternal (vtkObjectBase *, int check)
 
virtual void UnRegisterInternal (vtkObjectBase *, int check)
 
void InternalGrabFocus (vtkCommand *mouseEvents, vtkCommand *keypressEvents=NULL)
 
void InternalReleaseFocus ()
 
- Protected Member Functions inherited from vtkObjectBase
 vtkObjectBase ()
 
virtual ~vtkObjectBase ()
 
virtual void CollectRevisions (ostream &)
 
 vtkObjectBase (const vtkObjectBase &)
 
void operator= (const vtkObjectBase &)
 

Static Protected Member Functions

static void SetDataBoundsToSpatialBounds (vtkOctreePointLocatorNode *node)
 
static void DeleteAllDescendants (vtkOctreePointLocatorNode *octant)
 

Protected Attributes

vtkOctreePointLocatorNodeTop
 
vtkOctreePointLocatorNode ** LeafNodeList
 
double FudgeFactor
 
int NumberOfLocatorPoints
 
floatLocatorPoints
 
intLocatorIds
 
float MaxWidth
 
int CreateCubicOctants
 
int MaximumPointsPerRegion
 
int NumberOfLeafNodes
 
- Protected Attributes inherited from vtkAbstractPointLocator
double Bounds [6]
 
vtkIdType NumberOfBuckets
 
- Protected Attributes inherited from vtkLocator
vtkDataSetDataSet
 
int Automatic
 
double Tolerance
 
int MaxLevel
 
int Level
 
vtkTimeStamp BuildTime
 
- Protected Attributes inherited from vtkObject
bool Debug
 
vtkTimeStamp MTime
 
vtkSubjectHelper * SubjectHelper
 
- Protected Attributes inherited from vtkObjectBase
vtkAtomicInt32 ReferenceCount
 
vtkWeakPointerBase ** WeakPointers
 

Detailed Description

an octree spatial decomposition of a set of points

Given a vtkDataSet, create an octree that is locally refined such that all leaf octants contain less than a certain amount of points. Note that there is no size constraint that a leaf octant in relation to any of its neighbors.

This class can also generate a PolyData representation of the boundaries of the spatial regions in the decomposition.

See also
vtkLocator vtkPointLocator vtkOctreePointLocatorNode
Tests:
vtkOctreePointLocator (Tests)

Definition at line 51 of file vtkOctreePointLocator.h.

Member Typedef Documentation

Definition at line 54 of file vtkOctreePointLocator.h.

Constructor & Destructor Documentation

vtkOctreePointLocator::vtkOctreePointLocator ( )
protected
vtkOctreePointLocator::~vtkOctreePointLocator ( )
protected
vtkOctreePointLocator::vtkOctreePointLocator ( const vtkOctreePointLocator )
protected

Member Function Documentation

static int vtkOctreePointLocator::IsTypeOf ( const char *  type)
static
virtual int vtkOctreePointLocator::IsA ( const char *  type)
virtual

Standard type and print methods.

Reimplemented from vtkAbstractPointLocator.

static vtkOctreePointLocator* vtkOctreePointLocator::SafeDownCast ( vtkObjectBase o)
static
virtual vtkObjectBase* vtkOctreePointLocator::NewInstanceInternal ( ) const
protectedvirtual

Standard type and print methods.

Reimplemented from vtkAbstractPointLocator.

vtkOctreePointLocator* vtkOctreePointLocator::NewInstance ( ) const
void vtkOctreePointLocator::PrintSelf ( ostream &  os,
vtkIndent  indent 
)
virtual

Standard type and print methods.

Reimplemented from vtkAbstractPointLocator.

static vtkOctreePointLocator* vtkOctreePointLocator::New ( )
static
virtual void vtkOctreePointLocator::SetMaximumPointsPerRegion ( int  )
virtual

Maximum number of points per spatial region. Default is 100.

virtual int vtkOctreePointLocator::GetMaximumPointsPerRegion ( )
virtual

Maximum number of points per spatial region. Default is 100.

virtual void vtkOctreePointLocator::SetCreateCubicOctants ( int  )
virtual

Get/Set macro for CreateCubicOctants.

virtual int vtkOctreePointLocator::GetCreateCubicOctants ( )
virtual

Get/Set macro for CreateCubicOctants.

virtual double vtkOctreePointLocator::GetFudgeFactor ( )
virtual

Some algorithms on octrees require a value that is a very small distance relative to the diameter of the entire space divided by the octree. This factor is the maximum axis-aligned width of the space multiplied by 10e-6.

virtual void vtkOctreePointLocator::SetFudgeFactor ( double  )
virtual

Some algorithms on octrees require a value that is a very small distance relative to the diameter of the entire space divided by the octree. This factor is the maximum axis-aligned width of the space multiplied by 10e-6.

virtual double* vtkOctreePointLocator::GetBounds ( )
virtual

Get the spatial bounds of the entire octree space. Sets bounds array to xmin, xmax, ymin, ymax, zmin, zmax.

Reimplemented from vtkAbstractPointLocator.

virtual void vtkOctreePointLocator::GetBounds ( double bounds)
virtual

Get the spatial bounds of the entire octree space. Sets bounds array to xmin, xmax, ymin, ymax, zmin, zmax.

Reimplemented from vtkAbstractPointLocator.

virtual int vtkOctreePointLocator::GetNumberOfLeafNodes ( )
virtual

The number of leaf nodes of the tree, the spatial regions

void vtkOctreePointLocator::GetRegionBounds ( int  regionID,
double  bounds[6] 
)

Get the spatial bounds of octree region

void vtkOctreePointLocator::GetRegionDataBounds ( int  leafNodeID,
double  bounds[6] 
)

Get the bounds of the data within the leaf node

int vtkOctreePointLocator::GetRegionContainingPoint ( double  x,
double  y,
double  z 
)

Get the id of the leaf region containing the specified location.

virtual void vtkOctreePointLocator::BuildLocator ( )
virtual

Create the octree decomposition of the cells of the data set or data sets. Cells are assigned to octree spatial regions based on the location of their centroids.

Implements vtkAbstractPointLocator.

virtual vtkIdType vtkOctreePointLocator::FindClosestPoint ( const double  x[3])
virtual

Return the Id of the point that is closest to the given point. Set the square of the distance between the two points.

Implements vtkAbstractPointLocator.

vtkIdType vtkOctreePointLocator::FindClosestPoint ( double  x,
double  y,
double  z,
double dist2 
)

Return the Id of the point that is closest to the given point. Set the square of the distance between the two points.

virtual vtkIdType vtkOctreePointLocator::FindClosestPointWithinRadius ( double  radius,
const double  x[3],
double dist2 
)
virtual

Given a position x and a radius r, return the id of the point closest to the point in that radius. dist2 returns the squared distance to the point.

Implements vtkAbstractPointLocator.

vtkIdType vtkOctreePointLocator::FindClosestPointInRegion ( int  regionId,
double x,
double dist2 
)

Find the Id of the point in the given leaf region which is closest to the given point. Return the ID of the point, and set the square of the distance of between the points.

vtkIdType vtkOctreePointLocator::FindClosestPointInRegion ( int  regionId,
double  x,
double  y,
double  z,
double dist2 
)

Find the Id of the point in the given leaf region which is closest to the given point. Return the ID of the point, and set the square of the distance of between the points.

virtual void vtkOctreePointLocator::FindPointsWithinRadius ( double  radius,
const double  x[3],
vtkIdList result 
)
virtual

Find all points within a specified radius of position x. The result is not sorted in any specific manner.

Implements vtkAbstractPointLocator.

void vtkOctreePointLocator::FindClosestNPoints ( int  N,
const double  x[3],
vtkIdList result 
)
virtual

Find the closest N points to a position. This returns the closest N points to a position. A faster method could be created that returned N close points to a position, but not necessarily the exact N closest. The returned points are sorted from closest to farthest. These methods are thread safe if BuildLocator() is directly or indirectly called from a single thread first.

Implements vtkAbstractPointLocator.

vtkIdTypeArray* vtkOctreePointLocator::GetPointsInRegion ( int  leafNodeId)

Get a list of the original IDs of all points in a leaf node.

virtual void vtkOctreePointLocator::FreeSearchStructure ( )
virtual

Delete the octree data structure.

Implements vtkAbstractPointLocator.

void vtkOctreePointLocator::GenerateRepresentation ( int  level,
vtkPolyData pd 
)
virtual

Create a polydata representation of the boundaries of the octree regions.

Implements vtkAbstractPointLocator.

void vtkOctreePointLocator::FindPointsInArea ( double area,
vtkIdTypeArray ids,
bool  clearArray = true 
)

Fill ids with points found in area. The area is a 6-tuple containing (xmin, xmax, ymin, ymax, zmin, zmax). This method will clear the array by default. To append ids to an array, set clearArray to false.

void vtkOctreePointLocator::BuildLeafNodeList ( vtkOctreePointLocatorNode node,
int index 
)
protected
int vtkOctreePointLocator::FindRegion ( vtkOctreePointLocatorNode node,
float  x,
float  y,
float  z 
)
protected

Given a point and a node return the leaf node id that contains the point. The function returns -1 if no nodes contain the point.

int vtkOctreePointLocator::FindRegion ( vtkOctreePointLocatorNode node,
double  x,
double  y,
double  z 
)
protected

Given a point and a node return the leaf node id that contains the point. The function returns -1 if no nodes contain the point.

static void vtkOctreePointLocator::SetDataBoundsToSpatialBounds ( vtkOctreePointLocatorNode node)
staticprotected
static void vtkOctreePointLocator::DeleteAllDescendants ( vtkOctreePointLocatorNode octant)
staticprotected
void vtkOctreePointLocator::FindPointsWithinRadius ( vtkOctreePointLocatorNode node,
double  radiusSquared,
const double  x[3],
vtkIdList ids 
)
protected

Recursive helper for public FindPointsWithinRadius. radiusSquared is the square of the radius and is used in order to avoid the expensive square root calculation.

void vtkOctreePointLocator::AddAllPointsInRegion ( vtkOctreePointLocatorNode node,
vtkIdList ids 
)
protected
void vtkOctreePointLocator::FindPointsInArea ( vtkOctreePointLocatorNode node,
double area,
vtkIdTypeArray ids 
)
protected
void vtkOctreePointLocator::AddAllPointsInRegion ( vtkOctreePointLocatorNode node,
vtkIdTypeArray ids 
)
protected
void vtkOctreePointLocator::DivideRegion ( vtkOctreePointLocatorNode node,
int ordering,
int  level 
)
protected
int vtkOctreePointLocator::DivideTest ( int  size,
int  level 
)
protected
void vtkOctreePointLocator::AddPolys ( vtkOctreePointLocatorNode node,
vtkPoints pts,
vtkCellArray polys 
)
protected
int vtkOctreePointLocator::_FindClosestPointInRegion ( int  leafNodeId,
double  x,
double  y,
double  z,
double dist2 
)
protected

Given a leaf node id and point, return the local id and the squared distance between the closest point and the given point.

int vtkOctreePointLocator::FindClosestPointInSphere ( double  x,
double  y,
double  z,
double  radius,
int  skipRegion,
double dist2 
)
protected

Given a location and a radiues, find the closest point within this radius. The function does not examine the region with Id equal to skipRegion (do not set skipRegion to -1 as all non-leaf octants have -1 as their Id). The Id is returned along with the distance squared for success and -1 is returned for failure.

void vtkOctreePointLocator::operator= ( const vtkOctreePointLocator )
protected

Member Data Documentation

vtkOctreePointLocatorNode* vtkOctreePointLocator::Top
protected

Definition at line 166 of file vtkOctreePointLocator.h.

vtkOctreePointLocatorNode** vtkOctreePointLocator::LeafNodeList
protected

Definition at line 167 of file vtkOctreePointLocator.h.

int vtkOctreePointLocator::MaximumPointsPerRegion
protected

The maximum number of points in a region/octant before it is subdivided.

Definition at line 228 of file vtkOctreePointLocator.h.

int vtkOctreePointLocator::NumberOfLeafNodes
protected

The maximum number of points in a region/octant before it is subdivided.

Definition at line 229 of file vtkOctreePointLocator.h.

double vtkOctreePointLocator::FudgeFactor
protected

Definition at line 232 of file vtkOctreePointLocator.h.

int vtkOctreePointLocator::NumberOfLocatorPoints
protected

Definition at line 233 of file vtkOctreePointLocator.h.

float* vtkOctreePointLocator::LocatorPoints
protected

Definition at line 234 of file vtkOctreePointLocator.h.

int* vtkOctreePointLocator::LocatorIds
protected

Definition at line 235 of file vtkOctreePointLocator.h.

float vtkOctreePointLocator::MaxWidth
protected

Definition at line 237 of file vtkOctreePointLocator.h.

int vtkOctreePointLocator::CreateCubicOctants
protected

If CreateCubicOctants is non-zero, the bounding box of the points will be expanded such that all octants that are created will be cube-shaped (e.g. have equal lengths on each side). This may make the tree deeper but also results in better shaped octants for doing searches. The default is to have this set on.

Definition at line 244 of file vtkOctreePointLocator.h.


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