# glClipPlane

The **glClipPlane** function specifies a plane against which all geometry is clipped.

```
void glClipPlane(
GLenum plane, const GLdouble *equation);
```

#### Parameters

*plane*

The clipping plane that 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*

The address of an array of four double-precision floating-point values. These values are interpreted as a plane equation.

#### Remarks

Geometry is always clipped against the boundaries of a six-plane frustum in *x*, *y*, and *z*. The **glClipPlane** function allows the specification of additional planes, not necessarily perpendicular to the *x-* , *y-* , or *z*-axis, against which all geometry is clipped. Up to GL_MAX_CLIP_PLANES planes can be specified, where GL_MAX_CLIP_PLANES is at least six in all implementations. Because the resulting clipping region is the intersection of the defined half-spaces, it is always convex.

The **glClipPlane** function specifies a half-space using a four-component plane equation. When you call **glClipPlane**, *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*.

Use the **glEnable** and **glDisable** functions to enable and disable clipping planes. Call clipping planes with the argument GL_CLIP_PLANE*i*, where *i* is the plane number.

By default, all clipping planes are defined as (0,0,0,0) in eye coordinates and are disabled.

It is always the case that GL_CLIP_PLANE*i* = GL_CLIP_PLANE0 + *i*.

The following functions retrieve information related to **glClipPlane**:

**glIsEnabled** with argument GL_CLIP_PLANE*i*

#### Error Codes

The following are the error codes generated and their conditions.

Error code | Condition |
---|---|

GL_INVALID_ENUM | plane was not an accepted value. |

GL_INVALID_OPERATION | glClipPlane was called between a call to glBegin and the corresponding call to glEnd. |

#### Requirements

** Windows NT/2000:** Requires Windows NT 3.5 or later.

** Windows 95/98:** Requires Windows 95 or later. Available as a redistributable for Windows 95.

** Header:** Declared in Gl.h.

** Library:** Use Opengl32.lib.

#### See Also

**glBegin**, **glDisable**, **glEnable**, **glEnd**, **glGetClipPlane**, **glIsEnabled**