VTK
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
vtkLocator Class Referenceabstract

abstract base class for objects that accelerate spatial searches More...

#include <vtkLocator.h>

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

Public Member Functions

virtual void Update ()
 
virtual void Initialize ()
 
virtual void BuildLocator ()=0
 
virtual void FreeSearchStructure ()=0
 
virtual void GenerateRepresentation (int level, vtkPolyData *pd)=0
 
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)
 
- 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 ()
 

Protected Member Functions

 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 &)
 

Protected Attributes

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
 
typedef vtkObject Superclass
 
static int IsTypeOf (const char *type)
 
static vtkLocatorSafeDownCast (vtkObjectBase *o)
 
virtual int IsA (const char *type)
 
vtkLocatorNewInstance () const
 
void PrintSelf (ostream &os, vtkIndent indent)
 
virtual vtkObjectBaseNewInstanceInternal () const
 

Additional Inherited Members

- Public Types inherited from vtkObject
typedef vtkObjectBase Superclass
 
- 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 ()
 

Detailed Description

abstract base class for objects that accelerate spatial searches

vtkLocator is an abstract base class for spatial search objects, or locators. The principle behind locators is that they divide 3-space into small regions (or "buckets") that can be quickly found in response to queries about point location, line intersection, or object-object intersection.

The purpose of this base class is to provide data members and methods shared by all locators. The GenerateRepresentation() is one such interesting method. This method works in conjunction with vtkLocatorFilter to create polygonal representations for the locator. For example, if the locator is an OBB tree (i.e., vtkOBBTree.h), then the representation is a set of one or more oriented bounding boxes, depending upon the specified level.

Locators typically work as follows. One or more "entities", such as points or cells, are inserted into the locator structure. These entities are associated with one or more buckets. Then, when performing geometric operations, the operations are performed first on the buckets, and then if the operation tests positive, then on the entities in the bucket. For example, during collision tests, the locators are collided first to identify intersecting buckets. If an intersection is found, more expensive operations are then carried out on the entities in the bucket.

To obtain good performance, locators are often organized in a tree structure. In such a structure, there are frequently multiple "levels" corresponding to different nodes in the tree. So the word level (in the context of the locator) can be used to specify a particular representation in the tree. For example, in an octree (which is a tree with 8 children), level 0 is the bounding box, or root octant, and level 1 consists of its eight children.

Warning
There is a concept of static and incremental locators. Static locators are constructed one time, and then support appropriate queries. Incremental locators may have data inserted into them over time (e.g., adding new points during the process of isocontouring).
See also
vtkPointLocator vtkCellLocator vtkOBBTree vtkMergePoints

Definition at line 68 of file vtkLocator.h.

Member Typedef Documentation

Standard type and print methods.

Definition at line 73 of file vtkLocator.h.

Constructor & Destructor Documentation

vtkLocator::vtkLocator ( )
protected
vtkLocator::~vtkLocator ( )
protected

Member Function Documentation

static int vtkLocator::IsTypeOf ( const char *  type)
static

Standard type and print methods.

virtual int vtkLocator::IsA ( const char *  type)
virtual
static vtkLocator* vtkLocator::SafeDownCast ( vtkObjectBase o)
static

Standard type and print methods.

virtual vtkObjectBase* vtkLocator::NewInstanceInternal ( ) const
protectedvirtual
vtkLocator* vtkLocator::NewInstance ( ) const

Standard type and print methods.

void vtkLocator::PrintSelf ( ostream &  os,
vtkIndent  indent 
)
virtual
virtual void vtkLocator::SetDataSet ( vtkDataSet )
virtual

Build the locator from the points/cells defining this dataset.

Reimplemented in vtkKdTree.

virtual vtkDataSet* vtkLocator::GetDataSet ( )
virtual

Build the locator from the points/cells defining this dataset.

Reimplemented in vtkKdTree.

virtual void vtkLocator::SetMaxLevel ( int  )
virtual

Set the maximum allowable level for the tree. If the Automatic ivar is off, this will be the target depth of the locator. Initial value is 8.

virtual int vtkLocator::GetMaxLevel ( )
virtual

Set the maximum allowable level for the tree. If the Automatic ivar is off, this will be the target depth of the locator. Initial value is 8.

virtual int vtkLocator::GetLevel ( )
virtual

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. Initial value is 8.

virtual void vtkLocator::SetAutomatic ( int  )
virtual

Boolean controls whether locator depth/resolution of locator is computed automatically from average number of entities in bucket. If not set, there will be an explicit method to control the construction of the locator (found in the subclass).

virtual int vtkLocator::GetAutomatic ( )
virtual

Boolean controls whether locator depth/resolution of locator is computed automatically from average number of entities in bucket. If not set, there will be an explicit method to control the construction of the locator (found in the subclass).

virtual void vtkLocator::AutomaticOn ( )
virtual

Boolean controls whether locator depth/resolution of locator is computed automatically from average number of entities in bucket. If not set, there will be an explicit method to control the construction of the locator (found in the subclass).

virtual void vtkLocator::AutomaticOff ( )
virtual

Boolean controls whether locator depth/resolution of locator is computed automatically from average number of entities in bucket. If not set, there will be an explicit method to control the construction of the locator (found in the subclass).

virtual void vtkLocator::SetTolerance ( double  )
virtual

Specify absolute tolerance (in world coordinates) for performing geometric operations.

virtual double vtkLocator::GetTolerance ( )
virtual

Specify absolute tolerance (in world coordinates) for performing geometric operations.

virtual void vtkLocator::Update ( )
virtual

Cause the locator to rebuild itself if it or its input dataset has changed.

virtual void vtkLocator::Initialize ( )
virtual

Initialize locator. Frees memory and resets object as appropriate.

Reimplemented in vtkPointLocator, vtkStaticPointLocator, vtkIncrementalOctreePointLocator, and vtkIncrementalPointLocator.

virtual void vtkLocator::BuildLocator ( )
pure virtual
virtual void vtkLocator::FreeSearchStructure ( )
pure virtual
virtual void vtkLocator::GenerateRepresentation ( int  level,
vtkPolyData pd 
)
pure virtual

Method to build a representation at a particular level. Note that the method GetLevel() returns the maximum number of levels available for the tree. You must provide a vtkPolyData object into which to place the data.

Implemented in vtkKdTree, vtkPointLocator, vtkOBBTree, vtkModifiedBSPTree, vtkCellLocator, vtkOctreePointLocator, vtkStaticPointLocator, vtkCellTreeLocator, vtkIncrementalOctreePointLocator, vtkAbstractPointLocator, and vtkKdTreePointLocator.

virtual unsigned long vtkLocator::GetBuildTime ( )
virtual

Return the time of the last data structure build.

virtual void vtkLocator::Register ( vtkObjectBase o)
virtual

Handle the PointSet <-> Locator loop.

Reimplemented from vtkObjectBase.

virtual void vtkLocator::UnRegister ( vtkObjectBase o)
virtual

Handle the PointSet <-> Locator loop.

Reimplemented from vtkObjectBase.

virtual void vtkLocator::ReportReferences ( vtkGarbageCollector )
protectedvirtual

Reimplemented from vtkObjectBase.

Member Data Documentation

vtkDataSet* vtkLocator::DataSet
protected

Definition at line 149 of file vtkLocator.h.

int vtkLocator::Automatic
protected

Definition at line 150 of file vtkLocator.h.

double vtkLocator::Tolerance
protected

Definition at line 151 of file vtkLocator.h.

int vtkLocator::MaxLevel
protected

Definition at line 152 of file vtkLocator.h.

int vtkLocator::Level
protected

Definition at line 153 of file vtkLocator.h.

vtkTimeStamp vtkLocator::BuildTime
protected

Definition at line 155 of file vtkLocator.h.


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