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