vtkOctreePointLocator Class Reference

#include <vtkOctreePointLocator.h>

Inheritance diagram for vtkOctreePointLocator:

Inheritance graph
[legend]
Collaboration diagram for vtkOctreePointLocator:

Collaboration graph
[legend]

List of all members.


Detailed Description

a octree spatial decomposition of a set of points

Given a vtkDataSetxs, 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:
vtkPointLocator vtkOctreePointLocatorNode
Tests:
vtkOctreePointLocator (Tests)

Definition at line 50 of file vtkOctreePointLocator.h.


Public Types

typedef vtkAbstractPointLocator Superclass

Public Member Functions

virtual const char * GetClassName ()
virtual int IsA (const char *type)
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 double * GetBounds ()
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)

Static Public Member Functions

static int IsTypeOf (const char *type)
static vtkOctreePointLocatorSafeDownCast (vtkObject *o)
static vtkOctreePointLocatorNew ()

Protected Member Functions

 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)

Static Protected Member Functions

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

Protected Attributes

vtkOctreePointLocatorNodeTop
vtkOctreePointLocatorNode ** LeafNodeList
double FudgeFactor
int NumberOfLocatorPoints
float * LocatorPoints
int * LocatorIds
float MaxWidth
int CreateCubicOctants
int MaximumPointsPerRegion
int NumberOfLeafNodes

Member Typedef Documentation

Reimplemented from vtkAbstractPointLocator.

Definition at line 53 of file vtkOctreePointLocator.h.


Constructor & Destructor Documentation

vtkOctreePointLocator::vtkOctreePointLocator (  )  [protected]

vtkOctreePointLocator::~vtkOctreePointLocator (  )  [protected]

vtkOctreePointLocator::vtkOctreePointLocator ( const vtkOctreePointLocator  )  [protected]


Member Function Documentation

virtual const char* vtkOctreePointLocator::GetClassName (  )  [virtual]

Reimplemented from vtkAbstractPointLocator.

static int vtkOctreePointLocator::IsTypeOf ( const char *  name  )  [static]

Return 1 if this class type 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 vtkAbstractPointLocator.

virtual int vtkOctreePointLocator::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 vtkAbstractPointLocator.

static vtkOctreePointLocator* vtkOctreePointLocator::SafeDownCast ( vtkObject o  )  [static]

Reimplemented from vtkAbstractPointLocator.

void vtkOctreePointLocator::PrintSelf ( ostream &  os,
vtkIndent  indent 
) [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 vtkAbstractPointLocator.

static vtkOctreePointLocator* vtkOctreePointLocator::New (  )  [static]

Create an object with Debug turned off, modified time initialized to zero, and reference counting on.

Reimplemented from vtkObject.

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 multipled 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 multipled 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  )  [static, protected]

static void vtkOctreePointLocator::DeleteAllDescendants ( vtkOctreePointLocatorNode octant  )  [static, protected]

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

Definition at line 165 of file vtkOctreePointLocator.h.

Definition at line 166 of file vtkOctreePointLocator.h.

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

Definition at line 227 of file vtkOctreePointLocator.h.

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

Definition at line 228 of file vtkOctreePointLocator.h.

Definition at line 231 of file vtkOctreePointLocator.h.

Definition at line 232 of file vtkOctreePointLocator.h.

Definition at line 233 of file vtkOctreePointLocator.h.

Definition at line 234 of file vtkOctreePointLocator.h.

Definition at line 236 of file vtkOctreePointLocator.h.

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 243 of file vtkOctreePointLocator.h.


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

Generated on Mon Sep 27 18:36:35 2010 for VTK by  doxygen 1.5.6