using System.Numerics; using AcDream.Core.Selection; namespace AcDream.App.Rendering.Selection; /// /// Narrow seam from the normal world draw traversal to retail mouse selection. /// Only entities which survive that traversal are published. /// internal interface IRetailSelectionRenderSink { void AddVisiblePart( uint serverGuid, uint localEntityId, int partIndex, uint gfxObjId, Matrix4x4 partWorld); } /// /// Read-only mirror of the exact geometry and drawing-sphere acceptance used /// by the retained selection scene. G2's packed dispatcher referee uses it /// without publishing a second picking frame. /// internal interface IRetailSelectionRenderOracle { bool TryCreateVisiblePart( uint serverGuid, uint localEntityId, int partIndex, uint gfxObjId, Matrix4x4 partWorld, out RetailSelectionPart part); }