ポリゴンの輪郭を指定し、その中に穴の輪郭を指定すると、
テセレータによって穴のあいたポリゴンを作成する事が出来る。
//頂点座標
double vdata[8][3]={
{0.1, 0.1, 0}, {0.6, 0.1, 0}, {0.6, 0.5, 0}, {0.1, 0.5, 0},
{0.2, 0.2, 0}, {0.5, 0.2, 0}, {0.5, 0.4, 0}, {0.2, 0.4, 0}
};
//テセレータオブジェクト
GLUtesselator *tess;
... ...
gluTessBeginPolygon(tess, 0);
gluTessBeginContour(tess); //ポリゴンの輪郭
gluTessVertex(tess, vdata[0], vdata[0]);
gluTessVertex(tess, vdata[1], vdata[1]);
gluTessVertex(tess, vdata[2], vdata[2]);
gluTessVertex(tess, vdata[3], vdata[3]);
gluTessEndContour(tess);
gluTessBeginContour(tess); //ポリゴンの中の穴の輪郭
gluTessVertex(tess, vdata[4], vdata[4]);
gluTessVertex(tess, vdata[5], vdata[5]);
gluTessVertex(tess, vdata[6], vdata[6]);
gluTessVertex(tess, vdata[7], vdata[7]);
gluTessEndContour(tess);
gluTessEndPolygon(tess);
... ...
サンプルコード >>
基本編13::まとめコード2