Garry's Mod Wiki

util.TraceHull

table util.TraceHull( table TraceData )

Description

Performs an AABB hull (axis-aligned bounding box, aka not rotated) trace with the given trace data.

Clientside entities will not be hit by traces.
This function may not always give desired results clientside due to certain physics mechanisms not existing on the client. Use it serverside for accurate results.

Arguments

1 table TraceData
The trace data to use. See Structures/HullTrace

Returns

1 table
Trace result. See Structures/TraceResult

Example

From a SWEP:PrimaryAttack()

local tr = util.TraceHull( { start = self.Owner:GetShootPos(), endpos = self.Owner:GetShootPos() + ( self.Owner:GetAimVector() * 100 ), filter = self.Owner, mins = Vector( -10, -10, -10 ), maxs = Vector( 10, 10, 10 ), mask = MASK_SHOT_HULL } )

Example

Visual representation of a Hull Trace.

function ENT:Draw() self:DrawModel() local ent = self local mins = ent:OBBMins() local maxs = ent:OBBMaxs() local startpos = ent:GetPos() local dir = ent:GetUp() local len = 128 local tr = util.TraceHull( { start = startpos, endpos = startpos + dir * len, maxs = maxs, mins = mins, filter = ent } ) render.DrawLine( tr.HitPos, startpos + dir * len, color_white, true ) render.DrawLine( startpos, tr.HitPos, Color( 0, 0, 255 ), true ) local clr = color_white if ( tr.Hit ) then clr = Color( 255, 0, 0 ) end render.DrawWireframeBox( startpos, Angle( 0, 0, 0 ), mins, maxs, Color( 255, 255, 255 ), true ) render.DrawWireframeBox( tr.HitPos, Angle( 0, 0, 0 ), mins, maxs, clr, true ) end
Output:

Example

Trace a player sized hull to detect if a player can spawn here without getting stuck inside anything.

local pos = Entity(1):GetPos() -- Choose your position. local tr = { start = pos, endpos = pos, mins = Vector( -16, -16, 0 ), maxs = Vector( 16, 16, 71 ) } local hullTrace = util.TraceHull( tr ) if ( hullTrace.Hit ) then -- Find a new spawnpoint end

Page Links


Special Pages


Wikis

?

Render Time: 54ms

DB GetPage 8
Generate Html 13
SaveChanges (1) 11
Render Body 0
Render Sidebar 19