---
name: "glClipPlane"
section: "3x"
platform: "linux"
package: "xlibmesa-gl-dev"
version: "4.3.0.dfsg.1-14sarge7"
release: "Debian 3.1 (Sarge)"
platforms: ["linux"]
url: "https://new.carta.tech/glClipPlane"
---

# glClipPlane(3x)

specify a plane against which all geometry is clipped

## NAME

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

## C SPECIFICATION

void **glClipPlane**( GLenum *plane*,

```
	const GLdouble *equation )
```

delim $$

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