warp.hash_grid_query#
- warp.hash_grid_query( ) HashGridQuery#
Kernel
Construct a point query against a
warp.HashGrid.Returns a query that iterates over candidate neighbors of
point: every point in the grid cells overlapped by the box frompoint - max_disttopoint + max_dist. These are candidates — the grid does not test distance, so some are farther thanmax_dist; filter by actual distance yourself. Advance the query and read each candidate’s index withhash_grid_query_next().pointmust be in the same coordinate space as the points the grid was built from (seewarp.HashGrid).- Parameters:
id – The
warp.HashGrididentifierpoint – The query point
max_dist – The query radius
- Returns:
A hash-grid query object to pass to
hash_grid_query_next().
Example
@wp.kernel def count_neighbors(grid_id: wp.uint64, pts: wp.array[wp.vec3], radius: wp.float32, out_count: wp.array[wp.int32]): i = wp.tid() p = pts[i] query = wp.hash_grid_query(grid_id, p, radius) index = int(0) n = int(0) while wp.hash_grid_query_next(query, index): if wp.length(p - pts[index]) <= radius: n += 1 out_count[i] = n points = wp.array([[0,0,0],[0.1,0,0],[0.5,0,0],[2.0,0,0]], dtype=wp.vec3) grid = wp.HashGrid(dim_x=8, dim_y=8, dim_z=8) grid.build(points=points, radius=0.3) out_count = wp.zeros(4, dtype=wp.int32) wp.launch(count_neighbors, dim=4, inputs=[grid.id, points, 0.3], outputs=[out_count]) print(out_count.numpy())
[2 2 1 1]
- warp.hash_grid_query( ) HashGridQuery
Kernel
Construct a point query against a
warp.HashGrid, restricted to one point group.Returns a query that iterates over candidate neighbors of
point: every point in the grid cells overlapped by the box frompoint - max_disttopoint + max_dist. These are candidates — the grid does not test distance, so some are farther thanmax_dist; filter by actual distance yourself. Advance the query and read each candidate’s index withhash_grid_query_next().pointmust be in the same coordinate space as the points the grid was built from (seewarp.HashGrid).If the grid was built with groups, only points whose group id equals
groupare returned as candidates; anyint32value is a valid group id. Omit thegroupargument to visit all groups, matching ungrouped behavior. Unlike grouped BVH queries, grouped hash-grid queries do not require a root lookup; pass the group id directly.- Parameters:
id – The
warp.HashGrididentifierpoint – The query point
max_dist – The query radius
group – Restrict candidates to points built with this group id
- Returns:
A hash-grid query object to pass to
hash_grid_query_next().
- warp.hash_grid_query( ) HashGridQuery
Kernel
Construct a point query against a
warp.HashGrid(float16 precision).The
float16overload ofhash_grid_query(). Behavior and usage match the defaultfloat32overload; see it for details and a usage example.- Parameters:
id – The
warp.HashGrididentifierpoint – The query point
max_dist – The query radius
- Returns:
A hash-grid query object to pass to
hash_grid_query_next().
- warp.hash_grid_query( ) HashGridQuery
Kernel
Construct a point query against a
warp.HashGrid, restricted to one point group (float16 precision).The
float16overload ofhash_grid_query(). Behavior and usage match the defaultfloat32overload; see it for details and a usage example.If the grid was built with groups, only points whose group id equals
groupare returned as candidates; anyint32value is a valid group id. Omit thegroupargument to visit all groups, matching ungrouped behavior. Unlike grouped BVH queries, grouped hash-grid queries do not require a root lookup; pass the group id directly.- Parameters:
id – The
warp.HashGrididentifierpoint – The query point
max_dist – The query radius
group – Restrict candidates to points built with this group id
- Returns:
A hash-grid query object to pass to
hash_grid_query_next().
- warp.hash_grid_query( ) HashGridQuery
Kernel
Construct a point query against a
warp.HashGrid(float64 precision).The
float64overload ofhash_grid_query(). Behavior and usage match the defaultfloat32overload; see it for details and a usage example.- Parameters:
id – The
warp.HashGrididentifierpoint – The query point
max_dist – The query radius
- Returns:
A hash-grid query object to pass to
hash_grid_query_next().
- warp.hash_grid_query( ) HashGridQuery
Kernel
Construct a point query against a
warp.HashGrid, restricted to one point group (float64 precision).The
float64overload ofhash_grid_query(). Behavior and usage match the defaultfloat32overload; see it for details and a usage example.If the grid was built with groups, only points whose group id equals
groupare returned as candidates; anyint32value is a valid group id. Omit thegroupargument to visit all groups, matching ungrouped behavior. Unlike grouped BVH queries, grouped hash-grid queries do not require a root lookup; pass the group id directly.- Parameters:
id – The
warp.HashGrididentifierpoint – The query point
max_dist – The query radius
group – Restrict candidates to points built with this group id
- Returns:
A hash-grid query object to pass to
hash_grid_query_next().