gl.ClipPlane(plane, equationArray)
gl.ClipPlane()
erlaubt die Angabe zusätzlicher
Flächen, die nicht unbedingt senkrecht zur x-, y- oder z-Achse stehen, gegen
die die Geometrie abgeschnitten wird. Um die maximale Anzahl zusätzlicher
Schnittflächen zu bestimmen, rufen Sie gl.Get() mit dem
Argument #GL_MAX_CLIP_PLANES
auf. Alle Implementierungen unterstützen
mindestens sechs solcher Abschnittflächen. Da der resultierende
Schnittbereich der Schnittpunkt der definierten Halbräume ist,
ist er immer konvex.
gl.ClipPlane()
definiert einen Halbraum unter Verwendung einer
Vierkomponenten-Flächengleichung. Wenn gl.ClipPlane()
aufgerufen wird, wird
die Gleichung durch das Inverse der Modelansichtsmatrix transformiert und in
den resultierenden Betrachter-Koordinaten (Augenkoordinaten) gespeichert.
Nachfolgende Änderungen der Modelansichtsmatrix haben keinen Einfluss auf
die gespeicherten Flächengleichungskomponenten. Wenn das Skalarprodukt
(Punktprodukt) der Betrachter-Koordinaten eines Scheitelpunkts mit den
gespeicherten Flächengleichungskomponenten positiv oder Null ist, ist der
Scheitelpunkt innerhalb dieser Begrenzungsfläche, ansonsten ist er ausserhalb.
Um Schnittflächen zu aktivieren und zu deaktivieren, rufen Sie
gl.Enable() und gl.Disable()
mit dem Argument #GL_CLIP_PLANEi
auf, wobei i die Flächennummer ist.
Alle Schnittflächen sind anfänglich als (0, 0, 0, 0) in Augenkoordinaten definiert und deaktiviert.
Es ist immer so, dass #GL_CLIP_PLANEi
= #GL_CLIP_PLANE0
+ i ist.
Weitere Informationen finden Sie in einem OpenGL-Referenzhandbuch.
#GL_CLIP_PLANEi
werden akzeptiert, wobei i eine Ganzzahl zwischen
0 und #GL_MAX_CLIP_PLANES
-1 ist#GL_INVALID_ENUM
wird generiert, wenn die Fläche kein akzeptierter Wert ist
#GL_INVALID_OPERATION
wird generiert, wenn gl.ClipPlane()
zwischen gl.Begin() und gl.End() ausgeführt wird.
gl.IsEnabled() mit dem Argument #GL_CLIP_PLANEi