本文整理汇总了C++中ConvexPolygon::NumSides方法的典型用法代码示例。如果您正苦于以下问题:C++ ConvexPolygon::NumSides方法的具体用法?C++ ConvexPolygon::NumSides怎么用?C++ ConvexPolygon::NumSides使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ConvexPolygon
的用法示例。
在下文中一共展示了ConvexPolygon::NumSides方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Enable
void
GL::EnableClipPlanes(const ConvexPolygon& aPolygon, UniqueId aPolygonId)
{
MOZ_ASSERT(IsCurrent());
MOZ_ASSERT(aPolygon.NumSides() <= mMaxClipPlanes);
if (mClipPolygonId == aPolygonId) {
return;
}
if (aPolygon.IsEmpty()) {
if (!mNumClipPlanes) {
Enable(GL_CLIP_PLANE0);
} else {
for (size_t i = 1; i < mNumClipPlanes; i++) {
Disable(GL_CLIP_PLANE0 + i);
}
}
mNumClipPlanes = 1;
// We specify a single clip plane equation that fails for all vertices.
const double planeEquation[] = {0, 0, 0, -1};
ClipPlane(GL_CLIP_PLANE0, planeEquation);
mClipPolygonId = aPolygonId;
return;
}
for (size_t i = mNumClipPlanes; i < aPolygon.NumSides(); i++) {
Enable(GL_CLIP_PLANE0 + i);
}
for (size_t i = aPolygon.NumSides(); i < mNumClipPlanes; i++) {
Disable(GL_CLIP_PLANE0 + i);
}
mNumClipPlanes = aPolygon.NumSides();
for (size_t i = 0; i < aPolygon.NumSides(); i++) {
const Line& line = aPolygon.Sides()[i];
const double planeEquation[] = {line.A, line.B, 0, -line.C};
ClipPlane(GL_CLIP_PLANE0 + i, planeEquation);
}
mClipPolygonId = aPolygonId;
}