Add protective checks for invalid handle use in BVH
Adds DEV_ASSERTS that will halt at runtime if the BVH is misused with invalid IDs, and adds ERR_FAIL macros to prevent calling with invalid IDs. Any such misuse is a bug in the physics, but this should flag any errors quickly.
This commit is contained in:
parent
cd2e7fbc57
commit
109d08c84a
5 changed files with 40 additions and 14 deletions
|
|
@ -60,11 +60,23 @@ private:
|
|||
|
||||
public:
|
||||
// accessors
|
||||
BVHABB_CLASS &get_aabb(uint32_t p_id) { return aabbs[p_id]; }
|
||||
const BVHABB_CLASS &get_aabb(uint32_t p_id) const { return aabbs[p_id]; }
|
||||
BVHABB_CLASS &get_aabb(uint32_t p_id) {
|
||||
BVH_ASSERT(p_id < MAX_ITEMS);
|
||||
return aabbs[p_id];
|
||||
}
|
||||
const BVHABB_CLASS &get_aabb(uint32_t p_id) const {
|
||||
BVH_ASSERT(p_id < MAX_ITEMS);
|
||||
return aabbs[p_id];
|
||||
}
|
||||
|
||||
uint32_t &get_item_ref_id(uint32_t p_id) { return item_ref_ids[p_id]; }
|
||||
const uint32_t &get_item_ref_id(uint32_t p_id) const { return item_ref_ids[p_id]; }
|
||||
uint32_t &get_item_ref_id(uint32_t p_id) {
|
||||
BVH_ASSERT(p_id < MAX_ITEMS);
|
||||
return item_ref_ids[p_id];
|
||||
}
|
||||
const uint32_t &get_item_ref_id(uint32_t p_id) const {
|
||||
BVH_ASSERT(p_id < MAX_ITEMS);
|
||||
return item_ref_ids[p_id];
|
||||
}
|
||||
|
||||
bool is_dirty() const { return dirty; }
|
||||
void set_dirty(bool p) { dirty = p; }
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue