clipplane(3G) clipplane(3G)
clipplane - specify a plane against which all geometry is clipped
void clipplane(index, mode, params)
long index, mode;
float params[];
index expects an integer in the range 0 through 5, indicating which of
the 6 clipping planes is being modified.
mode expects one of three tokens:
CP_DEFINE: use the plane equation passed in params to define a
clipplane. The clipplane is neither enabled nor disabled.
CP_ON: enable the (previously defined) clipplane.
CP_OFF: disable the clipplane. (default)
params expects an array of 4 floats that specify a plane equation. A
plane equation is usually thought of as a 4-vector [A,B,C,D].
In this case, A is the first component of the params array, and
D is the last. A 4-component vertex array (see v4f) can be
passed as a plane equation, where vertex X becomes A, Y becomes
B, etc. The specified contents of params are insignificant when
mode is CP_ON, or CP_OFF.
Geometry is always clipped against the boundaries of a 6-plane frustum in
x, y, and z. clipplane allows the specification of additional planes, not
necessarily perpendicular to the x, y, or z axes, against which all
geometry is clipped. Up to 6 additional planes can be specified.
Because the resulting clipping region is always the intersection of the
(up to) 12 half-spaces, it is always convex.
clipplane specifies a half-space using a 4-component plane equation.
When it is called with mode CP_DEFINE, this object-coordinate plane
equation is transformed to eye-coordinates using the inverse of the
current ModelView matrix.
A defined clipplane is then enabled by calling clipplane with the CP_ON
argument, and with arbitrary values passed in params. While drawing
after a clipplane has been defined and enabled, each vertex is
transformed to eye-coordinates, where it is dotted with the transformed
clipping plane equation. Eye-coordinate vertexes whose dot product with
the transformed clipping plane equation is positive or zero are in, and
require no clipping. Those eye-coordinate vertexes whose dot product is
negative are clipped. Because clipplane clipping is done in eyecoordinates,
changes to the projection matrix have no effect on its
operation.
Page 1
clipplane(3G) clipplane(3G)
By default all six clipping planes are undefined and disabled. The
behavior of an enabled but undefined clipplane is undefined.
IRIS-4D models G, GT, and GTX, and the Personal Iris, do not implement
clipplane. Use getgdesc to determine whether user-defined clipping
planes are supported.
clipplane cannot be used while mmode is MSINGLE.
A point and a normal are converted to a plane equation in the following
manner:
point = [Px,Py,Pz]
normal = |Nx|
|Ny|
|Nz|
plane equation = |A|
|B|
|C|
|D|
A = Nx
B = Ny
C = Nz
D = -[Px,Py,Pz] dot |Nx|
|Ny|
|Nz|
On Impact and Infinite Reality clipplane cannot be used with depthcue
PPPPaaaaggggeeee 2222 [ Back ]
|