当前位置: 首页>>代码示例>>C++>>正文


C++ Box2i::min方法代码示例

本文整理汇总了C++中Box2i::min方法的典型用法代码示例。如果您正苦于以下问题:C++ Box2i::min方法的具体用法?C++ Box2i::min怎么用?C++ Box2i::min使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Box2i的用法示例。


在下文中一共展示了Box2i::min方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: iterateTiles

    void iterateTiles(std::array<QuadSetup, N> quads, Intersector intersector) const
    {
        Box2i bounds;
        for (const auto &q : quads)
            bounds.grow(q.bounds);

        if (bounds.empty())
            return;

        uint32 minX = uint32(bounds.min().x()) & ~TileMask, maxX = bounds.max().x();
        uint32 minY = uint32(bounds.min().y()) & ~TileMask, maxY = bounds.max().y();

        for (auto &q : quads) {
            q.start(minX + TileSize*0.5f, minY + TileSize*0.5f);
            for (int k = 0; k < 3; ++k) {
                q.stepX[k] *= float(TileSize);
                q.stepY[k] *= float(TileSize);
            }
        }

        for (uint32 y = minY; y < maxY; y += TileSize) {
            for (auto &q : quads)
                q.beginRow();

            for (uint32 x = minX; x < maxX; x += TileSize) {
                float wMin = -1.0f;
                for (auto &q : quads)
                    wMin = max(wMin, q.reduce());
                if (wMin >= 0.0f) {
                    uint32 xjMax = min(x + TileSize, _res.x());
                    uint32 yjMax = min(y + TileSize, _res.y());
                    for (uint32 yj = y; yj < yjMax; ++yj)
                        for (uint32 xj = x; xj < xjMax; ++xj)
                            intersector(xj, yj, xj + yj*_res.x());
                }
                for (auto &q : quads)
                    q.stepCol();
            }
            for (auto &q : quads)
                q.endRow();
        }
    }
开发者ID:tunabrain,项目名称:tungsten,代码行数:42,代码来源:FrustumBinner.hpp


注:本文中的Box2i::min方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。