// This file is part of libigl, a simple c++ geometry processing library. // // Copyright (C) 2014 Alec Jacobson // // This Source Code Form is subject to the terms of the Mozilla Public License // v. 2.0. If a copy of the MPL was not distributed with this file, You can // obtain one at http://mozilla.org/MPL/2.0/. #include "bounding_box.h" #include template IGL_INLINE void igl::bounding_box( const Eigen::MatrixBase& V, Eigen::PlainObjectBase& BV, Eigen::PlainObjectBase& BF) { return bounding_box(V,0.,BV,BF); } template IGL_INLINE void igl::bounding_box( const Eigen::MatrixBase& V, const typename DerivedV::Scalar pad, Eigen::PlainObjectBase& BV, Eigen::PlainObjectBase& BF) { using namespace std; const int dim = V.cols(); const auto & minV = V.colwise().minCoeff().array()-pad; const auto & maxV = V.colwise().maxCoeff().array()+pad; // 2^n vertices BV.resize((1< combos = [&BV,&minV,&maxV,&combos]( const int dim, const int i, int * X, const int pre_index) { for(X[i] = 0;X[i]<2;X[i]++) { int index = pre_index*2+X[i]; if((i+1), Eigen::Matrix, Eigen::Matrix >(Eigen::MatrixBase > const&, Eigen::PlainObjectBase >&, Eigen::PlainObjectBase >&); // generated by autoexplicit.sh template void igl::bounding_box, Eigen::Matrix, Eigen::Matrix >(Eigen::MatrixBase > const&, Eigen::Matrix::Scalar, Eigen::PlainObjectBase >&, Eigen::PlainObjectBase >&); // generated by autoexplicit.sh template void igl::bounding_box, Eigen::Matrix, Eigen::Matrix >(Eigen::MatrixBase > const&, Eigen::PlainObjectBase >&, Eigen::PlainObjectBase >&); template void igl::bounding_box, Eigen::Matrix, Eigen::Matrix >(Eigen::MatrixBase > const&, Eigen::PlainObjectBase >&, Eigen::PlainObjectBase >&); template void igl::bounding_box, Eigen::Matrix, Eigen::Matrix >(Eigen::MatrixBase > const&, Eigen::PlainObjectBase >&, Eigen::PlainObjectBase >&); #endif