8#ifndef IGL_CURVED_HESSIAN_ENERGY_H 
    9#define IGL_CURVED_HESSIAN_ENERGY_H 
   14#include <Eigen/Sparse> 
   27  template <
typename DerivedV, 
typename DerivedF, 
typename ScalarQ>
 
   30    const Eigen::MatrixBase<DerivedV>& V,
 
   31    const Eigen::MatrixBase<DerivedF>& F,
 
   32    Eigen::SparseMatrix<ScalarQ>& Q);
 
   43  template <
typename DerivedV, 
typename DerivedF, 
typename DerivedE,
 
   44  typename DerivedOE, 
typename ScalarQ>
 
   47    const Eigen::MatrixBase<DerivedV>& V,
 
   48    const Eigen::MatrixBase<DerivedF>& F,
 
   49    const Eigen::MatrixBase<DerivedE>& E,
 
   50    const Eigen::MatrixBase<DerivedOE>& oE,
 
   51    Eigen::SparseMatrix<ScalarQ>& Q);
 
   63  template <
typename DerivedV, 
typename DerivedF, 
typename DerivedE,
 
   64  typename DerivedOE, 
typename ScalarQ>
 
   67    const Eigen::MatrixBase<DerivedV>& V,
 
   68    const Eigen::MatrixBase<DerivedF>& F,
 
   69    Eigen::PlainObjectBase<DerivedE>& E,
 
   70    Eigen::PlainObjectBase<DerivedOE>& oE,
 
   71    Eigen::SparseMatrix<ScalarQ>& Q);
 
   87  template <
typename DerivedF, 
typename DerivedL_sq, 
typename DerivedE,
 
   88  typename DerivedOE, 
typename ScalarQ>
 
   91    const Eigen::MatrixBase<DerivedF>& F,
 
   92    const Eigen::MatrixBase<DerivedL_sq>& l_sq,
 
   93    const Eigen::MatrixBase<DerivedE>& E,
 
   94    const Eigen::MatrixBase<DerivedOE>& oE,
 
   95    Eigen::SparseMatrix<ScalarQ>& Q);
 
  110  template <
typename DerivedF, 
typename DerivedL_sq, 
typename DeriveddA,
 
  111  typename DerivedE, 
typename DerivedOE, 
typename ScalarQ>
 
  114    const Eigen::MatrixBase<DerivedF>& F,
 
  115    const Eigen::MatrixBase<DerivedL_sq>& l_sq,
 
  116    const Eigen::MatrixBase<DeriveddA>& dA,
 
  117    const Eigen::MatrixBase<DerivedE>& E,
 
  118    const Eigen::MatrixBase<DerivedOE>& oE,
 
  119    Eigen::SparseMatrix<ScalarQ>& Q);
 
  125#ifndef IGL_STATIC_LIBRARY 
  126#  include "curved_hessian_energy.cpp" 
#define IGL_INLINE
Definition igl_inline.h:15
 
void curved_hessian_energy_intrinsic(const Eigen::MatrixBase< DerivedF > &F, const Eigen::MatrixBase< DerivedL_sq > &l_sq, const Eigen::MatrixBase< DerivedE > &E, const Eigen::MatrixBase< DerivedOE > &oE, Eigen::SparseMatrix< ScalarQ > &Q)
Computes the curved Hessian energy using the Crouzeix-Raviart discretization.
 
void curved_hessian_energy(const Eigen::MatrixBase< DerivedV > &V, const Eigen::MatrixBase< DerivedF > &F, Eigen::SparseMatrix< ScalarQ > &Q)
Computes the curved Hessian energy using the Crouzeix-Raviart discretization.