libigl v2.5.0
Loading...
Searching...
No Matches
cr_vector_curvature_correction.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_CR_VECTOR_CURVATURE_CORRECTION_H
9#define IGL_CR_VECTOR_CURVATURE_CORRECTION_H
10
11#include "igl_inline.h"
12
13#include <Eigen/Core>
14#include <Eigen/Sparse>
15
16
17namespace igl
18{
33 template <typename DerivedV, typename DerivedF, typename DerivedE,
34 typename DerivedOE, typename ScalarK>
35 IGL_INLINE void
37 const Eigen::MatrixBase<DerivedV>& V,
38 const Eigen::MatrixBase<DerivedF>& F,
39 const Eigen::MatrixBase<DerivedE>& E,
40 const Eigen::MatrixBase<DerivedOE>& oE,
41 Eigen::SparseMatrix<ScalarK>& K);
45 template <typename DerivedV, typename DerivedF, typename DerivedE,
46 typename DerivedOE, typename ScalarK>
47 IGL_INLINE void
49 const Eigen::MatrixBase<DerivedV>& V,
50 const Eigen::MatrixBase<DerivedF>& F,
51 Eigen::PlainObjectBase<DerivedE>& E,
52 Eigen::PlainObjectBase<DerivedOE>& oE,
53 Eigen::SparseMatrix<ScalarK>& K);
62 template <typename DerivedF, typename DerivedL_sq, typename Derivedtheta,
63 typename Derivedkappa, typename DerivedE, typename DerivedOE,
64 typename ScalarK>
65 IGL_INLINE void
67 const Eigen::MatrixBase<DerivedF>& F,
68 const Eigen::MatrixBase<DerivedL_sq>& l_sq,
69 const Eigen::MatrixBase<Derivedtheta>& theta,
70 const Eigen::MatrixBase<Derivedkappa>& kappa,
71 const Eigen::MatrixBase<DerivedE>& E,
72 const Eigen::MatrixBase<DerivedOE>& oE,
73 Eigen::SparseMatrix<ScalarK>& K);
76 template <typename DerivedF, typename DerivedL_sq, typename DerivedE,
77 typename DerivedOE, typename ScalarK>
78 IGL_INLINE void
80 const Eigen::MatrixBase<DerivedF>& F,
81 const Eigen::MatrixBase<DerivedL_sq>& l_sq,
82 const Eigen::MatrixBase<DerivedE>& E,
83 const Eigen::MatrixBase<DerivedOE>& oE,
84 Eigen::SparseMatrix<ScalarK>& K);
87 template <typename DerivedF, typename DerivedL_sq, typename Derivedtheta,
88 typename DerivedE, typename DerivedOE,
89 typename ScalarK>
90 IGL_INLINE void
92 const Eigen::MatrixBase<DerivedF>& F,
93 const Eigen::MatrixBase<DerivedL_sq>& l_sq,
94 const Eigen::MatrixBase<Derivedtheta>& theta,
95 const Eigen::MatrixBase<DerivedE>& E,
96 const Eigen::MatrixBase<DerivedOE>& oE,
97 Eigen::SparseMatrix<ScalarK>& K);
98}
99
100
101#ifndef IGL_STATIC_LIBRARY
102# include "cr_vector_curvature_correction.cpp"
103#endif
104
105#endif
#define IGL_INLINE
Definition igl_inline.h:15
Definition AABB.h:17
void cr_vector_curvature_correction_intrinsic(const Eigen::MatrixBase< DerivedF > &F, const Eigen::MatrixBase< DerivedL_sq > &l_sq, const Eigen::MatrixBase< Derivedtheta > &theta, const Eigen::MatrixBase< Derivedkappa > &kappa, const Eigen::MatrixBase< DerivedE > &E, const Eigen::MatrixBase< DerivedOE > &oE, Eigen::SparseMatrix< ScalarK > &K)
This is an overloaded member function, provided for convenience. It differs from the above function o...
void cr_vector_curvature_correction(const Eigen::MatrixBase< DerivedV > &V, const Eigen::MatrixBase< DerivedF > &F, const Eigen::MatrixBase< DerivedE > &E, const Eigen::MatrixBase< DerivedOE > &oE, Eigen::SparseMatrix< ScalarK > &K)
Computes the vector Crouzeix-Raviart curvature correction term of Oded Stein, Alec Jacobson,...