diff options
| author | Juan Linietsky | 2017-07-15 01:23:10 -0300 |
|---|---|---|
| committer | Juan Linietsky | 2017-07-15 08:32:34 -0300 |
| commit | 2e73be99d8d86d9dad7bcb99518a4d3cbb5c373c (patch) | |
| tree | d863db50852afe5d4b0bc15b8452054498004cb1 /servers/physics/broad_phase_basic.cpp | |
| parent | e64b82ebfcc3475c7a7d2a9196bfe20d6c9e3614 (diff) | |
| download | godot-2e73be99d8d86d9dad7bcb99518a4d3cbb5c373c.tar.gz godot-2e73be99d8d86d9dad7bcb99518a4d3cbb5c373c.tar.zst godot-2e73be99d8d86d9dad7bcb99518a4d3cbb5c373c.zip | |
Diffstat (limited to 'servers/physics/broad_phase_basic.cpp')
| -rw-r--r-- | servers/physics/broad_phase_basic.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/servers/physics/broad_phase_basic.cpp b/servers/physics/broad_phase_basic.cpp index 77d853857..679b9a31f 100644 --- a/servers/physics/broad_phase_basic.cpp +++ b/servers/physics/broad_phase_basic.cpp @@ -105,6 +105,26 @@ int BroadPhaseBasic::get_subindex(ID p_id) const { return E->get().subindex; } +int BroadPhaseBasic::cull_point(const Vector3 &p_point, CollisionObjectSW **p_results, int p_max_results, int *p_result_indices) { + + int rc = 0; + + for (Map<ID, Element>::Element *E = element_map.front(); E; E = E->next()) { + + const Rect3 aabb = E->get().aabb; + if (aabb.has_point(p_point)) { + + p_results[rc] = E->get().owner; + p_result_indices[rc] = E->get().subindex; + rc++; + if (rc >= p_max_results) + break; + } + } + + return rc; +} + int BroadPhaseBasic::cull_segment(const Vector3 &p_from, const Vector3 &p_to, CollisionObjectSW **p_results, int p_max_results, int *p_result_indices) { int rc = 0; |
