GLUTESSENDPOLYGON(3G)

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

書式
void gluTessEndPolygon( GLUtesselator* tess )

引き数

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

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

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);
上記の例では、ポインタ $v1$ 〜 $v7$ は異なるアドレスを指していなければ ならない。なぜなら、gluTessEndPolygon が呼ばれるまでは、 テセレーション処理がこれらのアドレスに格納されている値を参照しないから である。

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