Module |
|
Header |
/Engine/Plugins/Experimental/GeometryProcessing/Source/GeometricObjects/Public/Spatial/PointHashGrid3.h |
Include |
#include "Spatial/PointHashGrid3.h" |
template<typename PointDataType, typename RealType>
class TPointHashGrid3
Hash Grid for values associated with 3D points.
This class addresses the situation where you have a list of (point, point_data) and you would like to be able to do efficient proximity queries, i.e. find the nearest point_data for a given query point.
We don't store copies of the 3D points. You provide a point_data type. This could just be the integer index into your list for example, a pointer to something more complex, etc. Insert and Remove functions require you to pass in the 3D point for the point_data. To Update a point you need to know its old and new 3D coordinates.
Name | Description | |
---|---|---|
|
TPointHashGrid3 ( |
Construct 3D hash grid |
Name | Description | ||
---|---|---|---|
|
TPair< Point... |
FindNearestInRadius ( |
Find nearest point in grid, within a given sphere, without locking / thread-safety. |
|
int |
FindPointsInBall ( |
Find all points in grid within a given sphere, without locking / thread-safety. |
|
PointDataTyp... |
GetInvalidValue() |
Invalid grid value |
|
InsertPoint ( |
Insert at given position. This function is thread-safe. |
|
|
InsertPointUnsafe ( |
Insert at given position, without locking / thread-safety |
|
|
IsCellEmpty ( |
Test if the cell containing Position is empty. |
|
|
IsCellEmptyUnsafe ( |
Test if the whole cell containing Position is empty, without locking / thread-safety Can be used to skip a more expensive range search, in some cases. |
|
|
RemovePoint ( |
Remove at given position. This function is thread-safe. |
|
|
RemovePointUnsafe ( |
Remove at given position, without locking / thread-safety |
|
|
UpdatePoint |
Move value from old to new position. This function is thread-safe. |
|
|
UpdatePointUnsafe |
Move value from old to new position, without locking / thread-safety |