9#ifndef IGL_MARCHING_TETS_H
10#define IGL_MARCHING_TETS_H
14#include <Eigen/Sparse>
30 template <
typename DerivedTV,
38 const Eigen::MatrixBase<DerivedTV>& TV,
39 const Eigen::MatrixBase<DerivedTT>& TT,
40 const Eigen::MatrixBase<DerivedS>& S,
41 const typename DerivedS::Scalar isovalue,
42 Eigen::PlainObjectBase<DerivedSV>& SV,
43 Eigen::PlainObjectBase<DerivedSF>& SF,
44 Eigen::PlainObjectBase<DerivedJ>& J,
45 Eigen::SparseMatrix<BCType>& BC);
48 template <
typename DerivedTV,
56 const Eigen::MatrixBase<DerivedTV>& TV,
57 const Eigen::MatrixBase<DerivedTT>& TT,
58 const Eigen::MatrixBase<DerivedS>& S,
59 Eigen::PlainObjectBase<DerivedSV>& SV,
60 Eigen::PlainObjectBase<DerivedSF>& SF,
61 Eigen::PlainObjectBase<DerivedJ>& J,
62 Eigen::SparseMatrix<BCType>& BC) {
66 template <
typename DerivedTV,
73 const Eigen::MatrixBase<DerivedTV>& TV,
74 const Eigen::MatrixBase<DerivedTT>& TT,
75 const Eigen::MatrixBase<DerivedS>& S,
76 const typename DerivedS::Scalar isovalue,
77 Eigen::PlainObjectBase<DerivedSV>& SV,
78 Eigen::PlainObjectBase<DerivedSF>& SF,
79 Eigen::PlainObjectBase<DerivedJ>& J) {
80 Eigen::SparseMatrix<typename DerivedSV::Scalar> _BC;
84 template <
typename DerivedTV,
91 const Eigen::MatrixBase<DerivedTV>& TV,
92 const Eigen::MatrixBase<DerivedTT>& TT,
93 const Eigen::MatrixBase<DerivedS>& S,
94 const typename DerivedS::Scalar isovalue,
95 Eigen::PlainObjectBase<DerivedSV>& SV,
96 Eigen::PlainObjectBase<DerivedSF>& SF,
97 Eigen::SparseMatrix<BCType>& BC) {
102 template <
typename DerivedTV,
108 const Eigen::MatrixBase<DerivedTV>& TV,
109 const Eigen::MatrixBase<DerivedTT>& TT,
110 const Eigen::MatrixBase<DerivedS>& S,
111 const typename DerivedS::Scalar isovalue,
112 Eigen::PlainObjectBase<DerivedSV>& SV,
113 Eigen::PlainObjectBase<DerivedSF>& SF) {
115 Eigen::SparseMatrix<typename DerivedSV::Scalar> _BC;
121#ifndef IGL_STATIC_LIBRARY
122# include "marching_tets.cpp"
#define IGL_INLINE
Definition igl_inline.h:15
void marching_tets(const Eigen::MatrixBase< DerivedTV > &TV, const Eigen::MatrixBase< DerivedTT > &TT, const Eigen::MatrixBase< DerivedS > &S, const typename DerivedS::Scalar isovalue, Eigen::PlainObjectBase< DerivedSV > &SV, Eigen::PlainObjectBase< DerivedSF > &SF, Eigen::PlainObjectBase< DerivedJ > &J, Eigen::SparseMatrix< BCType > &BC)
Performs the marching tetrahedra algorithm on a tet mesh defined by TV and TT with scalar values defi...