// This file is part of libigl, a simple c++ geometry processing library. // // Copyright (C) 2025 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 "box_simplices.h" template < typename DerivedV, typename DerivedF, typename DerivedB > IGL_INLINE void igl::box_simplices( const Eigen::MatrixBase & V, const Eigen::MatrixBase & F, Eigen::PlainObjectBase & B1, Eigen::PlainObjectBase & B2) { B1.setConstant(F.rows(),V.cols(),std::numeric_limits::infinity()); B2.setConstant(F.rows(),V.cols(),-std::numeric_limits::infinity()); for(int f = 0; f < F.rows(); f++) { for(int c = 0; c < F.cols(); c++) { for(int d = 0; d < V.cols(); d++) { B1(f,d) = std::min(B1(f,d),V(F(f,c),d)); B2(f,d) = std::max(B2(f,d),V(F(f,c),d)); } } } } #ifdef IGL_STATIC_LIBRARY // Explicit template instantiation // generated by autoexplicit.sh template void igl::box_simplices, Eigen::Matrix, Eigen::Matrix>(Eigen::MatrixBase> const&, Eigen::MatrixBase> const&, Eigen::PlainObjectBase>&, Eigen::PlainObjectBase>&); // generated by autoexplicit.sh template void igl::box_simplices, Eigen::Matrix, Eigen::Matrix>(Eigen::MatrixBase> const&, Eigen::MatrixBase> const&, Eigen::PlainObjectBase>&, Eigen::PlainObjectBase>&); template void igl::box_simplices, Eigen::Matrix, Eigen::Matrix>(Eigen::MatrixBase> const&, Eigen::MatrixBase> const&, Eigen::PlainObjectBase>&, Eigen::PlainObjectBase>&); #endif