Wildmeshing Toolkit
Loading...
Searching...
No Matches
components
manifold_extraction
wmtk
components
manifold_extraction
ManExtractTriMesh.h
1
#pragma once
2
3
#include <wmtk/components/topological_offset/Parameters.h>
4
#include <wmtk/components/topological_offset/TopoOffsetTriMesh.h>
5
#include "Parameters.h"
6
7
using namespace
wmtk::components;
8
9
10
namespace
wmtk::components::manifold_extraction {
11
12
13
class
ManExtractTriMesh
:
public
topological_offset::TopoOffsetTriMesh
14
{
15
public
:
16
int
m_vtu_counter = 0;
17
int
m_surfvtu_counter = 0;
18
19
Parameters
& m_man_params;
20
21
ManExtractTriMesh
(
22
Parameters
& _m_man_params,
23
topological_offset::Parameters
& _m_top_params,
24
int
_num_threads = 0)
25
:
topological_offset::TopoOffsetTriMesh
(_m_top_params, _num_threads)
26
, m_man_params(_m_man_params)
27
{}
28
29
~ManExtractTriMesh
() {}
30
31
public
:
36
size_t
label_non_manifold
();
// return # of non manifold edges, verts
37
44
bool
vertex_is_manifold
(
const
Tuple
& v)
const
;
45
49
void
vertex_dfs_helper
(std::set<size_t>& visited_fids,
const
Tuple
& f)
const
;
50
55
void
extract_curve_mesh
(MatrixXd& V, MatrixXi& F)
const
;
56
60
void
write_curve
(
const
std::string& path);
61
62
private
:
// helpers
63
bool
is_curve_vertex(
const
Tuple
& v)
const
;
64
bool
is_curve_edge(
const
Tuple
& e)
const
;
65
bool
is_interior_face(
const
Tuple
& f)
const
;
66
bool
is_interior_face(
size_t
f_id)
const
;
67
};
68
69
}
// namespace wmtk::components::manifold_extraction
wmtk::TriMesh::Tuple
Definition
TriMesh.h:32
wmtk::components::manifold_extraction::ManExtractTriMesh
Definition
ManExtractTriMesh.h:14
wmtk::components::manifold_extraction::ManExtractTriMesh::vertex_is_manifold
bool vertex_is_manifold(const Tuple &v) const
check if a vertex is manifold. A vertex is manifold if all 'inside' and all 'outside' tets adjacent t...
Definition
ManExtractTriMesh.cpp:70
wmtk::components::manifold_extraction::ManExtractTriMesh::label_non_manifold
size_t label_non_manifold()
label nonmanifold simplices (edges and verts). Corresponding attributes have label set to 1
Definition
ManExtractTriMesh.cpp:54
wmtk::components::manifold_extraction::ManExtractTriMesh::vertex_dfs_helper
void vertex_dfs_helper(std::set< size_t > &visited_fids, const Tuple &f) const
dfs helper for vertex manifold check
Definition
ManExtractTriMesh.cpp:103
wmtk::components::manifold_extraction::ManExtractTriMesh::extract_curve_mesh
void extract_curve_mesh(MatrixXd &V, MatrixXi &F) const
extract edge mesh separating 'inside' faces from 'outside' faces. Resulting curve is guaranteed to be...
Definition
ManExtractTriMesh.cpp:124
wmtk::components::manifold_extraction::ManExtractTriMesh::write_curve
void write_curve(const std::string &path)
write curve .obj (boundary of in_tag)
Definition
ManExtractTriMesh.cpp:153
wmtk::components::topological_offset::TopoOffsetTriMesh
Definition
TopoOffsetTriMesh.h:44
wmtk::components::manifold_extraction::Parameters
Definition
Parameters.h:19
wmtk::components::topological_offset::Parameters
Definition
Parameters.h:10
Generated by
1.9.8