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; }