当前位置: 首页>>代码示例>>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;未经允许,请勿转载。