Revision Difference
render.PushCustomClipPlane#518664
<function name="PushCustomClipPlane" parent="render" type="libraryfunc">
<description>
Pushes a new clipping plane of the clip plane stack and sets it as active.
<note>A max of 2 clip planes are supported on Linux/POSIX, and 6 on Windows.</note>
</description>
<realm>Client</realm>
<args>
<arg name="normal" type="Vector">The normal of the clipping plane.</arg>
<arg name="distance" type="number">The distance of the plane from the world origin. You can use <page>Vector:Dot</page> between the normal and any point on the plane to find this, see <page text="Example 1">#Example</page>.</arg>
<arg name="distance" type="number">The distance of the plane from the world origin. You can use <page>Vector:Dot</page> between the normal and any point on the plane to find this, see <page text="Example 1">#Example</page>.</arg>
</args>
</function>
<example>
<description>Clips the lower half of your custom entity</description>
<code>
function ENT:Draw()
local normal = self:GetUp() -- Everything "behind" this normal will be clipped
local position = normal:Dot( self:GetPos() ) -- self:GetPos() is the origin of the clipping plane
local oldEC = render.EnableClipping( true )
render.PushCustomClipPlane( normal, position )
self:DrawModel()
render.PopCustomClipPlane()
render.EnableClipping( oldEC )
end
</code>
</example>