A move against a studio model's hitboxes, posed as FTE's server poses it
(HLMDL_Trace): a hitbox struck gives the trace its group as surface_id, its bone
(from 1) as bone_id, its number (from 1) as brush_id and its face (from 1, 0 when
the move started inside it) as brush_face.
pose = %{sequence: 3, time: 0.4, base_sequence: 0, base_bones: 0}
QuakeServer.World.Hitboxes.trace(studio, pose, axes, from, to, mins, maxs, mask)The pose is the entity's frame (the sequence, bit 0x8000 ignored), frame1time
(seconds into it), baseframe and basebone (the first basebone bones take
baseframe instead); bone controllers sit at 0 and a sequence's blends are mixed
evenly. from and to are relative to the entity's origin; axes are its turned
forward, left and up rows, or nil when it is not turned.
The trace is {:ok, trace}, or :unposed for a sequence of no frames or one whose
even mix needs a blend past the second, which Cauldron3D.Formats.Studio.locals/4
does not read.
Summary
Functions
The move from from to to of a box mins..maxs against studio's hitboxes in pose.
Types
Functions
@spec trace( Cauldron3D.Formats.Studio.t(), pose(), {Cauldron3D.Vec.t(), Cauldron3D.Vec.t(), Cauldron3D.Vec.t()} | nil, Cauldron3D.Vec.t(), Cauldron3D.Vec.t(), Cauldron3D.Vec.t(), Cauldron3D.Vec.t(), non_neg_integer() ) :: {:ok, QuakeServer.World.Trace.t()} | :unposed
The move from from to to of a box mins..maxs against studio's hitboxes in pose.