glu.PickMatrix(x, y, deltax, deltay, viewportArray)
glu.PickMatrix()
erstellt eine Projektionsmatrix, mit der die Zeichnung auf
einen kleinen Bereich des Ansichtsfensters beschränkt werden kann. Dies ist
in der Regel nützlich, um festzustellen, welche Objekte in der Nähe des
Cursors gezeichnet werden. Verwenden Sie glu.PickMatrix()
, um die Zeichnung
auf einen kleinen Bereich um den Cursor herum zu beschränken. Wechseln Sie
dann in den Auswahlmodus (mit gl.RenderMode())
und rerendern Sie die Szene. Alle Grundmuster, die in die Nähe des Cursors
gezeichnet worden wären, werden identifiziert und im Auswahlpuffer gespeichert.
Die von glu.PickMatrix()
erzeugte Matrix wird mit der aktuellen Matrix
multipliziert, als ob gl.MultMatrix() wäre, wird
mit der erzeugten Matrix aufgerufen. Um die generierte Kommissioniermatrix
für die Kommissionierung effektiv zu nutzen, rufen Sie zuerst
gl.LoadIdentity() auf, um eine Identitätsmatrix auf
den perspektivischen Matrixstapel zu laden. Rufen Sie dann glu.PickMatrix()
auf und anschließend einen Befehl (z.B. glu.Perspective()),
um die perspektivische Matrix mit der Pick-Matrix zu multiplizieren.
Wenn Sie glu.PickMatrix()
zur Auswahl von NURBS verwenden, achten Sie darauf,
dass Sie die NURBS-Eigenschaft #GLU_AUTO_LOAD_MATRIX
deaktivieren. Wenn
#GLU_AUTO_LOAD_MATRIX
nicht ausgeschaltet ist, dann wird jede gerenderte
NURBS-Oberfläche mit der Pick-Matrix anders unterteilt als ohne die
Pick-Matrix.
Die vier Fensterkoordinaten für viewportArray
können einfach durch den Aufruf
von gl.Get() mit #GL_VIEWPORT
ermittelt werden. Siehe gl.Get für Details.
Weitere Informationen finden Sie in einem OpenGL-Referenzhandbuch.