// MIT License - Copyright (c) 2025 wallstop
// Full license text: https://github.com/wallstop/unity-helpers/blob/main/LICENSE
namespace WallstopStudios.UnityHelpers.Core.DataStructure
{
using System;
using System.Collections.Generic;
using UnityEngine;
///
/// Disposable abstraction for 3D spatial hashes so pooled resources are always released.
///
/// Stored element type.
public interface ISpatialHash3D : IDisposable
{
float CellSize { get; }
int CellCount { get; }
void Insert(Vector3 position, T item);
bool Remove(Vector3 position, T item);
List Query(
Vector3 position,
float radius,
List results,
bool distinct = true,
bool exactDistance = true
);
List QueryBox(Bounds bounds, List results, bool distinct = true);
void Clear();
}
}