using System.Numerics; namespace AcDream.Core.Physics; /// /// One collision-bearing shape attached to a logical PhysicsObj. /// A door emits 3-4 (CylSphere(s) + Sphere(s) + Part-BSPs); a creature /// may emit a few; a simple item zero. Positions and rotations are /// LOCAL to the entity's origin so /// can re-transform them when the entity moves. /// /// /// Retail anchor: CPhysicsPart + CPhysicsPart::find_obj_collisions /// at acclient_2013_pseudo_c.txt:275045-275055. Each part stores its /// own transform and dispatches per-part collision to its GfxObj. /// /// public readonly record struct ShadowShape( uint GfxObjId, Vector3 LocalPosition, Quaternion LocalRotation, float Scale, ShadowCollisionType CollisionType, float Radius, float CylHeight);