本文整理汇总了C++中Box2D::getExtents方法的典型用法代码示例。如果您正苦于以下问题:C++ Box2D::getExtents方法的具体用法?C++ Box2D::getExtents怎么用?C++ Box2D::getExtents使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Box2D
的用法示例。
在下文中一共展示了Box2D::getExtents方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: initializeQuadrant
void initializeQuadrant(QuadTree* quadtree, const Box2D& quadrantBounds, unsigned int depth, unsigned int index, unsigned int offset, unsigned int levelWidth)
{
unsigned int i = offset + index;
// FIXME: checking boundaries
if (i >= quadtree->maxQuadrants)
{
throw std::exception("max. quadrants overflow");
}
Quadrant& quadrant = quadtree->quadrants[i];
quadrant.depth = depth;
quadrant.bounds = quadrantBounds;
if (depth == quadtree->maxDepth - 1) // leaf
{
quadrant.edges = quadtree->numQuadrantEdges++;
return;
}
unsigned int baseIndex = (index * 4);
unsigned int newOffset = offset + levelWidth;
unsigned int newLevelWidth = levelWidth * 4;
unsigned int newDepth = depth + 1;
vml_vec2 subQuadrantSize = quadrantBounds.getExtents() / 2.0f;
for (unsigned int y = 0, i = 0; y < 2; y++)
{
float subQuadrantY = quadrantBounds.min.y + ((float)y * subQuadrantSize.y);
for (unsigned int x = 0; x < 2; x++, i++)
{
initializeQuadrant(quadtree, Box2D(quadrantBounds.min.x + ((float)x * subQuadrantSize.x), subQuadrantY, subQuadrantSize.x, subQuadrantSize.y), newDepth, baseIndex + i, newOffset, newLevelWidth);
}
}
}