##
table of contents

GLCLIPPLANE(3G) | GLCLIPPLANE(3G) |

# 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.
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**
$+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*

# SEE ALSO¶

**glEnable(3G)**