Scroll to navigation

GLUTESSBEGINPOLYGON(3G) GLUTESSBEGINPOLYGON(3G)

名前

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

書式

void gluTessBeginPolygon( GLUtesselator* tess,
	GLvoid*  data )
 

引き数

tess
テセレーションオブジェクト(gluNewTess を使って作る)を 指定する。
data
ユーザ指定のポリゴンデータを指すポインタを指定する。

説明

gluTessBeginPolygongluTessEndPolygon は、 凸であるポリゴン、非凸であるポリゴン、自己干渉しているポリゴンの定義を 区切る。 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