2003-2004 Silicon Graphics, Inc.
glClipPlane 3G
glClipPlane glClipPlanef glClipPlanex specify a plane against which all geometry is clipped

## C Specification

void `glClipPlanef` GLenum plane const GLfloat *equation void `glClipPlanex` GLenum plane const GLfixed *equation

## Parameters

plane

  Specifies which clipping plane is being positioned. Symbolic names of the form `GL_CLIP_PLANE` i, where i is an integer between 0 and `GL_MAX_CLIP_PLANES` -1 , are accepted.

equation

  Specifies the address of an array of four fixed-point or floating-point values. These are the coefficients of a plane equation in object coordinates: p1, p2, p3, and p4, in that order.

## Description

Geometry is always clipped against the boundaries of a six-plane frustum in x, y, and z. `glClipPlane` allows the specification of additional planes, not necessarily perpendicular to the x, y, or z axis, against which all geometry is clipped. To determine the maximum number of additional clipping planes, call glGet with argument `GL_MAX_CLIP_PLANES`. All implementations support at least one such clipping plane. Because the resulting clipping region is the intersection of the defined half-spaces, it is always convex.

`glClipPlane` specifies a half-space using a four-component plane equation. When `glClipPlane` is called, the coefficients given by equation are transformed by the inverse of the modelview matrix and stored in the resulting eye coordinates. The resulting plane equation is undefined, if the model-view matrix M is singular and it may be inaccurate, if M is poorly conditioned. Subsequent changes to the modelview matrix have no effect on the stored plane-equation coefficients. If the dot product of the eye coordinates of a vertex with the stored plane equation components is positive or zero, the vertex is `in` with respect to that clipping plane. Otherwise, it is `out`.

To enable and disable clipping planes, call glEnable and `glDisable` with the argument `GL_CLIP_PLANEi`, where `i` is the plane number.

All clipping planes are initially defined as `(0, 0, 0, 0)` in eye coordinates and are disabled.

## Notes

It is always the case that GL_CLIP_PLANEi = GL_CLIP_PLANE0 + `i` .

## Errors

`GL_INVALID_ENUM` is generated if plane is not an accepted value.

## Associated Gets

glGetClipPlane , glIsEnabled with argument `GL_CLIP_PLANEi`.

## See Also

glGetClipPlane , glGet , glEnable

## Copyright

Copyright 2003-2004 Silicon Graphics, Inc. This document is licensed under the SGI Free Software B License. For details, see http://oss.sgi.com/projects/FreeB/.