Bezeichnung
gl.ClipPlane -- gibt eine Ebene an, auf die die gesamte Geometrie geschnitten wird
Übersicht
gl.ClipPlane(plane, equationArray)
Beschreibung
Geometrie wird immer gegen die Grenzen eines Stumpfes mit sechs Flächen in x, y und z geschnitten. 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.

Eingaben
plane
gibt an, welche Schnittflächen positioniert wird; symbolische Konstanten der Form #GL_CLIP_PLANEi werden akzeptiert, wobei i eine Ganzzahl zwischen 0 und #GL_MAX_CLIP_PLANES -1 ist
equationArray
gibt ein Feld mit vier Gleitkommawerten mit doppelter Genauigkeit an; diese Werte werden als Flächengleichung interpretiert
Fehler
#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.

Verbundene get-operationen
gl.GetClipPlane()

gl.IsEnabled() mit dem Argument #GL_CLIP_PLANEi


Navigation zeigen