summaryrefslogtreecommitdiff
path: root/Plugins/MonoGame.Extended/source/MonoGame.Extended.Collisions/ISpaceAlgorithm.cs
diff options
context:
space:
mode:
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();
+}