當前位置: 首頁>>代碼示例>>C++>>正文


C++ Box2D::getExtents方法代碼示例

本文整理匯總了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);
        }
    }
}
開發者ID:pboechat,項目名稱:roadnetworkgenerator,代碼行數:36,代碼來源:QuadTree.cpp


注:本文中的Box2D::getExtents方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。