次の方法で共有


gluPickMatrix 関数

gluPickMatrix 関数は、ピッキング領域を定義します。

構文

void WINAPI gluPickMatrix(
   GLdouble x,
   GLdouble y,
   GLdouble height,
   GLdouble width,
   GLint    viewport[4]
);

パラメーター

x

ピッキング領域の x ウィンドウ座標。

y

ピッキング領域の y ウィンドウ座標。

height

ウィンドウ座標でのピッキング領域の高さ。

width

ウィンドウ座標でのピッキング領域の幅。

ビューポート

現在のビューポート ( glGetIntegerv 呼び出しの場合と同様)。

戻り値

この関数は値を返しません。

注釈

gluPickMatrix 関数は、ビューポートの小さな領域に描画を制限するために使用できるプロジェクション マトリックスを作成します。

  1. カーソルの周りの小さな領域に描画を制限するには、 gluPickMatrix を使用します。

  2. 選択モード ( glRenderMode を使用) に入り、シーンを再レンダリングします。

    カーソルの近くに描画されたすべてのプリミティブが識別され、選択バッファーに格納されます。

gluPickMatrix によって作成された行列には、生成された行列で glMultMatrix が呼び出された場合と同様に、現在の行列が乗算されます。

  1. glLoadIdentity を呼び出して、パースペクティブ マトリックス スタックに ID マトリックスを読み込みます。
  2. gluPickMatrix を呼び出します。
  3. 関数 ( gluPerspective など) を呼び出して、パースペクティブ 行列にピック 行列を乗算します。

gluPickMatrix を使用して非均一な有理性 B スプライン (NURBS) を選択する場合は、NURBS プロパティをオフにするように注意GLU_AUTO_LOAD_MATRIX。 GLU_AUTO_LOAD_MATRIXがオフになっていない場合、レンダリングされた NURBS サーフェスは、ピック マトリックスを使用せずに再分割された方法とは異なる方法で分割されます。

シーンを次のようにレンダリングする場合:

glMatrixMode(GL_PROJECTION);  
glLoadIdentity( );  
gluPerspective(. . .);  
glMatrixMode(GL_MODELVIEW);  
/* Draw the scene */

次のコードは、ビューポートの一部を選択します。

glMatrixMode(GL_PROJECTION);  
glLoadIdentity( );  
gluPickMatrix(x, y, width, height, viewport);  
gluPerspective(. . .);  
glMatrixMode(GL_MODELVIEW);  
/* Draw the scene */

必要条件

要件
サポートされている最小のクライアント
Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー
Windows 2000 Server [デスクトップ アプリのみ]
ヘッダー
Glu.h
ライブラリ
Glu32.lib
[DLL]
Glu32.dll

関連項目

glGetIntegerv

glLoadIdentity

glMultMatrix

glRenderMode

gluPerspective