// This file is part of libigl, a simple c++ geometry processing library. // // Copyright (C) 2015 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 "edge_flaps.h" #include "unique_edge_map.h" #include #include template < typename DerivedF, typename DeriveduE, typename DerivedEMAP, typename DerivedEF, typename DerivedEI> IGL_INLINE void igl::edge_flaps( const Eigen::MatrixBase & F, const Eigen::MatrixBase & uE, const Eigen::MatrixBase & EMAP, Eigen::PlainObjectBase & EF, Eigen::PlainObjectBase & EI) { // Initialize to boundary value EF.setConstant(uE.rows(),2,-1); EI.setConstant(uE.rows(),2,-1); // loop over all faces for(int f = 0;f IGL_INLINE void igl::edge_flaps( const Eigen::MatrixBase & F, Eigen::PlainObjectBase & uE, Eigen::PlainObjectBase & EMAP, Eigen::PlainObjectBase & EF, Eigen::PlainObjectBase & EI) { Eigen::MatrixXi allE; igl::unique_edge_map(F,allE,uE,EMAP); // Const-ify to call overload const auto & cuE = uE; const auto & cEMAP = EMAP; return edge_flaps(F,cuE,cEMAP,EF,EI); } #ifdef IGL_STATIC_LIBRARY // Explicit template specialization template void igl::edge_flaps, Eigen::Matrix, Eigen::Matrix, Eigen::Matrix, Eigen::Matrix>(Eigen::MatrixBase> const&, Eigen::MatrixBase> const&, Eigen::MatrixBase> const&, Eigen::PlainObjectBase>&, Eigen::PlainObjectBase>&); template void igl::edge_flaps, Eigen::Matrix, Eigen::Matrix, Eigen::Matrix, Eigen::Matrix>(Eigen::MatrixBase> const&, Eigen::PlainObjectBase>&, Eigen::PlainObjectBase>&, Eigen::PlainObjectBase>&, Eigen::PlainObjectBase>&); #endif