Skip to content

Commit

Permalink
Merge pull request #71320 from timothyqiu/collision-shape-aabb
Browse files Browse the repository at this point in the history
[3.x] Make CollisionShape selection box use shape AABB
  • Loading branch information
akien-mga committed Jan 13, 2023
2 parents 2d5f9c4 + d16a1c7 commit 031401f
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 0 deletions.
12 changes: 12 additions & 0 deletions scene/3d/collision_shape.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
4 changes: 4 additions & 0 deletions scene/3d/collision_shape.h
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,10 @@ class CollisionShape : public Spatial {

String get_configuration_warning() const;

#ifdef TOOLS_ENABLED
virtual AABB get_fallback_gizmo_aabb() const;
#endif

CollisionShape();
~CollisionShape();
};
Expand Down

0 comments on commit 031401f

Please sign in to comment.