# glClipPlane.3G man page

**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**$\text{}-\text{}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. To determine the maximum number of additional clipping planes, call **glGetIntegerv** with argument **GL_MAX_CLIP_PLANES**. All implementations support at least six such clipping planes. 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*.

To enable and disable clipping planes, call **glEnable** and **glDisable** with the argument **GL_CLIP_PLANE***i*, 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_PLANE**$i$ = **GL_CLIP_PLANE0**$\text{\hspace{0.5em}}+\text{\hspace{0.5em}}i$.

## Errors

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

**GL_INVALID_OPERATION** is generated if **glClipPlane** is executed between the execution of **glBegin** and the corresponding execution of **glEnd**.

## Associated Gets

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