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

Method tile

tools/Wires/Tiler/MixedMeshTiler.cpp:34–78  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

32}
33
34WireNetwork::Ptr MixedMeshTiler::tile() {
35 const size_t num_cells = get_num_cells();
36 auto transforms = get_tiling_operators();
37 auto vars_array = extract_attributes(m_mesh);
38 VectorI pattern_id = m_mesh->get_attribute("pattern_id").cast<int>();
39 assert(pattern_id.size() == num_cells);
40
41 m_tiled_vertices.clear();
42 m_tiled_edges.clear();
43 m_tiled_thicknesses.clear();
44 m_tiled_offsets.clear();
45
46 size_t v_count = 0;
47 auto transform_itr = transforms.begin();
48 for (size_t i=0; i<num_cells; i++) {
49 set_active_wire_network(pattern_id[i]);
50 scale_to_unit_box();
51 append_vertices(*transform_itr);
52 append_edges(v_count);
53 append_thicknesses(vars_array[i]);
54 append_offsets(vars_array[i], *transform_itr);
55
56 v_count += m_unit_wire_network->get_num_vertices();
57 transform_itr++;
58 }
59
60 MatrixFr vertices = vstack(m_tiled_vertices);
61 MatrixIr edges = vstack(m_tiled_edges);
62 MatrixFr thicknesses = vstack(m_tiled_thicknesses);
63 MatrixFr offsets = vstack(m_tiled_offsets);
64 assert(edges.minCoeff() >= 0);
65 assert(edges.maxCoeff() < vertices.rows());
66
67 WireNetwork::Ptr tiled_network =
68 WireNetwork::create_raw(vertices, edges);
69
70 tiled_network->add_attribute("thickness",
71 m_target_type == ParameterCommon::VERTEX);
72 tiled_network->set_attribute("thickness", thicknesses);
73 tiled_network->add_attribute("vertex_offset", true);
74 tiled_network->set_attribute("vertex_offset", offsets);
75
76 clean_up(*tiled_network);
77 return tiled_network;
78}
79
80size_t MixedMeshTiler::get_num_cells() const {
81 const size_t dim = m_mesh->get_dim();

Callers

nothing calls this directly

Calls 8

get_tiling_operatorsFunction · 0.85
get_attributeMethod · 0.45
sizeMethod · 0.45
clearMethod · 0.45
beginMethod · 0.45
get_num_verticesMethod · 0.45
add_attributeMethod · 0.45
set_attributeMethod · 0.45

Tested by

no test coverage detected