**glClipPlane**

### NAME

**glClipPlane** -- specify a plane against which all geometry is clipped
### C SPECIFICATION

void **glClipPlane**(GLenum *plane*,
const GLdouble **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 double-precision
floating-point values. These values are interpreted as a plane
equation.

### 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. Up to
**GL_MAX_CLIP_PLANES** planes can be specified, where
**GL_MAX_CLIP_PLANES** is at least six in all implementations. 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, *equation* is transformed by the
inverse of the modelview matrix and stored in the resulting eye coordinates.
Subsequent changes to the modelview matrix have no effect on the stored
plane-equation components. 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*.

Clipping planes are enabled and disabled with
**glDisable**, and called with the argument
**GL_CLIP_PLANE***i*, where *i* is the plane number.

By default, all clipping planes are defined as (0,0,0,0) in eye coordinates
and are disabled.

### NOTES

It is always the case, that **GL_CLIP_PLANE***i* =
**GL_CLIP_PLANE0**+*i*.
### ERRORS

**GL_INVALID_ENUM** is generated if *plane* is not an accepted value.
**GL_INVALID_OPERATION** is generated if **glClipPlane** is called
between a call to **glBegin** and the
corresponding call to **glEnd**.

### ASSOCIATED GETS

**glGetClipPlane**

**glIsEnabled** with argument
**GL_CLIP_PLANE***i*

### SEE ALSO

**glEnable**

back to the **OpenGL index page**

© *1995 Uwe Behrens. All rights reserved.*