예제 #1
0
파일: AABBTiler.cpp 프로젝트: qnzhou/PyMesh
    std::list<std::function<MatrixFr(const MatrixFr&)> > get_tiling_operators(
            const VectorF& ref_pt,
            const VectorF& cell_size,
            const std::vector<VectorI>& indices) {

        std::list<std::function<MatrixFr(const MatrixFr&)> > operators;
        for (auto index : indices) {
            VectorF cur_pt = cell_size.cwiseProduct(index.cast<Float>());
            VectorF offset = cur_pt - ref_pt;
            operators.push_back(
                    [=] (const MatrixFr& vertices) {
                        MatrixFr result(vertices);
                        result.rowwise() += offset.transpose();
                        return result;
                    });
        }
        return operators;
    }