本文整理匯總了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);
}
}
}