// This file is part of libigl, a simple c++ geometry processing library. // // Copyright (C) 2018 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 "intrinsic_delaunay_cotmatrix.h" #include "edge_lengths.h" #include "intrinsic_delaunay_triangulation.h" #include "cotmatrix_intrinsic.h" #include template IGL_INLINE void igl::intrinsic_delaunay_cotmatrix( const Eigen::MatrixBase & V, const Eigen::MatrixBase & F, Eigen::SparseMatrix& L) { Eigen::Matrix l_intrinsic; DerivedF F_intrinsic; return igl::intrinsic_delaunay_cotmatrix(V,F,L,l_intrinsic,F_intrinsic); } template < typename DerivedV, typename DerivedF, typename Scalar, typename Derivedl_intrinsic, typename DerivedF_intrinsic> IGL_INLINE void igl::intrinsic_delaunay_cotmatrix( const Eigen::MatrixBase & V, const Eigen::MatrixBase & F, Eigen::SparseMatrix& L, Eigen::PlainObjectBase & l_intrinsic, Eigen::PlainObjectBase & F_intrinsic) { assert(F.cols() == 3 && "Only triangles are supported"); Eigen::Matrix l; igl::edge_lengths(V,F,l); igl::intrinsic_delaunay_triangulation(l,F,l_intrinsic,F_intrinsic); igl::cotmatrix_intrinsic(l_intrinsic,F_intrinsic,L); } #ifdef IGL_STATIC_LIBRARY // Explicit template instantiation // generated by autoexplicit.sh template void igl::intrinsic_delaunay_cotmatrix, Eigen::Matrix, double, Eigen::Matrix, Eigen::Matrix >(Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, Eigen::SparseMatrix&, Eigen::PlainObjectBase >&, Eigen::PlainObjectBase >&); // generated by autoexplicit.sh template void igl::intrinsic_delaunay_cotmatrix, Eigen::Matrix, double>(Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, Eigen::SparseMatrix&); // generated by autoexplicit.sh template void igl::intrinsic_delaunay_cotmatrix, Eigen::Matrix, double, Eigen::Matrix, Eigen::Matrix >(Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, Eigen::SparseMatrix&, Eigen::PlainObjectBase >&, Eigen::PlainObjectBase >&); // generated by autoexplicit.sh #endif