GLCLIPPLANE(3G) UNIX Programmer's Manual 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 posi-
tioned. 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 specif-
ication 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 clip-
ping 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 coordi-
nates 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.
MirBSD #10-current Printed 2021-12-07 1
GLCLIPPLANE(3G) UNIX Programmer's Manual GLCLIPPLANE(3G)

## 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 exe-
cution of **glEnd**.

## ASSOCIATED GETS

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

## SEE ALSO

**glEnable(3G)**
MirBSD #10-current Printed 2021-12-07 2