Make CollisionShape selection box use shape AABB

This commit is contained in:
Haoyu Qiu 2023-01-13 18:19:26 +08:00
parent 2d5f9c49a4
commit d16a1c7579
2 changed files with 16 additions and 0 deletions

View file

@ -141,6 +141,18 @@ String CollisionShape::get_configuration_warning() const {
return warning;
}
#ifdef TOOLS_ENABLED
AABB CollisionShape::get_fallback_gizmo_aabb() const {
if (shape.is_null()) {
return Spatial::get_fallback_gizmo_aabb();
}
// get_debug_mesh() is not const because the mesh is lazy initialized and cached.
// It would be better if we can mark the cache mutable and make get_debug_mesh() const.
return const_cast<CollisionShape *>(this)->shape->get_debug_mesh()->get_aabb();
}
#endif
void CollisionShape::_bind_methods() {
//not sure if this should do anything
ClassDB::bind_method(D_METHOD("resource_changed", "resource"), &CollisionShape::resource_changed);

View file

@ -64,6 +64,10 @@ public:
String get_configuration_warning() const;
#ifdef TOOLS_ENABLED
virtual AABB get_fallback_gizmo_aabb() const;
#endif
CollisionShape();
~CollisionShape();
};