using System.Numerics; namespace AcDream.App.Rendering; /// /// Sweeps a small sphere from the camera pivot (player head) toward the /// desired eye and returns the stopped (non-penetrating) eye. The seam that /// lets collide its eye without depending on /// the physics engine directly (and stay unit-testable with a fake). /// public interface ICameraCollisionProbe { /// /// Roll a collision sphere from to /// ; return the position it reaches without /// penetrating geometry. Returns unchanged /// when nothing blocks the path or when is 0. /// Vector3 SweepEye(Vector3 pivot, Vector3 desiredEye, uint cellId, uint selfEntityId); }