libigl v2.5.0
Loading...
Searching...
No Matches
curved_hessian_energy.h
Go to the documentation of this file.
1// This file is part of libigl, a simple c++ geometry processing library.
2//
3// Copyright (C) 2020 Oded Stein <oded.stein@columbia.edu>
4//
5// This Source Code Form is subject to the terms of the Mozilla Public License
6// v. 2.0. If a copy of the MPL was not distributed with this file, You can
7// obtain one at http://mozilla.org/MPL/2.0/.
8#ifndef IGL_CURVED_HESSIAN_ENERGY_H
9#define IGL_CURVED_HESSIAN_ENERGY_H
10
11#include "igl_inline.h"
12
13#include <Eigen/Core>
14#include <Eigen/Sparse>
15
16
17namespace igl
18{
27 template <typename DerivedV, typename DerivedF, typename ScalarQ>
28 IGL_INLINE void
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>
45 IGL_INLINE void
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);
52
63 template <typename DerivedV, typename DerivedF, typename DerivedE,
64 typename DerivedOE, typename ScalarQ>
65 IGL_INLINE void
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);
72
73
74
87 template <typename DerivedF, typename DerivedL_sq, typename DerivedE,
88 typename DerivedOE, typename ScalarQ>
89 IGL_INLINE void
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);
96
110 template <typename DerivedF, typename DerivedL_sq, typename DeriveddA,
111 typename DerivedE, typename DerivedOE, typename ScalarQ>
112 IGL_INLINE void
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);
120
121
122}
123
124
125#ifndef IGL_STATIC_LIBRARY
126# include "curved_hessian_energy.cpp"
127#endif
128
129#endif
#define IGL_INLINE
Definition igl_inline.h:15
Definition AABB.h:17
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.