# 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**-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**()

## Copyright

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

## Authors

**opengl.org**