Difference between revisions of "Traceline"
Jump to navigation
Jump to search
(Created page with "traceline is a built-in function that does a raycast in the world. See also: https://quakewiki.org/wiki/traceline") |
|||
Line 1: | Line 1: | ||
traceline is a | traceline is a [[Built In Functions|Built In]] function that does a raycast in the world. Although traceline collides with [[Entity|entities]], it will not find collisions on the model/mesh - only on the bounding box for the entity. | ||
{| class="wikitable" | |||
|+ | |||
!signature | |||
|- | |||
|void(vector v1, vector v2, float nomonsters, entity forent) traceline = #16; | |||
|} | |||
{| class="wikitable" | |||
|+ | |||
!argument name | |||
!type | |||
!description | |||
|- | |||
|v1 | |||
|vector | |||
|start position of raycast | |||
|- | |||
|v2 | |||
|vector | |||
|end position of raycast | |||
|- | |||
|nomonsters | |||
|float | |||
|TRUE/FALSE should raycast ignore monsters? | |||
|- | |||
|forent | |||
|entity | |||
|this entity and its .owner will be ignored for collisions | |||
|} | |||
{| class="wikitable" | |||
|+traceline sets the following global variables: | |||
!name | |||
!description | |||
|- | |||
|trace_allsolid | |||
|'never used' - is it when the whole trace was in a wall? | |||
|- | |||
|trace_startsolid | |||
|'never used' - is it when the start of the trace is in a wall? | |||
|- | |||
|trace_fraction | |||
|how far along (what percent) the line was traversed before there was a collision | |||
|- | |||
|trace_endpos | |||
|either the end of the line or the location of the collision | |||
|- | |||
|trace_plane_normal | |||
|the surface normal of whatever was hit | |||
|- | |||
|trace_plane_dist | |||
|distance in game units from start to collision (or end) | |||
|- | |||
|trace_ent | |||
|If the trace collided with an entity's bounding box, then the entity, otherwise 'world'/0 | |||
|- | |||
|trace_inopen | |||
|TRUE/FALSE did the trace go through open air? | |||
|- | |||
|trace_inwater | |||
|TRUE/FALSE did the trace go through open water/lava/slime? | |||
|} | |||
Latest revision as of 07:05, 24 March 2022
traceline is a Built In function that does a raycast in the world. Although traceline collides with entities, it will not find collisions on the model/mesh - only on the bounding box for the entity.
signature |
---|
void(vector v1, vector v2, float nomonsters, entity forent) traceline = #16; |
argument name | type | description |
---|---|---|
v1 | vector | start position of raycast |
v2 | vector | end position of raycast |
nomonsters | float | TRUE/FALSE should raycast ignore monsters? |
forent | entity | this entity and its .owner will be ignored for collisions |
name | description |
---|---|
trace_allsolid | 'never used' - is it when the whole trace was in a wall? |
trace_startsolid | 'never used' - is it when the start of the trace is in a wall? |
trace_fraction | how far along (what percent) the line was traversed before there was a collision |
trace_endpos | either the end of the line or the location of the collision |
trace_plane_normal | the surface normal of whatever was hit |
trace_plane_dist | distance in game units from start to collision (or end) |
trace_ent | If the trace collided with an entity's bounding box, then the entity, otherwise 'world'/0 |
trace_inopen | TRUE/FALSE did the trace go through open air? |
trace_inwater | TRUE/FALSE did the trace go through open water/lava/slime? |
See also: