diff options
| author | Rémi Verschelde <remi@verschelde.fr> | 2021-09-21 21:30:30 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-09-21 21:30:30 +0200 |
| commit | ba57252bd8d7928c29e818b1ccf557e279c33ca0 (patch) | |
| tree | 6b037a4a0b8b6907d571b1b847ed6ab3bc7507c3 /modules | |
| parent | 726b826b310900ff475122ed65934d2499b8db4d (diff) | |
| parent | 90908cd67d3f44ba70cc4b7b32f024ce508cc0ee (diff) | |
Merge pull request #52878 from AnilBK/add-get-center
Diffstat (limited to 'modules')
| -rw-r--r-- | modules/csg/csg.cpp | 4 | ||||
| -rw-r--r-- | modules/mono/glue/GodotSharp/GodotSharp/Core/AABB.cs | 10 | ||||
| -rw-r--r-- | modules/mono/glue/GodotSharp/GodotSharp/Core/Rect2.cs | 10 | ||||
| -rw-r--r-- | modules/mono/glue/GodotSharp/GodotSharp/Core/Rect2i.cs | 14 |
4 files changed, 35 insertions, 3 deletions
diff --git a/modules/csg/csg.cpp b/modules/csg/csg.cpp index cb82b65307..cbe41a1310 100644 --- a/modules/csg/csg.cpp +++ b/modules/csg/csg.cpp @@ -517,7 +517,7 @@ int CSGBrushOperation::MeshMerge::_create_bvh(FaceBVH *facebvhptr, FaceBVH **fac int index = r_max_alloc++; FaceBVH *_new = &facebvhptr[index]; _new->aabb = aabb; - _new->center = aabb.position + aabb.size * 0.5; + _new->center = aabb.get_center(); _new->face = -1; _new->left = left; _new->right = right; @@ -678,7 +678,7 @@ void CSGBrushOperation::MeshMerge::mark_inside_faces() { facebvh[i].aabb.position = points[faces[i].points[0]]; facebvh[i].aabb.expand_to(points[faces[i].points[1]]); facebvh[i].aabb.expand_to(points[faces[i].points[2]]); - facebvh[i].center = facebvh[i].aabb.position + facebvh[i].aabb.size * 0.5; + facebvh[i].center = facebvh[i].aabb.get_center(); facebvh[i].aabb.grow_by(vertex_snap); facebvh[i].next = -1; diff --git a/modules/mono/glue/GodotSharp/GodotSharp/Core/AABB.cs b/modules/mono/glue/GodotSharp/GodotSharp/Core/AABB.cs index 8b12537f7f..70a2cf5695 100644 --- a/modules/mono/glue/GodotSharp/GodotSharp/Core/AABB.cs +++ b/modules/mono/glue/GodotSharp/GodotSharp/Core/AABB.cs @@ -67,6 +67,16 @@ namespace Godot } /// <summary> + /// Returns the center of the <see cref="AABB"/>, which is equal + /// to <see cref="Position"/> + (<see cref="Size"/> / 2). + /// </summary> + /// <returns>The center.</returns> + public Vector3 GetCenter() + { + return _position + (_size * 0.5f); + } + + /// <summary> /// Returns <see langword="true"/> if this <see cref="AABB"/> completely encloses another one. /// </summary> /// <param name="with">The other <see cref="AABB"/> that may be enclosed.</param> diff --git a/modules/mono/glue/GodotSharp/GodotSharp/Core/Rect2.cs b/modules/mono/glue/GodotSharp/GodotSharp/Core/Rect2.cs index 1d001fba2d..af94484577 100644 --- a/modules/mono/glue/GodotSharp/GodotSharp/Core/Rect2.cs +++ b/modules/mono/glue/GodotSharp/GodotSharp/Core/Rect2.cs @@ -165,6 +165,16 @@ namespace Godot } /// <summary> + /// Returns the center of the <see cref="Rect2"/>, which is equal + /// to <see cref="Position"/> + (<see cref="Size"/> / 2). + /// </summary> + /// <returns>The center.</returns> + public Vector2 GetCenter() + { + return _position + (_size * 0.5f); + } + + /// <summary> /// Returns a copy of the <see cref="Rect2"/> grown by the specified amount /// on all sides. /// </summary> diff --git a/modules/mono/glue/GodotSharp/GodotSharp/Core/Rect2i.cs b/modules/mono/glue/GodotSharp/GodotSharp/Core/Rect2i.cs index 250b0d0baf..03f406a910 100644 --- a/modules/mono/glue/GodotSharp/GodotSharp/Core/Rect2i.cs +++ b/modules/mono/glue/GodotSharp/GodotSharp/Core/Rect2i.cs @@ -151,7 +151,7 @@ namespace Godot } /// <summary> - /// Returns the area of the <see cref="Rect2"/>. + /// Returns the area of the <see cref="Rect2i"/>. /// </summary> /// <returns>The area.</returns> public int GetArea() @@ -160,6 +160,18 @@ namespace Godot } /// <summary> + /// Returns the center of the <see cref="Rect2i"/>, which is equal + /// to <see cref="Position"/> + (<see cref="Size"/> / 2). + /// If <see cref="Size"/> is an odd number, the returned center + /// value will be rounded towards <see cref="Position"/>. + /// </summary> + /// <returns>The center.</returns> + public Vector2i GetCenter() + { + return _position + (_size / 2); + } + + /// <summary> /// Returns a copy of the <see cref="Rect2i"/> grown by the specified amount /// on all sides. /// </summary> |