2
0
Эх сурвалжийг харах

[C#] Fix `Encloses` failing on shared upper bound for `AABB` and
`Rect2(I)`

(cherry picked from commit 227a165ce4ecf2c040263075ed4b23862519af6f)

A Thousand Ships 1 жил өмнө
parent
commit
e070bbc77e

+ 3 - 3
modules/mono/glue/GodotSharp/GodotSharp/Core/Aabb.cs

@@ -95,11 +95,11 @@ namespace Godot
             Vector3 dstMax = with._position + with._size;
             Vector3 dstMax = with._position + with._size;
 
 
             return srcMin.X <= dstMin.X &&
             return srcMin.X <= dstMin.X &&
-                   srcMax.X > dstMax.X &&
+                   srcMax.X >= dstMax.X &&
                    srcMin.Y <= dstMin.Y &&
                    srcMin.Y <= dstMin.Y &&
-                   srcMax.Y > dstMax.Y &&
+                   srcMax.Y >= dstMax.Y &&
                    srcMin.Z <= dstMin.Z &&
                    srcMin.Z <= dstMin.Z &&
-                   srcMax.Z > dstMax.Z;
+                   srcMax.Z >= dstMax.Z;
         }
         }
 
 
         /// <summary>
         /// <summary>

+ 2 - 2
modules/mono/glue/GodotSharp/GodotSharp/Core/Rect2.cs

@@ -120,8 +120,8 @@ namespace Godot
         public readonly bool Encloses(Rect2 b)
         public readonly bool Encloses(Rect2 b)
         {
         {
             return b._position.X >= _position.X && b._position.Y >= _position.Y &&
             return b._position.X >= _position.X && b._position.Y >= _position.Y &&
-               b._position.X + b._size.X < _position.X + _size.X &&
-               b._position.Y + b._size.Y < _position.Y + _size.Y;
+               b._position.X + b._size.X <= _position.X + _size.X &&
+               b._position.Y + b._size.Y <= _position.Y + _size.Y;
         }
         }
 
 
         /// <summary>
         /// <summary>

+ 2 - 2
modules/mono/glue/GodotSharp/GodotSharp/Core/Rect2I.cs

@@ -110,8 +110,8 @@ namespace Godot
         public readonly bool Encloses(Rect2I b)
         public readonly bool Encloses(Rect2I b)
         {
         {
             return b._position.X >= _position.X && b._position.Y >= _position.Y &&
             return b._position.X >= _position.X && b._position.Y >= _position.Y &&
-               b._position.X + b._size.X < _position.X + _size.X &&
-               b._position.Y + b._size.Y < _position.Y + _size.Y;
+               b._position.X + b._size.X <= _position.X + _size.X &&
+               b._position.Y + b._size.Y <= _position.Y + _size.Y;
         }
         }
 
 
         /// <summary>
         /// <summary>