summaryrefslogtreecommitdiff
path: root/Plugins/MonoGame.Extended/source/MonoGame.Extended.Collisions/ISpaceAlgorithm.cs
diff options
context:
space:
mode:
authorchai <215380520@qq.com>2024-06-03 10:15:45 +0800
committerchai <215380520@qq.com>2024-06-03 10:15:45 +0800
commitacea7b2e728787a0d83bbf83c8c1f042d2c32e7e (patch)
tree0bfec05c1ca2d71be2c337bcd110a0421f19318b /Plugins/MonoGame.Extended/source/MonoGame.Extended.Collisions/ISpaceAlgorithm.cs
parent88febcb02bf127d961c6471d9e846c0e1315f5c3 (diff)
+ plugins project
Diffstat (limited to 'Plugins/MonoGame.Extended/source/MonoGame.Extended.Collisions/ISpaceAlgorithm.cs')
-rw-r--r--Plugins/MonoGame.Extended/source/MonoGame.Extended.Collisions/ISpaceAlgorithm.cs40
1 files changed, 40 insertions, 0 deletions
diff --git a/Plugins/MonoGame.Extended/source/MonoGame.Extended.Collisions/ISpaceAlgorithm.cs b/Plugins/MonoGame.Extended/source/MonoGame.Extended.Collisions/ISpaceAlgorithm.cs
new file mode 100644
index 0000000..a95f737
--- /dev/null
+++ b/Plugins/MonoGame.Extended/source/MonoGame.Extended.Collisions/ISpaceAlgorithm.cs
@@ -0,0 +1,40 @@
+using System.Collections.Generic;
+
+namespace MonoGame.Extended.Collisions;
+
+/// <summary>
+/// Interface, which split space for optimization of collisions.
+/// </summary>
+public interface ISpaceAlgorithm
+{
+ /// <summary>
+ /// Inserts the actor into the space.
+ /// The actor will have its OnCollision called when collisions occur.
+ /// </summary>
+ /// <param name="actor">Actor to insert.</param>
+ void Insert(ICollisionActor actor);
+
+ /// <summary>
+ /// Removes the actor into the space.
+ /// </summary>
+ /// <param name="actor">Actor to remove.</param>
+ bool Remove(ICollisionActor actor);
+
+ /// <summary>
+ /// Removes the actor into the space.
+ /// The actor will have its OnCollision called when collisions occur.
+ /// </summary>
+ /// <param name="actor">Actor to remove.</param>
+ IEnumerable<ICollisionActor> Query(RectangleF boundsBoundingRectangle);
+
+ /// <summary>
+ /// for foreach
+ /// </summary>
+ /// <returns></returns>
+ List<ICollisionActor>.Enumerator GetEnumerator();
+
+ /// <summary>
+ /// Restructure the space with new positions.
+ /// </summary>
+ void Reset();
+}