本文整理汇总了C++中ConvexHull::GetPolygon方法的典型用法代码示例。如果您正苦于以下问题:C++ ConvexHull::GetPolygon方法的具体用法?C++ ConvexHull::GetPolygon怎么用?C++ ConvexHull::GetPolygon使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ConvexHull
的用法示例。
在下文中一共展示了ConvexHull::GetPolygon方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: DrawHull
static void DrawHull(const ConvexHull& hull)
{
const Point* ConvexVerts = hull.GetVerts();
udword NbPolys = hull.GetNbPolygons();
// printf("NbPolys: %d\n", NbPolys);
for(udword i=0;i<NbPolys;i++)
{
const HullPolygon& PolygonData = hull.GetPolygon(i);
glNormal3f(PolygonData.mPlane.n.x, PolygonData.mPlane.n.y, PolygonData.mPlane.n.z);
const udword NbVertsInPoly = PolygonData.mNbVerts;
const udword NbTris = NbVertsInPoly - 2;
const udword* Indices = PolygonData.mVRef;
udword Offset = 1;
for(udword i=0;i<NbTris;i++)
{
const udword VRef0 = Indices[0];
const udword VRef1 = Indices[Offset];
const udword VRef2 = Indices[Offset+1];
Offset++;
const Point av3LineEndpoints[] = {ConvexVerts[VRef0], ConvexVerts[VRef1], ConvexVerts[VRef2]};
glEnableClientState(GL_VERTEX_ARRAY);
glVertexPointer(3, GL_FLOAT, sizeof(Point), &av3LineEndpoints[0].x);
glDrawArrays(GL_TRIANGLES, 0, 3);
glDisableClientState(GL_VERTEX_ARRAY);
}
}
}