#ifndef IGL_EXTRACT_MANIFOLD_PATCHES #define IGL_EXTRACT_MANIFOLD_PATCHES #include "igl_inline.h" #include #include namespace igl { // Extract a set of maximal patches from a given mesh. // A maximal patch is a subset of the input faces that are connected via // manifold edges; a patch is as large as possible. // // Inputs: // F #F by 3 list representing triangles. // EMAP #F*3 list of indices of unique undirected edges. // uE2E #uE list of lists of indices into E of coexisting edges. // // Output: // P #F list of patch incides. // // Returns: // number of manifold patches. template < typename DerivedF, typename DerivedEMAP, typename uE2EType, typename DerivedP> IGL_INLINE size_t extract_manifold_patches( const Eigen::PlainObjectBase& F, const Eigen::PlainObjectBase& EMAP, const std::vector >& uE2E, Eigen::PlainObjectBase& P); template < typename DerivedF, typename DerivedP> IGL_INLINE size_t extract_manifold_patches( const Eigen::PlainObjectBase& F, Eigen::PlainObjectBase& P); } #ifndef IGL_STATIC_LIBRARY # include "extract_manifold_patches.cpp" #endif #endif