diff options
-rw-r--r-- | doc/classes/GeometryInstance.xml | 9 | ||||
-rw-r--r-- | scene/3d/visual_instance.cpp | 7 | ||||
-rw-r--r-- | scene/3d/visual_instance.h | 2 |
3 files changed, 18 insertions, 0 deletions
diff --git a/doc/classes/GeometryInstance.xml b/doc/classes/GeometryInstance.xml index d6267044f7..f2f97d0264 100644 --- a/doc/classes/GeometryInstance.xml +++ b/doc/classes/GeometryInstance.xml @@ -11,6 +11,15 @@ <demos> </demos> <methods> + <method name="set_custom_aabb"> + <return type="void"> + </return> + <argument index="0" name="aabb" type="AABB"> + </argument> + <description> + Overrides the bounding box of this node with a custom one. To remove it, set an AABB with all fields set to zero. + </description> + </method> </methods> <members> <member name="cast_shadow" type="int" setter="set_cast_shadows_setting" getter="get_cast_shadows_setting" enum="GeometryInstance.ShadowCastingSetting"> diff --git a/scene/3d/visual_instance.cpp b/scene/3d/visual_instance.cpp index 1bbf1b7bc7..0af6df72b6 100644 --- a/scene/3d/visual_instance.cpp +++ b/scene/3d/visual_instance.cpp @@ -263,6 +263,11 @@ float GeometryInstance::get_extra_cull_margin() const { return extra_cull_margin; } +void GeometryInstance::set_custom_aabb(AABB aabb) { + + VS::get_singleton()->instance_set_custom_aabb(get_instance(), aabb); +} + void GeometryInstance::_bind_methods() { ClassDB::bind_method(D_METHOD("set_material_override", "material"), &GeometryInstance::set_material_override); @@ -289,6 +294,8 @@ void GeometryInstance::_bind_methods() { ClassDB::bind_method(D_METHOD("set_extra_cull_margin", "margin"), &GeometryInstance::set_extra_cull_margin); ClassDB::bind_method(D_METHOD("get_extra_cull_margin"), &GeometryInstance::get_extra_cull_margin); + ClassDB::bind_method(D_METHOD("set_custom_aabb", "aabb"), &GeometryInstance::set_custom_aabb); + ClassDB::bind_method(D_METHOD("get_aabb"), &GeometryInstance::get_aabb); ADD_GROUP("Geometry", ""); diff --git a/scene/3d/visual_instance.h b/scene/3d/visual_instance.h index 3b6fccf65f..9192f059a9 100644 --- a/scene/3d/visual_instance.h +++ b/scene/3d/visual_instance.h @@ -137,6 +137,8 @@ public: void set_extra_cull_margin(float p_margin); float get_extra_cull_margin() const; + void set_custom_aabb(AABB aabb); + GeometryInstance(); }; |