GLUNEXTCONTOUR(3G)

名前
gluNextContour - 次の経路の開始を示す

書式
void gluNextContour( GLUtesselator* tess,
	GLenum type )

引き数

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

type
    定義する経路の種類を指定する。 有効な値は GLU_EXTERIOR, GLU_INTERIOR, GLU_UNKNOWN, GLU_CCW, GLU_CW である。

説明
gluNextContour は複数の経路を持つポリゴンを記述するために使われる。 gluTessVertex を繰り返し呼び出して最初の経路を記述した後、 gluNextContour を呼び出すことで、前の経路が終わり、次の経路が これから始まることを示す。 その後に gluTessVertex を繰り返し呼び出すことで、 新しい経路を記述する。 この処理は、全ての経路を記述し終わるまで繰り返すことができる。

type は gluTessVertex の後に続ける経路の種類を指定する。 経路の有効な種類は以下の通りである:

GLU_EXTERIOR
    ポリゴンの外側の境界線を定義する外部経路。

GLU_INTERIOR
    ポリゴン内部の境界線(穴など)を定義する内部経路。

GLU_UNKNOWN
    種類のわからない経路であり、ライブラリが解析を行って内部と外部 のどちらであるのかを判定する。

GLU_CCW,

GLU_CW
    最初に定義された GLU_CCW 経路や GLU_CW 経路は 外側とみなされる。 それ以外の全ての経路は、最初の経路と同じ向き(時計回りまたは反時計回り) であれば外部経路とみなされ、異なる向きであれば内部経路と見なされる。

経路のひとつが GLU_CCW 型または GLU_CW 型であれば、 全ての経路は同じ型でなければならない(そうでない場合には、全ての GLU_CCW 経路および GLU_CW 経路は GLU_UNKNOWN 型に 変更される)。

実際には GLU_CCW 型と GLU_CW 型の間には違いがない点に 注意すること。

最初の経路を記述した後に、gluNextContour を呼んで最初の経路の 型を定義することができる。 最初の経路の前に gluNextContour が呼ばれていなければ、最初の 経路は GLU_EXTERIOR 型とされる。

この関数は古くて使用すべきではなく、後方互換性のためだけに提供されている。 gluNextContour の呼び出しは、gluTessEndContour と gluTessBeginContour を順に呼び出すことに置き換えられる。

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

gluBeginPolygon(tobj);
   gluTessVertex(tobj, v1, v1);
   gluTessVertex(tobj, v2, v2);
   gluTessVertex(tobj, v3, v3);
   gluTessVertex(tobj, v4, v4); gluNextContour(tobj, GLU_INTERIOR);
   gluTessVertex(tobj, v5, v5);
   gluTessVertex(tobj, v6, v6);
   gluTessVertex(tobj, v7, v7); gluEndPolygon(tobj);

関連項目
gluBeginPolygon, gluNewTess, gluTessCallback, gluTessVertex, gluTessBeginContour