MCPcopy Create free account
hub / github.com/PyMesh/PyMesh / compute_from_tet_mesh

Method compute_from_tet_mesh

src/Attributes/VertexValanceAttribute.cpp:55–87  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

53}
54
55void VertexValanceAttribute::compute_from_tet_mesh(Mesh& mesh) {
56 const size_t num_vertices = mesh.get_num_vertices();
57 const size_t num_voxels = mesh.get_num_voxels();
58 const size_t num_vertex_per_voxel = mesh.get_vertex_per_voxel();
59 assert(num_vertex_per_voxel == 4);
60
61 VectorF& vertex_valance = m_values;
62 vertex_valance = VectorF::Zero(num_vertices);
63
64 std::set<Duplet> edges;
65 for (size_t i=0; i<num_voxels; i++) {
66 VectorI voxel = mesh.get_voxel(i);
67 Duplet edge[6] = {
68 {voxel[0], voxel[1]},
69 {voxel[0], voxel[2]},
70 {voxel[0], voxel[3]},
71 {voxel[1], voxel[2]},
72 {voxel[1], voxel[3]},
73 {voxel[2], voxel[3]} };
74 edges.insert(edge[0]);
75 edges.insert(edge[1]);
76 edges.insert(edge[2]);
77 edges.insert(edge[3]);
78 edges.insert(edge[4]);
79 edges.insert(edge[5]);
80 }
81
82 for (auto edge : edges) {
83 const auto& data = edge.get_ori_data();
84 vertex_valance[data[0]] ++;
85 vertex_valance[data[1]] ++;
86 }
87}
88
89void VertexValanceAttribute::compute_from_hex_mesh(Mesh& mesh) {
90 const size_t num_vertices = mesh.get_num_vertices();

Callers

nothing calls this directly

Calls 5

get_voxelMethod · 0.80
get_num_verticesMethod · 0.45
get_num_voxelsMethod · 0.45
get_vertex_per_voxelMethod · 0.45
insertMethod · 0.45

Tested by

no test coverage detected