|
| | TPointHashGrid3 (RealType CellSize, PointDataType InvalidValue) |
| |
| void | Reserve (int32 Num) |
| |
| void | Reset (RealType NewCellSize) |
| |
| PointDataType | GetInvalidValue () const |
| |
| void | InsertPoint (const PointDataType &Value, const TVector< RealType > &Position) |
| |
| void | InsertPointUnsafe (const PointDataType &Value, const TVector< RealType > &Position) |
| |
| bool | RemovePoint (const PointDataType &Value, const TVector< RealType > &Position) |
| |
| bool | RemovePointUnsafe (const PointDataType &Value, const TVector< RealType > &Position) |
| |
| bool | IsCellEmpty (const TVector< RealType > &Position) |
| |
| bool | IsCellEmptyUnsafe (const TVector< RealType > &Position) |
| |
| void | UpdatePoint (const PointDataType &Value, const TVector< RealType > &OldPosition, const TVector< RealType > &NewPosition) |
| |
| void | UpdatePointUnsafe (const PointDataType &Value, const TVector< RealType > &OldPosition, const TVector< RealType > &NewPosition) |
| |
| TPair< PointDataType, RealType > | FindNearestInRadius (const TVector< RealType > &QueryPoint, RealType Radius, TFunctionRef< RealType(const PointDataType &)> DistanceSqFunc, TFunctionRef< bool(const PointDataType &)> IgnoreFunc) const |
| |
| TPair< PointDataType, RealType > | FindNearestInRadius (const TVector< RealType > &QueryPoint, RealType Radius, TFunctionRef< RealType(const PointDataType &)> DistanceSqFunc) const |
| |
| TPair< PointDataType, RealType > | FindAnyInRadius (const TVector< RealType > &QueryPoint, RealType Radius, TFunctionRef< RealType(const PointDataType &)> DistanceSqFunc, TFunctionRef< bool(const PointDataType &)> IgnoreFunc) const |
| |
| TPair< PointDataType, RealType > | FindAnyInRadius (const TVector< RealType > &QueryPoint, RealType Radius, TFunctionRef< RealType(const PointDataType &)> DistanceSqFunc) const |
| |
| int | FindPointsInBall (const TVector< RealType > &QueryPoint, RealType Radius, TFunctionRef< RealType(const PointDataType &)> DistanceSqFunc, TArray< PointDataType > &ResultsOut, TFunctionRef< bool(const PointDataType &)> IgnoreFunc=[](const PointDataType &data) { return false;}) const |
| |
| void | EnumeratePointsInBall (const TVector< RealType > &QueryPoint, RealType Radius, TFunctionRef< RealType(const PointDataType &)> DistanceSqFunc, TFunctionRef< bool(PointDataType, double)> ProcessPointFunc, TFunctionRef< bool(const PointDataType &)> IgnoreFunc=[](const PointDataType &data) { return false;}) const |
| |
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.