GLUTESSVERTEX

Section: Misc. Reference Manual Pages (3G)
索引 xjman
 

名前

gluTessVertex - ポリゴンの頂点を指定する

 

書式

void gluTessVertex( GLUtesselator* tess,

                      GLdouble *location,
                      GLvoid* data )

delim $$  

引き数

tess
location
data
 

説明

gluTessVertex はプログラムで定義するポリゴンの頂点を記述する。 繰り返して gluTessVertex を呼ぶことで閉じた経路を記述する。 例えば四角形を記述するには、gluTessVertex を 4 回呼ばなければならない。 gluTessVertex を呼ぶことができるのは、gluTessBeginContourgluTessEndContour に挟まれた部分だけである。 data は普通、頂点位置を格納している構造体を指す。 この構造体は、色や法線など、各頂点が持つ属性も持つ。 テセレーション処理(gluTessCallback の項目を参照)の後、このポインタは GLU_TESS_VERTEXGLU_TESS_VERTEX_DATA コールバック経由で ユーザに返される。  

使用例

三角形の穴が開いた四角形は以下のように記述できる:

gluTessBeginPolygon(tobj, NULL);
 gluTessBeginContour(tobj);
   gluTessVertex(tobj, v1, v1);
   gluTessVertex(tobj, v2, v2);
   gluTessVertex(tobj, v3, v3);
   gluTessVertex(tobj, v4, v4);
 gluTessEndContour(tobj);
 gluTessBeginContour(tobj);
   gluTessVertex(tobj, v5, v5);
   gluTessVertex(tobj, v6, v6);
   gluTessVertex(tobj, v7, v7);
 gluTessEndContour(tobj); gluTessEndPolygon(tobj);

 

注意

ローカル変数を locationdata に使い、ループの一部として その変数に値を格納してしまうことはよくある誤りである。 例えば、 for (i = 0; i < NVERTICES; ++i) {
  GLdouble data[3];
  data[0] = vertex[i][0];
  data[1] = vertex[i][1];
  data[2] = vertex[i][2];
  gluTessVertex(tobj, data, data);
  } はうまく動作しない。 locationdata が指定しているポインタは gluTessEndPolygon が実行されるまで参照が切れないかもしれないの で、ループの最後の繰り返しで指定されたもの以外の頂点座標は、 テセレーション処理が始まる前に上書きされるかもしれない。 この問題がある時によく起こる 2 つの症状は、点がひとつしか表示されない こと(data に対して局所変数が使われている時)と、 GLU_TESS_NEED_COMBINE_CALLBACK エラーが起こること (location に対して局所変数が使われている時)である。  

関連項目

gluTessBeginPolygon(3G), gluNewTess(3G), gluTessBeginContour(3G), gluTessCallback(3G), gluTessProperty(3G), gluTessNormal(3G), gluTessEndPolygon(3G)


 

Index

名前
書式
引き数
説明
使用例
注意
関連項目

jman



Time: 07:01:13 GMT, January 12, 2009