Namespace SadRogue.Primitives.SpatialMaps
Classes
AdvancedLayeredSpatialMap<T>
A more complex version of LayeredSpatialMap<T> that does not require the items in it to implement IHasID, instead requiring the specification of a custom IEqualityComparer<T> to use for hashing and comparison of items.
AdvancedMultiSpatialMap<T>
A more complex version of MultiSpatialMap<T> that does not require the items in it to implement IHasID, instead requiring the specification of a custom IEqualityComparer<T> to use for hashing and comparison of items.
AdvancedSpatialMap<T>
A more complex version of SpatialMap<T> that does not require the items in it to implement IHasID, instead requiring the specification of a custom IEqualityComparer<T> to use for hashing and comparison of items.
AutoSyncAdvancedLayeredSpatialMap<T>
A version of AdvancedLayeredSpatialMap<T> which takes items that implement IPositionable, and uses that interface's properties/events to automatically ensure items are recorded at the proper positions in the spatial map when they move and that the position fields are updated if the spatial map's move functions are used.
AutoSyncAdvancedMultiSpatialMap<T>
A version of AdvancedMultiSpatialMap<T> which takes items that implement IPositionable, and uses that interface's properties/events to automatically ensure items are recorded at the proper positions in the spatial map when they move and that the position fields are updated if the spatial map's move functions are used.
AutoSyncAdvancedSpatialMap<T>
A version of AdvancedSpatialMap<T> which takes items that implement IPositionable, and uses that interface's properties/events to automatically ensure items are recorded at the proper positions in the spatial map when they move and that the position fields are updated if the spatial map's move functions are used.
AutoSyncLayeredSpatialMap<T>
A version of LayeredSpatialMap<T> which takes items that implement IPositionable, and uses that interface's properties/events to automatically ensure items are recorded at the proper positions in the spatial map when they move and that the position fields are updated if the spatial map's move functions are used.
AutoSyncMultiSpatialMap<T>
A version of MultiSpatialMap<T> which takes items that implement IPositionable, and uses that interface's properties/events to automatically ensure items are recorded at the proper positions in the spatial map when they move and that the position fields are updated if the spatial map's move functions are used.
AutoSyncSpatialMap<T>
A version of SpatialMap<T> which takes items that implement IPositionable, and uses that interface's properties/events to automatically ensure items are recorded at the proper positions in the spatial map when they move and that the position fields are updated if the spatial map's move functions are used.
ItemEventArgs<T>
Event arguments for spatial map events pertaining to an item (ItemAdded, ItemRemoved, etc.)
ItemMovedEventArgs<T>
Event arguments for spatial maps ItemMoved event.
ItemPositionPair<TItem>
Item-location pair denoting an entry in a spatial map.
LayeredSpatialMap<T>
ISpatialMap<T> implementation that can be used to efficiently represent multiple "layers" of objects, with each layer represented as an ISpatialMap<T> instance. It provides the regular spatial map functionality, as well as adds layer masking functionality that allow functions to operate on specific layers only.
LayerMaskEnumerator
A type designed to be returned from Layers(UInt32) in order to enumerate over a set of layers in a layer mask efficiently.
LayerMasker
Allows convenient interpretation and creation of layer masks (bit-masks which indicate one or more layers) that can be used to interact with LayeredSpatialMap<T>.
MultiSpatialMap<T>
An implementation of ISpatialMap<T> that allows multiple items to reside at any given position at the same time. If you wish to allow only one item to reside at each location at a time, use SpatialMap<T> instead. For a situation involving different categories or layers of items, you may want to look at LayeredSpatialMap<T>.
SpatialMap<T>
An implementation of ISpatialMap<T> that allows only one item at each position at a time. If you need multiple items to be able to reside at one location at the same time, use MultiSpatialMap<T> or LayeredSpatialMap<T> instead.
Interfaces
IReadOnlyLayeredSpatialMap<T>
Interface implementing only the read-only functions for LayeredSpatialMap<T>/ AdvancedLayeredSpatialMap<T>.
IReadOnlySpatialMap<T>
Implements the read-only interface of ISpatialMap<T>.
ISpatialMap<T>
Interface representing the common interface of a "spatial map", which is designed to be a convenient and efficient way to store items that reside on a grid and their locations. If you're about to use a List to store all the objects on a grid, consider using one of the provided ISpatialMap implementation instead.