GLUTESSBEGINPOLYGON(3G)

名前
gluTessBeginPolygon - ポリゴンの記述を区切る

書式
void gluTessBeginPolygon( GLUtesselator* tess,
	GLvoid* data )

引き数

tess
    テセレーションオブジェクト(gluNewTess を使って作る)を 指定する。

data
    ユーザ指定のポリゴンデータを指すポインタを指定する。

説明
gluTessBeginPolygon と gluTessEndPolygon は、 凸であるポリゴン、非凸であるポリゴン、自己干渉しているポリゴンの定義を 区切る。 gluTessBeginPolygon/gluTessEndPolygon のペアに 挟まれる部分では、 gluTessBeginContour/gluTessEndContour をひとつ 以上呼び出さなければならない。 それぞれの経路の中には、0 個以上の gluTessVertex がある。 この頂点群は閉じた経路を指定する(各経路の最後の頂点は、自動的に 最初の頂点と結ばれる)。 詳しくは gluTessVertex, gluTessBeginContour, gluTessEndContour の項目を参照すること。

data はユーザが定義したデータ構造を指すポインタである。 適切なコールバックが指定されていれば(gluTessCallback を参照)、 このポインタはコールバック関数に返される。 したがって、このデータ構造は、ポリゴン別の情報を格納するための便利な 方法である。

一度 gluTessEndPolygon が呼ばれると、ポリゴンは テセレーション処理され、得られた三角形群はコールバックを通して記述される。 コールバック関数の説明については、gluTessCallback を参照すること。

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

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);

関連項目
gluNewTess, gluTessBeginContour, gluTessVertex, gluTessCallback, gluTessProperty, gluTessNormal, gluTessEndPolygon