23 field_fn.set_evaluation_bbox(rmt_lattice_.extended_bbox());
25 rmt_lattice_.add_all_nodes(field_fn, isovalue);
27 return generate_common();
31 double isovalue = 0.0) {
32 field_fn.set_evaluation_bbox(rmt_lattice_.extended_bbox());
34 for (
auto p : seed_points.rowwise()) {
35 rmt_lattice_.add_cell_contains_point(p);
37 rmt_lattice_.add_nodes_by_tracking(field_fn, isovalue);
39 return generate_common();
44 rmt_lattice_.cluster_vertices();
47 rmt_surf.generate_surface();
51 auto vertices = rmt_lattice_.get_vertices();
52 auto faces = rmt_surf.get_faces();
55 auto vis = defects.singular_vertices();
56 auto fis = defects.intersecting_faces();
58 std::unordered_set<vertex_index> vertices_to_uncluster;
60 vertices_to_uncluster.insert(vi);
63 auto f = faces.row(fi);
64 vertices_to_uncluster.insert(f(0));
65 vertices_to_uncluster.insert(f(1));
66 vertices_to_uncluster.insert(f(2));
69 rmt_lattice_.uncluster_vertices(vertices_to_uncluster);
77 surface surf(rmt_lattice_.get_vertices(), rmt_surf.get_faces());