NAME

glClipPlane - specify a plane against which all geometry is clipped

C SPECIFICATION

void ggllCClliippPPllaannee( GLenum _p_l_a_n_e,
                  const GLdouble _*_e_q_u_a_t_i_o_n )

delim $$

PARAMETERS

_p_l_a_n_e
Specifies which clipping plane is being positioned. Symbolic names of the form GGLL__CCLLIIPP__PPLLAANNEE_i, where _i is an integer between 0 and GGLL__MMAAXX__CCLLIIPP__PPLLAANNEESS$^-^1$, are accepted.
_e_q_u_a_t_i_o_n
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. ggllCClliippPPllaannee 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 ggllGGeettIInntteeggeerrvv with argument GGLL__MMAAXX__CCLLIIPP__PPLLAANNEESS. 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.

ggllCClliippPPllaannee specifies a half-space using a four-component plane equation. When ggllCClliippPPllaannee is called, _e_q_u_a_t_i_o_n 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 _i_n with respect to that clipping plane. Otherwise, it is _o_u_t.

To enable and disable clipping planes, call ggllEEnnaabbllee and ggllDDiissaabbllee with the argument GGLL__CCLLIIPP__PPLLAANNEE_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 GGLL__CCLLIIPP__PPLLAANNEE$i$ = GGLL__CCLLIIPP__PPLLAANNEE00$~+~i$.

ERRORS

GGLL__IINNVVAALLIIDD__EENNUUMM is generated if _p_l_a_n_e is not an accepted value.

GGLL__IINNVVAALLIIDD__OOPPEERRAATTIIOONN is generated if ggllCClliippPPllaannee is executed between the execution of ggllBBeeggiinn and the corresponding execution of ggllEEnndd.

ASSOCIATED GETS

ggllGGeettCClliippPPllaannee
ggllIIssEEnnaabblleedd with argument GGLL__CCLLIIPP__PPLLAANNEE_i

SEE ALSO

ggllEEnnaabbllee((33GG))