VTK
9.1.0
|
Build a k-d tree decomposition of a list of points. More...
#include <vtkPKdTree.h>
Public Types | |
typedef vtkKdTree | Superclass |
Public Types inherited from vtkKdTree | |
typedef vtkLocator | Superclass |
Public Types inherited from vtkLocator | |
typedef vtkObject | Superclass |
Standard type and print methods. More... | |
Public Member Functions | |
virtual vtkTypeBool | IsA (const char *type) |
Standard type and print methods. More... | |
vtkPKdTree * | NewInstance () const |
void | PrintSelf (ostream &os, vtkIndent indent) override |
Methods invoked by print to print information about the object including superclasses. More... | |
void | PrintTiming (ostream &os, vtkIndent indent) override |
Print timing of k-d tree build. More... | |
void | PrintTables (ostream &os, vtkIndent indent) |
void | BuildLocator () override |
Build the spatial decomposition. More... | |
vtkIdType | GetTotalNumberOfCells () |
Get the total number of cells distributed across the data files read by all processes. More... | |
int | CreateProcessCellCountData () |
Create tables of counts of cells per process per region. More... | |
int | CreateGlobalDataArrayBounds () |
A convenience function which compiles the global bounds of the data arrays across processes. More... | |
int | AssignRegions (int *map, int numRegions) |
Assign spatial regions to processes via a user defined map. More... | |
int | AssignRegionsRoundRobin () |
Let the PKdTree class assign a process to each region in a round robin fashion. More... | |
int | AssignRegionsContiguous () |
Let the PKdTree class assign a process to each region by assigning contiguous sets of spatial regions to each process. More... | |
const int * | GetRegionAssignmentMap () |
Returns the region assignment map where index is the region and value is the processes id for that region. More... | |
int | GetRegionAssignmentList (int procId, vtkIntArray *list) |
Writes the list of region IDs assigned to the specified process. More... | |
void | GetAllProcessesBorderingOnPoint (float x, float y, float z, vtkIntArray *list) |
The k-d tree spatial regions have been assigned to processes. More... | |
int | GetProcessAssignedToRegion (int regionId) |
Returns the ID of the process assigned to the region. More... | |
int | HasData (int processId, int regionId) |
Returns 1 if the process has data for the given region, 0 otherwise. More... | |
int | GetProcessCellCountForRegion (int processId, int regionId) |
Returns the number of cells the specified process has in the specified region. More... | |
int | GetTotalProcessesInRegion (int regionId) |
Returns the total number of processes that have data falling within this spatial region. More... | |
int | GetProcessListForRegion (int regionId, vtkIntArray *processes) |
Adds the list of processes having data for the given region to the supplied list, returns the number of processes added. More... | |
int | GetProcessesCellCountForRegion (int regionId, int *count, int len) |
Writes the number of cells each process has for the region to the supplied list of length len. More... | |
int | GetTotalRegionsForProcess (int processId) |
Returns the total number of spatial regions that a given process has data for. More... | |
int | GetRegionListForProcess (int processId, vtkIntArray *regions) |
Adds the region IDs for which this process has data to the supplied vtkIntArray. More... | |
int | GetRegionsCellCountForProcess (int ProcessId, int *count, int len) |
Writes to the supplied integer array the number of cells this process has for each region. More... | |
int | ViewOrderAllProcessesInDirection (const double directionOfProjection[3], vtkIntArray *orderedList) |
Return a list of all processes in order from front to back given a vector direction of projection. More... | |
int | ViewOrderAllProcessesFromPosition (const double cameraPosition[3], vtkIntArray *orderedList) |
Return a list of all processes in order from front to back given a camera position. More... | |
int | GetCellArrayGlobalRange (const char *name, float range[2]) |
An added feature of vtkPKdTree is that it will calculate the the global range of field arrays across all processes. More... | |
int | GetPointArrayGlobalRange (const char *name, float range[2]) |
int | GetCellArrayGlobalRange (const char *name, double range[2]) |
int | GetPointArrayGlobalRange (const char *name, double range[2]) |
int | GetCellArrayGlobalRange (int arrayIndex, double range[2]) |
int | GetPointArrayGlobalRange (int arrayIndex, double range[2]) |
int | GetCellArrayGlobalRange (int arrayIndex, float range[2]) |
int | GetPointArrayGlobalRange (int arrayIndex, float range[2]) |
void | SetController (vtkMultiProcessController *c) |
Set/Get the communicator object. More... | |
virtual vtkMultiProcessController * | GetController () |
Set/Get the communicator object. More... | |
virtual int | GetRegionAssignment () |
The PKdTree class can assign spatial regions to processors after building the k-d tree, using one of several partitioning criteria. More... | |
int | GetRegionAssignmentMapLength () |
/ Returns the number of regions in the region assignment map. More... | |
vtkIdType | GetCellListsForProcessRegions (int ProcessId, int set, vtkIdList *inRegionCells, vtkIdList *onBoundaryCells) |
After regions have been assigned to processes, I may want to know which cells I have that are in the regions assigned to a particular process. More... | |
vtkIdType | GetCellListsForProcessRegions (int ProcessId, vtkDataSet *set, vtkIdList *inRegionCells, vtkIdList *onBoundaryCells) |
After regions have been assigned to processes, I may want to know which cells I have that are in the regions assigned to a particular process. More... | |
vtkIdType | GetCellListsForProcessRegions (int ProcessId, vtkIdList *inRegionCells, vtkIdList *onBoundaryCells) |
After regions have been assigned to processes, I may want to know which cells I have that are in the regions assigned to a particular process. More... | |
Public Member Functions inherited from vtkKdTree | |
virtual vtkTypeBool | IsA (const char *type) |
Standard type and print methods. More... | |
vtkKdTree * | NewInstance () const |
void | PrintSelf (ostream &os, vtkIndent indent) override |
Methods invoked by print to print information about the object including superclasses. More... | |
virtual int | GetNumberOfRegionsOrLess () |
Set/Get the number of spatial regions you want to get close to without going over. More... | |
virtual void | SetNumberOfRegionsOrLess (int) |
virtual int | GetNumberOfRegionsOrMore () |
Set/Get the number of spatial regions you want to get close to while having at least this many regions. More... | |
virtual void | SetNumberOfRegionsOrMore (int) |
virtual double | GetFudgeFactor () |
Some algorithms on k-d trees require a value that is a very small distance relative to the diameter of the entire space divided by the k-d tree. More... | |
virtual void | SetFudgeFactor (double) |
virtual vtkBSPCuts * | GetCuts () |
Get a vtkBSPCuts object, a general object representing an axis- aligned spatial partitioning. More... | |
void | SetCuts (vtkBSPCuts *cuts) |
Normally the k-d tree is computed from the dataset(s) provided in SetDataSet. More... | |
void | OmitXPartitioning () |
Omit partitions along the X axis, yielding shafts in the X direction. More... | |
void | OmitYPartitioning () |
Omit partitions along the Y axis, yielding shafts in the Y direction. More... | |
void | OmitZPartitioning () |
Omit partitions along the Z axis, yielding shafts in the Z direction. More... | |
void | OmitXYPartitioning () |
Omit partitions along the X and Y axes, yielding slabs along Z. More... | |
void | OmitYZPartitioning () |
Omit partitions along the Y and Z axes, yielding slabs along X. More... | |
void | OmitZXPartitioning () |
Omit partitions along the Z and X axes, yielding slabs along Y. More... | |
void | OmitNoPartitioning () |
Partition along all three axes - this is the default. More... | |
void | SetDataSet (vtkDataSet *set) override |
This class can compute a spatial decomposition based on the cells in a list of one or more input data sets. More... | |
virtual void | AddDataSet (vtkDataSet *set) |
This class can compute a spatial decomposition based on the cells in a list of one or more input data sets. More... | |
int | GetNumberOfDataSets () |
Get the number of data sets included in spatial partitioning. More... | |
vtkDataSet * | GetDataSet (int n) |
Get the nth defined data set in the spatial partitioning. More... | |
vtkDataSet * | GetDataSet () override |
Return the 0'th data set. More... | |
int | GetDataSetIndex (vtkDataSet *set) |
Return the index of the given data set. More... | |
void | GetBounds (double *bounds) |
Get the spatial bounds of the entire k-d tree space. More... | |
void | SetNewBounds (double *bounds) |
There are certain applications where you want the bounds of the k-d tree space to be at least as large as a specified box. More... | |
void | GetRegionBounds (int regionID, double bounds[6]) |
Get the spatial bounds of k-d tree region. More... | |
void | GetRegionDataBounds (int regionID, double bounds[6]) |
Get the bounds of the data within the k-d tree region. More... | |
void | PrintRegion (int id) |
Print out leaf node data for given id. More... | |
void | CreateCellLists (int dataSetIndex, int *regionReqList, int reqListSize) |
Create a list for each of the requested regions, listing the IDs of all cells whose centroid falls in the region. More... | |
void | CreateCellLists (vtkDataSet *set, int *regionReqList, int reqListSize) |
void | CreateCellLists (int *regionReqList, int listSize) |
void | CreateCellLists () |
void | DeleteCellLists () |
Free the memory used by the cell lists. More... | |
vtkIdList * | GetCellList (int regionID) |
Get the cell list for a region. More... | |
vtkIdList * | GetBoundaryCellList (int regionID) |
The cell list obtained with GetCellList is the list of all cells such that their centroid is contained in the spatial region. More... | |
int * | AllGetRegionContainingCell () |
Get a list (in order by data set by cell id) of the region IDs of the region containing the centroid for each cell. More... | |
int | GetRegionContainingPoint (double x, double y, double z) |
Get the id of the region containing the specified location. More... | |
void | BuildLocator () override |
Create the k-d tree decomposition of the cells of the data set or data sets. More... | |
int | MinimalNumberOfConvexSubRegions (vtkIntArray *regionIdList, double **convexRegionBounds) |
Given a list of region IDs, determine the decomposition of these regions into the minimal number of convex subregions. More... | |
int | ViewOrderAllRegionsInDirection (const double directionOfProjection[3], vtkIntArray *orderedList) |
Given a direction of projection (typically obtained with vtkCamera::GetDirectionOfProjection()), this method, creates a list of the k-d tree region IDs in order from front to back with respect to that direction. More... | |
int | ViewOrderRegionsInDirection (vtkIntArray *regionIds, const double directionOfProjection[3], vtkIntArray *orderedList) |
Given a direction of projection and a list of k-d tree region IDs, this method, creates a list of the k-d tree region IDs in order from front to back with respect to that direction. More... | |
int | ViewOrderAllRegionsFromPosition (const double directionOfProjection[3], vtkIntArray *orderedList) |
Given a camera position (typically obtained with vtkCamera::GetPosition()), this method, creates a list of the k-d tree region IDs in order from front to back with respect to that direction. More... | |
int | ViewOrderRegionsFromPosition (vtkIntArray *regionIds, const double directionOfProjection[3], vtkIntArray *orderedList) |
Given a camera position and a list of k-d tree region IDs, this method, creates a list of the k-d tree region IDs in order from front to back with respect to that direction. More... | |
vtkIdTypeArray * | BuildMapForDuplicatePoints (float tolerance) |
This call returns a mapping from the original point IDs supplied to BuildLocatorFromPoints to a subset of those IDs that is unique within the specified tolerance. More... | |
vtkIdType | FindClosestPointWithinRadius (double radius, const double x[3], double &dist2) |
Given a position x and a radius r, return the id of the point closest to the point in that radius. More... | |
void | FindPointsWithinRadius (double R, const double x[3], vtkIdList *result) |
Find all points within a specified radius R of position x. More... | |
void | FindClosestNPoints (int N, const double x[3], vtkIdList *result) |
Find the closest N points to a position. More... | |
vtkIdTypeArray * | GetPointsInRegion (int regionId) |
Get a list of the original IDs of all points in a region. More... | |
void | FreeSearchStructure () override |
Delete the k-d tree data structure. More... | |
void | GenerateRepresentation (int level, vtkPolyData *pd) override |
Create a polydata representation of the boundaries of the k-d tree regions. More... | |
void | GenerateRepresentation (int *regionList, int len, vtkPolyData *pd) |
Generate a polygonal representation of a list of regions. More... | |
virtual void | PrintTiming (ostream &os, vtkIndent indent) |
Print timing of k-d tree build. More... | |
virtual int | NewGeometry () |
Return 1 if the geometry of the input data sets has changed since the last time the k-d tree was built. More... | |
virtual int | NewGeometry (vtkDataSet **sets, int numDataSets) |
Return 1 if the geometry of these data sets differs for the geometry of the last data sets used to build the k-d tree. More... | |
virtual void | InvalidateGeometry () |
Forget about the last geometry used. More... | |
void | FindPointsInArea (double *area, vtkIdTypeArray *ids, bool clearArray=true) |
Fill ids with points found in area. More... | |
virtual void | TimingOn () |
Turn on timing of the k-d tree build. More... | |
virtual void | TimingOff () |
Turn on timing of the k-d tree build. More... | |
virtual void | SetTiming (vtkTypeBool) |
Turn on timing of the k-d tree build. More... | |
virtual vtkTypeBool | GetTiming () |
Turn on timing of the k-d tree build. More... | |
virtual void | SetMinCells (int) |
Minimum number of cells per spatial region. More... | |
virtual int | GetMinCells () |
Minimum number of cells per spatial region. More... | |
virtual void | RemoveDataSet (int index) |
Remove the given data set. More... | |
virtual void | RemoveDataSet (vtkDataSet *set) |
Remove the given data set. More... | |
virtual void | RemoveAllDataSets () |
Remove the given data set. More... | |
virtual vtkDataSetCollection * | GetDataSets () |
Return a collection of all the data sets. More... | |
virtual int | GetNumberOfRegions () |
The number of leaf nodes of the tree, the spatial regions. More... | |
void | PrintTree () |
Print out nodes of kd tree. More... | |
void | PrintVerboseTree () |
Print out nodes of kd tree. More... | |
virtual void | SetIncludeRegionBoundaryCells (vtkTypeBool) |
If IncludeRegionBoundaryCells is ON, CreateCellLists() will also create a list of cells which intersect a given region, but are not assigned to the region. More... | |
virtual vtkTypeBool | GetIncludeRegionBoundaryCells () |
If IncludeRegionBoundaryCells is ON, CreateCellLists() will also create a list of cells which intersect a given region, but are not assigned to the region. More... | |
virtual void | IncludeRegionBoundaryCellsOn () |
If IncludeRegionBoundaryCells is ON, CreateCellLists() will also create a list of cells which intersect a given region, but are not assigned to the region. More... | |
virtual void | IncludeRegionBoundaryCellsOff () |
If IncludeRegionBoundaryCells is ON, CreateCellLists() will also create a list of cells which intersect a given region, but are not assigned to the region. More... | |
vtkIdType | GetCellLists (vtkIntArray *regions, int set, vtkIdList *inRegionCells, vtkIdList *onBoundaryCells) |
For a list of regions, get two cell lists. More... | |
vtkIdType | GetCellLists (vtkIntArray *regions, vtkDataSet *set, vtkIdList *inRegionCells, vtkIdList *onBoundaryCells) |
For a list of regions, get two cell lists. More... | |
vtkIdType | GetCellLists (vtkIntArray *regions, vtkIdList *inRegionCells, vtkIdList *onBoundaryCells) |
For a list of regions, get two cell lists. More... | |
int | GetRegionContainingCell (vtkDataSet *set, vtkIdType cellID) |
Get the id of the region containing the cell centroid. More... | |
int | GetRegionContainingCell (int set, vtkIdType cellID) |
Get the id of the region containing the cell centroid. More... | |
int | GetRegionContainingCell (vtkIdType cellID) |
Get the id of the region containing the cell centroid. More... | |
void | BuildLocatorFromPoints (vtkPointSet *pointset) |
This is a special purpose locator that builds a k-d tree to find duplicate and near-by points. More... | |
void | BuildLocatorFromPoints (vtkPoints *ptArray) |
This is a special purpose locator that builds a k-d tree to find duplicate and near-by points. More... | |
void | BuildLocatorFromPoints (vtkPoints **ptArray, int numPtArrays) |
This is a special purpose locator that builds a k-d tree to find duplicate and near-by points. More... | |
vtkIdType | FindPoint (double *x) |
Find the Id of the point that was previously supplied to BuildLocatorFromPoints(). More... | |
vtkIdType | FindPoint (double x, double y, double z) |
Find the Id of the point that was previously supplied to BuildLocatorFromPoints(). More... | |
vtkIdType | FindClosestPoint (double *x, double &dist2) |
Find the Id of the point that was previously supplied to BuildLocatorFromPoints() which is closest to the given point. More... | |
vtkIdType | FindClosestPoint (double x, double y, double z, double &dist2) |
Find the Id of the point that was previously supplied to BuildLocatorFromPoints() which is closest to the given point. More... | |
vtkIdType | FindClosestPointInRegion (int regionId, double *x, double &dist2) |
Find the Id of the point in the given region which is closest to the given point. More... | |
vtkIdType | FindClosestPointInRegion (int regionId, double x, double y, double z, double &dist2) |
Find the Id of the point in the given region which is closest to the given point. More... | |
virtual void | GenerateRepresentationUsingDataBoundsOn () |
The polydata representation of the k-d tree shows the boundaries of the k-d tree decomposition spatial regions. More... | |
virtual void | GenerateRepresentationUsingDataBoundsOff () |
The polydata representation of the k-d tree shows the boundaries of the k-d tree decomposition spatial regions. More... | |
virtual void | SetGenerateRepresentationUsingDataBounds (vtkTypeBool) |
The polydata representation of the k-d tree shows the boundaries of the k-d tree decomposition spatial regions. More... | |
virtual vtkTypeBool | GetGenerateRepresentationUsingDataBounds () |
The polydata representation of the k-d tree shows the boundaries of the k-d tree decomposition spatial regions. More... | |
Public Member Functions inherited from vtkLocator | |
virtual void | Update () |
Cause the locator to rebuild itself if it or its input dataset has changed. More... | |
virtual void | Initialize () |
Initialize locator. More... | |
virtual void | BuildLocator ()=0 |
Build the locator from the input dataset. More... | |
virtual void | FreeSearchStructure ()=0 |
Free the memory required for the spatial data structure. More... | |
virtual void | GenerateRepresentation (int level, vtkPolyData *pd)=0 |
Method to build a representation at a particular level. More... | |
virtual void | SetMaxLevel (int) |
Set the maximum allowable level for the tree. More... | |
virtual int | GetMaxLevel () |
Set the maximum allowable level for the tree. More... | |
virtual int | GetLevel () |
Get the level of the locator (determined automatically if Automatic is true). More... | |
virtual void | SetAutomatic (vtkTypeBool) |
Boolean controls whether locator depth/resolution of locator is computed automatically from average number of entities in bucket. More... | |
virtual vtkTypeBool | GetAutomatic () |
Boolean controls whether locator depth/resolution of locator is computed automatically from average number of entities in bucket. More... | |
virtual void | AutomaticOn () |
Boolean controls whether locator depth/resolution of locator is computed automatically from average number of entities in bucket. More... | |
virtual void | AutomaticOff () |
Boolean controls whether locator depth/resolution of locator is computed automatically from average number of entities in bucket. More... | |
virtual void | SetTolerance (double) |
Specify absolute tolerance (in world coordinates) for performing geometric operations. More... | |
virtual double | GetTolerance () |
Specify absolute tolerance (in world coordinates) for performing geometric operations. More... | |
virtual vtkMTimeType | GetBuildTime () |
Return the time of the last data structure build. More... | |
void | Register (vtkObjectBase *o) override |
Handle the PointSet <-> Locator loop. More... | |
void | UnRegister (vtkObjectBase *o) override |
Handle the PointSet <-> Locator loop. More... | |
vtkLocator * | NewInstance () const |
Standard type and print methods. 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... | |
void | PrintSelf (ostream &os, vtkIndent indent) override |
Methods invoked by print to print information about the object including superclasses. More... | |
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) |
int | InvokeEvent (unsigned long event) |
int | InvokeEvent (const char *event) |
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) |
Allow people to add/remove/invoke observers (callbacks) to any VTK object. More... | |
vtkCommand * | GetCommand (unsigned long tag) |
Allow people to add/remove/invoke observers (callbacks) to any VTK object. More... | |
void | RemoveObserver (vtkCommand *) |
Allow people to add/remove/invoke observers (callbacks) to any VTK object. More... | |
void | RemoveObservers (unsigned long event, vtkCommand *) |
Allow people to add/remove/invoke observers (callbacks) to any VTK object. More... | |
void | RemoveObservers (const char *event, vtkCommand *) |
Allow people to add/remove/invoke observers (callbacks) to any VTK object. More... | |
vtkTypeBool | HasObserver (unsigned long event, vtkCommand *) |
Allow people to add/remove/invoke observers (callbacks) to any VTK object. More... | |
vtkTypeBool | HasObserver (const char *event, vtkCommand *) |
Allow people to add/remove/invoke observers (callbacks) to any VTK object. More... | |
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) |
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, 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) |
This method invokes an event and return whether the event was aborted or not. More... | |
Public Member Functions inherited from vtkObjectBase | |
const char * | GetClassName () const |
Return the class name as a string. More... | |
virtual vtkTypeBool | IsA (const char *name) |
Return 1 if this class is the same type of (or a subclass of) the named class. More... | |
virtual vtkIdType | GetNumberOfGenerationsFromBase (const char *name) |
Given 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 | 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... | |
bool | GetIsInMemkind () const |
A local state flag that remembers whether this object lives in the normal or extended memory space. More... | |
virtual void | PrintHeader (ostream &os, vtkIndent indent) |
Methods invoked by print to print information about the object including superclasses. More... | |
virtual void | PrintTrailer (ostream &os, vtkIndent indent) |
Methods invoked by print to print information about the object including superclasses. More... | |
Static Public Member Functions | |
static vtkTypeBool | IsTypeOf (const char *type) |
static vtkPKdTree * | SafeDownCast (vtkObjectBase *o) |
static vtkPKdTree * | New () |
Static Public Member Functions inherited from vtkKdTree | |
static vtkTypeBool | IsTypeOf (const char *type) |
static vtkKdTree * | SafeDownCast (vtkObjectBase *o) |
static vtkKdTree * | New () |
static vtkKdNode * | CopyTree (vtkKdNode *kd) |
Create a copy of the binary tree representation of the k-d tree spatial partitioning provided. More... | |
Static Public Member Functions inherited from vtkLocator | |
static vtkTypeBool | IsTypeOf (const char *type) |
Standard type and print methods. More... | |
static vtkLocator * | SafeDownCast (vtkObjectBase *o) |
Standard type and print methods. More... | |
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 () |
This is a global flag that controls whether any debug, warning or error messages are displayed. More... | |
static void | GlobalWarningDisplayOff () |
This is a global flag that controls whether any debug, warning or error messages are displayed. More... | |
static int | GetGlobalWarningDisplay () |
This is a global flag that controls whether any debug, warning or error messages are displayed. More... | |
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... | |
static void | SetMemkindDirectory (const char *directoryname) |
The name of a directory, ideally mounted -o dax, to memory map an extended memory space within. More... | |
static bool | GetUsingMemkind () |
A global state flag that controls whether vtkObjects are constructed in the usual way (the default) or within the extended memory space. More... | |
Static Public Attributes | |
static const int | NoRegionAssignment |
static const int | ContiguousAssignment |
static const int | UserDefinedAssignment |
static const int | RoundRobinAssignment |
Protected Member Functions | |
virtual vtkObjectBase * | NewInstanceInternal () const |
Standard type and print methods. More... | |
vtkPKdTree () | |
~vtkPKdTree () override | |
void | SingleProcessBuildLocator () |
int | MultiProcessBuildLocator (double *bounds) |
Protected Member Functions inherited from vtkKdTree | |
virtual vtkObjectBase * | NewInstanceInternal () const |
Standard type and print methods. More... | |
vtkKdTree () | |
~vtkKdTree () override | |
void | SetCalculator (vtkKdNode *kd) |
int | ProcessUserDefinedCuts (double *bounds) |
void | SetCuts (vtkBSPCuts *cuts, int userDefined) |
void | UpdateBuildTime () |
Save enough state so NewGeometry() can work, and update the BuildTime time stamp. More... | |
int | DivideTest (int numberOfPoints, int level) |
Prior to dividing a region at level "level", of size "numberOfPoints", apply the tests implied by MinCells, NumberOfRegionsOrMore and NumberOfRegionsOrLess. More... | |
void | BuildRegionList () |
virtual int | SelectCutDirection (vtkKdNode *kd) |
void | SetActualLevel () |
void | GetRegionsAtLevel (int level, vtkKdNode **nodes) |
Get back a list of the nodes at a specified level, nodes must be preallocated to hold 2^^(level) node structures. More... | |
int | GetNumberOfCells () |
Returns the total number of cells in all the data sets. More... | |
int | GetDataSetsNumberOfCells (int set1, int set2) |
Returns the total number of cells in data set 1 through data set 2. More... | |
void | ComputeCellCenter (vtkDataSet *set, int cellId, float *center) |
Get or compute the center of one cell. More... | |
void | ComputeCellCenter (vtkDataSet *set, int cellId, double *center) |
float * | ComputeCellCenters () |
Compute and return a pointer to a list of all cell centers, in order by data set by cell Id. More... | |
float * | ComputeCellCenters (int set) |
float * | ComputeCellCenters (vtkDataSet *set) |
void | UpdateProgress (double amount) |
Modelled on vtkAlgorithm::UpdateProgress(). More... | |
void | UpdateSubOperationProgress (double amount) |
void | FindPointsWithinRadius (vtkKdNode *node, double R2, const double x[3], vtkIdList *ids) |
void | AddAllPointsInRegion (vtkKdNode *node, vtkIdList *ids) |
void | FindPointsInArea (vtkKdNode *node, double *area, vtkIdTypeArray *ids) |
void | AddAllPointsInRegion (vtkKdNode *node, vtkIdTypeArray *ids) |
int | DivideRegion (vtkKdNode *kd, float *c1, int *ids, int nlevels) |
void | DoMedianFind (vtkKdNode *kd, float *c1, int *ids, int d1, int d2, int d3) |
void | SelfRegister (vtkKdNode *kd) |
void | InitializeCellLists () |
vtkIdList * | GetList (int regionId, vtkIdList **which) |
void | ComputeCellCenter (vtkCell *cell, double *center, double *weights) |
void | GenerateRepresentationDataBounds (int level, vtkPolyData *pd) |
void | _generateRepresentationDataBounds (vtkKdNode *kd, vtkPoints *pts, vtkCellArray *polys, int level) |
void | GenerateRepresentationWholeSpace (int level, vtkPolyData *pd) |
void | _generateRepresentationWholeSpace (vtkKdNode *kd, vtkPoints *pts, vtkCellArray *polys, int level) |
void | AddPolys (vtkKdNode *kd, vtkPoints *pts, vtkCellArray *polys) |
void | _printTree (int verbose) |
int | SearchNeighborsForDuplicate (int regionId, float *point, int **pointsSoFar, int *len, float tolerance, float tolerance2) |
int | SearchRegionForDuplicate (float *point, int *pointsSoFar, int len, float tolerance2) |
int | _FindClosestPointInRegion (int regionId, double x, double y, double z, double &dist2) |
int | FindClosestPointInSphere (double x, double y, double z, double radius, int skipRegion, double &dist2) |
int | _ViewOrderRegionsInDirection (vtkIntArray *IdsOfInterest, const double dop[3], vtkIntArray *orderedList) |
int | _ViewOrderRegionsFromPosition (vtkIntArray *IdsOfInterest, const double pos[3], vtkIntArray *orderedList) |
void | SetInputDataInfo (int i, int dims[3], double origin[3], double spacing[3]) |
int | CheckInputDataInfo (int i, int dims[3], double origin[3], double spacing[3]) |
void | ClearLastBuildCache () |
void | NewPartitioningRequest (int req) |
vtkKdTree (const vtkKdTree &)=delete | |
void | operator= (const vtkKdTree &)=delete |
virtual void | SetProgress (double) |
Set/Get the execution progress of a process object. More... | |
virtual double | GetProgress () |
Set/Get the execution progress of a process object. More... | |
Protected Member Functions inherited from vtkLocator | |
vtkLocator () | |
~vtkLocator () override | |
void | ReportReferences (vtkGarbageCollector *) 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 () |
These methods allow a command to exclusively grab all events. More... | |
Protected Member Functions inherited from vtkObjectBase | |
vtkObjectBase () | |
virtual | ~vtkObjectBase () |
virtual void | RegisterInternal (vtkObjectBase *, vtkTypeBool check) |
virtual void | UnRegisterInternal (vtkObjectBase *, vtkTypeBool check) |
virtual void | ReportReferences (vtkGarbageCollector *) |
vtkObjectBase (const vtkObjectBase &) | |
void | operator= (const vtkObjectBase &) |
Additional Inherited Members | |
Protected Types inherited from vtkKdTree | |
enum | { XDIM = 0 , YDIM = 1 , ZDIM = 2 } |
Static Protected Member Functions inherited from vtkKdTree | |
static void | DeleteAllDescendants (vtkKdNode *nd) |
static void | GetLeafNodeIds (vtkKdNode *node, vtkIntArray *ids) |
Adds to the vtkIntArray the list of region IDs of all leaf nodes in the given node. More... | |
static void | _SetNewBounds (vtkKdNode *kd, double *b, int *fixDim) |
static void | CopyChildNodes (vtkKdNode *to, vtkKdNode *from) |
static void | CopyKdNode (vtkKdNode *to, vtkKdNode *from) |
static void | SetDataBoundsToSpatialBounds (vtkKdNode *kd) |
static void | ZeroNumberOfPoints (vtkKdNode *kd) |
static int | __ViewOrderRegionsInDirection (vtkKdNode *node, vtkIntArray *list, vtkIntArray *IdsOfInterest, const double dir[3], int nextId) |
static int | __ViewOrderRegionsFromPosition (vtkKdNode *node, vtkIntArray *list, vtkIntArray *IdsOfInterest, const double pos[3], int nextId) |
static int | __ConvexSubRegions (int *ids, int len, vtkKdNode *tree, vtkKdNode **nodes) |
static int | FoundId (vtkIntArray *idArray, int id) |
static void | __printTree (vtkKdNode *kd, int depth, int verbose) |
static int | MidValue (int dim, float *c1, int nvals, double &coord) |
static int | Select (int dim, float *c1, int *ids, int nvals, double &coord) |
static float | FindMaxLeftHalf (int dim, float *c1, int K) |
static void | _Select (int dim, float *X, int *ids, int L, int R, int K) |
static int | ComputeLevel (vtkKdNode *kd) |
static int | SelfOrder (int id, vtkKdNode *kd) |
static int | findRegion (vtkKdNode *node, float x, float y, float z) |
static int | findRegion (vtkKdNode *node, double x, double y, double z) |
static vtkKdNode ** | _GetRegionsAtLevel (int level, vtkKdNode **nodes, vtkKdNode *kd) |
static void | AddNewRegions (vtkKdNode *kd, float *c1, int midpt, int dim, double coord) |
Static Protected Member Functions inherited from vtkObjectBase | |
static vtkMallocingFunction | GetCurrentMallocFunction () |
static vtkReallocingFunction | GetCurrentReallocFunction () |
static vtkFreeingFunction | GetCurrentFreeFunction () |
static vtkFreeingFunction | GetAlternateFreeFunction () |
Protected Attributes inherited from vtkKdTree | |
vtkBSPIntersections * | BSPCalculator |
int | UserDefinedCuts |
int | ValidDirections |
vtkKdNode * | Top |
vtkKdNode ** | RegionList |
vtkTimerLog * | TimerLog |
vtkDataSetCollection * | DataSets |
double | ProgressScale |
double | ProgressOffset |
int | NumberOfRegionsOrLess |
int | NumberOfRegionsOrMore |
vtkTypeBool | IncludeRegionBoundaryCells |
double | CellBoundsCache [6] |
vtkTypeBool | GenerateRepresentationUsingDataBounds |
struct _cellList | CellList |
int * | CellRegionList |
int | MinCells |
int | NumberOfRegions |
vtkTypeBool | Timing |
double | FudgeFactor |
int | NumberOfLocatorPoints |
float * | LocatorPoints |
int * | LocatorIds |
int * | LocatorRegionLocation |
float | MaxWidth |
int | LastNumDataSets |
int | LastDataCacheSize |
vtkDataSet ** | LastInputDataSets |
unsigned long * | LastDataSetObserverTags |
int * | LastDataSetType |
double * | LastInputDataInfo |
double * | LastBounds |
vtkIdType * | LastNumPoints |
vtkIdType * | LastNumCells |
vtkBSPCuts * | Cuts |
double | Progress |
Protected Attributes inherited from vtkLocator | |
vtkDataSet * | DataSet |
vtkTypeBool | 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 | |
std::atomic< int32_t > | ReferenceCount |
vtkWeakPointerBase ** | WeakPointers |
Build a k-d tree decomposition of a list of points.
Build, in parallel, a k-d tree decomposition of one or more vtkDataSets distributed across processors. We assume each process has read in one portion of a large distributed data set. When done, each process has access to the k-d tree structure, can obtain information about which process contains data for each spatial region, and can depth sort the spatial regions. This class can also assign spatial regions to processors, based on one of several region assignment schemes. By default a contiguous, convex region is assigned to each process. Several queries return information about how many and what cells I have that lie in a region assigned to another process.
Definition at line 57 of file vtkPKdTree.h.
typedef vtkKdTree vtkPKdTree::Superclass |
Definition at line 60 of file vtkPKdTree.h.
|
protected |
|
overrideprotected |
|
static |
|
virtual |
Standard type and print methods.
Reimplemented from vtkKdTree.
|
static |
|
protectedvirtual |
Standard type and print methods.
Reimplemented from vtkKdTree.
vtkPKdTree * vtkPKdTree::NewInstance | ( | ) | const |
|
overridevirtual |
|
overridevirtual |
Print timing of k-d tree build.
Reimplemented from vtkKdTree.
void vtkPKdTree::PrintTables | ( | ostream & | os, |
vtkIndent | indent | ||
) |
|
static |
|
overridevirtual |
Build the spatial decomposition.
Call this explicitly after changing any parameters affecting the build of the tree. It must be called by all processes in the parallel application, or it will hang.
Reimplemented from vtkKdTree.
|
inline |
Get the total number of cells distributed across the data files read by all processes.
You must have called BuildLocator before calling this method.
Definition at line 81 of file vtkPKdTree.h.
int vtkPKdTree::CreateProcessCellCountData | ( | ) |
Create tables of counts of cells per process per region.
These tables can be accessed with queries like "HasData", "GetProcessCellCountForRegion", and so on. You must have called BuildLocator() beforehand. This method must be called by all processes or it will hang. Returns 1 on error, 0 when no error.
int vtkPKdTree::CreateGlobalDataArrayBounds | ( | ) |
A convenience function which compiles the global bounds of the data arrays across processes.
These bounds can be accessed with "GetCellArrayGlobalRange" and "GetPointArrayGlobalRange". This method must be called by all processes or it will hang. Returns 1 on error, 0 when no error.
void vtkPKdTree::SetController | ( | vtkMultiProcessController * | c | ) |
Set/Get the communicator object.
|
virtual |
Set/Get the communicator object.
|
virtual |
The PKdTree class can assign spatial regions to processors after building the k-d tree, using one of several partitioning criteria.
These functions Set/Get whether this assignment is computed. The default is "Off", no assignment is computed. If "On", and no assignment scheme is specified, contiguous assignment will be computed. Specifying an assignment scheme (with AssignRegions*()) automatically turns on RegionAssignment.
int vtkPKdTree::AssignRegions | ( | int * | map, |
int | numRegions | ||
) |
Assign spatial regions to processes via a user defined map.
The user-supplied map is indexed by region ID, and provides a process ID for each region.
int vtkPKdTree::AssignRegionsRoundRobin | ( | ) |
Let the PKdTree class assign a process to each region in a round robin fashion.
If the k-d tree has not yet been built, the regions will be assigned after BuildLocator executes.
int vtkPKdTree::AssignRegionsContiguous | ( | ) |
Let the PKdTree class assign a process to each region by assigning contiguous sets of spatial regions to each process.
The set of regions assigned to each process will always have a union that is a convex space (a box). If the k-d tree has not yet been built, the regions will be assigned after BuildLocator executes.
|
inline |
Returns the region assignment map where index is the region and value is the processes id for that region.
Definition at line 157 of file vtkPKdTree.h.
|
inline |
/ Returns the number of regions in the region assignment map.
Definition at line 163 of file vtkPKdTree.h.
int vtkPKdTree::GetRegionAssignmentList | ( | int | procId, |
vtkIntArray * | list | ||
) |
Writes the list of region IDs assigned to the specified process.
Regions IDs start at 0 and increase by 1 from there. Returns the number of regions in the list.
void vtkPKdTree::GetAllProcessesBorderingOnPoint | ( | float | x, |
float | y, | ||
float | z, | ||
vtkIntArray * | list | ||
) |
The k-d tree spatial regions have been assigned to processes.
Given a point on the boundary of one of the regions, this method creates a list of all processes whose region boundaries include that point. This may be required when looking for processes that have cells adjacent to the cells of a given process.
int vtkPKdTree::GetProcessAssignedToRegion | ( | int | regionId | ) |
Returns the ID of the process assigned to the region.
int vtkPKdTree::HasData | ( | int | processId, |
int | regionId | ||
) |
Returns 1 if the process has data for the given region, 0 otherwise.
int vtkPKdTree::GetProcessCellCountForRegion | ( | int | processId, |
int | regionId | ||
) |
Returns the number of cells the specified process has in the specified region.
int vtkPKdTree::GetTotalProcessesInRegion | ( | int | regionId | ) |
Returns the total number of processes that have data falling within this spatial region.
int vtkPKdTree::GetProcessListForRegion | ( | int | regionId, |
vtkIntArray * | processes | ||
) |
Adds the list of processes having data for the given region to the supplied list, returns the number of processes added.
int vtkPKdTree::GetProcessesCellCountForRegion | ( | int | regionId, |
int * | count, | ||
int | len | ||
) |
Writes the number of cells each process has for the region to the supplied list of length len.
Returns the number of cell counts written. The order of the cell counts corresponds to the order of process IDs in the process list returned by GetProcessListForRegion.
int vtkPKdTree::GetTotalRegionsForProcess | ( | int | processId | ) |
Returns the total number of spatial regions that a given process has data for.
int vtkPKdTree::GetRegionListForProcess | ( | int | processId, |
vtkIntArray * | regions | ||
) |
Adds the region IDs for which this process has data to the supplied vtkIntArray.
Returns the number of regions.
int vtkPKdTree::GetRegionsCellCountForProcess | ( | int | ProcessId, |
int * | count, | ||
int | len | ||
) |
Writes to the supplied integer array the number of cells this process has for each region.
Returns the number of cell counts written. The order of the cell counts corresponds to the order of region IDs in the region list returned by GetRegionListForProcess.
vtkIdType vtkPKdTree::GetCellListsForProcessRegions | ( | int | ProcessId, |
int | set, | ||
vtkIdList * | inRegionCells, | ||
vtkIdList * | onBoundaryCells | ||
) |
After regions have been assigned to processes, I may want to know which cells I have that are in the regions assigned to a particular process.
This method takes a process ID and two vtkIdLists. It writes to the first list the IDs of the cells contained in the process' regions. (That is, their cell centroid is contained in the region.) To the second list it write the IDs of the cells which intersect the process' regions but whose cell centroid lies elsewhere.
The total number of cell IDs written to both lists is returned. Either list pointer passed in can be nullptr, and it will be ignored. If there are multiple data sets, you must specify which data set you wish cell IDs for.
The caller should delete these two lists when done. This method uses the cell lists created in vtkKdTree::CreateCellLists(). If the cell lists for the process' regions do not exist, this method will first build the cell lists for all regions by calling CreateCellLists(). You must remember to DeleteCellLists() when done with all calls to this method, as cell lists can require a great deal of memory.
vtkIdType vtkPKdTree::GetCellListsForProcessRegions | ( | int | ProcessId, |
vtkDataSet * | set, | ||
vtkIdList * | inRegionCells, | ||
vtkIdList * | onBoundaryCells | ||
) |
After regions have been assigned to processes, I may want to know which cells I have that are in the regions assigned to a particular process.
This method takes a process ID and two vtkIdLists. It writes to the first list the IDs of the cells contained in the process' regions. (That is, their cell centroid is contained in the region.) To the second list it write the IDs of the cells which intersect the process' regions but whose cell centroid lies elsewhere.
The total number of cell IDs written to both lists is returned. Either list pointer passed in can be nullptr, and it will be ignored. If there are multiple data sets, you must specify which data set you wish cell IDs for.
The caller should delete these two lists when done. This method uses the cell lists created in vtkKdTree::CreateCellLists(). If the cell lists for the process' regions do not exist, this method will first build the cell lists for all regions by calling CreateCellLists(). You must remember to DeleteCellLists() when done with all calls to this method, as cell lists can require a great deal of memory.
vtkIdType vtkPKdTree::GetCellListsForProcessRegions | ( | int | ProcessId, |
vtkIdList * | inRegionCells, | ||
vtkIdList * | onBoundaryCells | ||
) |
After regions have been assigned to processes, I may want to know which cells I have that are in the regions assigned to a particular process.
This method takes a process ID and two vtkIdLists. It writes to the first list the IDs of the cells contained in the process' regions. (That is, their cell centroid is contained in the region.) To the second list it write the IDs of the cells which intersect the process' regions but whose cell centroid lies elsewhere.
The total number of cell IDs written to both lists is returned. Either list pointer passed in can be nullptr, and it will be ignored. If there are multiple data sets, you must specify which data set you wish cell IDs for.
The caller should delete these two lists when done. This method uses the cell lists created in vtkKdTree::CreateCellLists(). If the cell lists for the process' regions do not exist, this method will first build the cell lists for all regions by calling CreateCellLists(). You must remember to DeleteCellLists() when done with all calls to this method, as cell lists can require a great deal of memory.
int vtkPKdTree::ViewOrderAllProcessesInDirection | ( | const double | directionOfProjection[3], |
vtkIntArray * | orderedList | ||
) |
Return a list of all processes in order from front to back given a vector direction of projection.
Use this to do visibility sorts in parallel projection mode. ‘orderedList’ will be resized to the number of processes. The return value is the number of processes.
int vtkPKdTree::ViewOrderAllProcessesFromPosition | ( | const double | cameraPosition[3], |
vtkIntArray * | orderedList | ||
) |
Return a list of all processes in order from front to back given a camera position.
Use this to do visibility sorts in perspective projection mode. ‘orderedList’ will be resized to the number of processes. The return value is the number of processes.
int vtkPKdTree::GetCellArrayGlobalRange | ( | const char * | name, |
float | range[2] | ||
) |
An added feature of vtkPKdTree is that it will calculate the the global range of field arrays across all processes.
You call CreateGlobalDataArrayBounds() to do this calculation. Then the following methods return the ranges. Returns 1 on error, 0 otherwise.
int vtkPKdTree::GetPointArrayGlobalRange | ( | const char * | name, |
float | range[2] | ||
) |
int vtkPKdTree::GetCellArrayGlobalRange | ( | const char * | name, |
double | range[2] | ||
) |
int vtkPKdTree::GetPointArrayGlobalRange | ( | const char * | name, |
double | range[2] | ||
) |
int vtkPKdTree::GetCellArrayGlobalRange | ( | int | arrayIndex, |
double | range[2] | ||
) |
int vtkPKdTree::GetPointArrayGlobalRange | ( | int | arrayIndex, |
double | range[2] | ||
) |
int vtkPKdTree::GetCellArrayGlobalRange | ( | int | arrayIndex, |
float | range[2] | ||
) |
int vtkPKdTree::GetPointArrayGlobalRange | ( | int | arrayIndex, |
float | range[2] | ||
) |
|
protected |
|
protected |
|
static |
Definition at line 124 of file vtkPKdTree.h.
|
static |
Definition at line 125 of file vtkPKdTree.h.
|
static |
Definition at line 126 of file vtkPKdTree.h.
|
static |
Definition at line 127 of file vtkPKdTree.h.