| 77 | } |
| 78 | |
| 79 | void MeshTiler::evaluate_thickness_parameters(WireNetwork& wire_network, |
| 80 | const MeshTiler::FuncList& funcs) { |
| 81 | const size_t num_vertices = wire_network.get_num_vertices(); |
| 82 | const size_t num_edges = wire_network.get_num_edges(); |
| 83 | const size_t num_unit_vertices = m_unit_wire_network->get_num_vertices(); |
| 84 | const size_t num_unit_edges = m_unit_wire_network->get_num_edges(); |
| 85 | |
| 86 | size_t num_thickness_entries, thickness_index_stride; |
| 87 | if (m_params->get_thickness_type() == ParameterCommon::VERTEX) { |
| 88 | thickness_index_stride = num_unit_vertices; |
| 89 | num_thickness_entries = num_vertices; |
| 90 | wire_network.add_attribute("thickness", true); |
| 91 | } else { |
| 92 | thickness_index_stride = num_unit_edges; |
| 93 | num_thickness_entries = num_edges; |
| 94 | wire_network.add_attribute("thickness", false); |
| 95 | } |
| 96 | MatrixFr thickness(num_thickness_entries, 1); |
| 97 | |
| 98 | auto vars_array = extract_attributes(m_mesh); |
| 99 | assert(vars_array.size() == funcs.size()); |
| 100 | size_t count=0; |
| 101 | auto vars_itr = vars_array.begin(); |
| 102 | for (auto f : funcs) { |
| 103 | assert(vars_itr != vars_array.end()); |
| 104 | VectorF local_thickness = m_params->evaluate_thickness(*vars_itr); |
| 105 | thickness.block(count * thickness_index_stride, 0, |
| 106 | thickness_index_stride, 1) = local_thickness; |
| 107 | count++; |
| 108 | vars_itr++; |
| 109 | } |
| 110 | wire_network.set_attribute("thickness", thickness); |
| 111 | } |
| 112 | |
| 113 | void MeshTiler::evaluate_offset_parameters(WireNetwork& wire_network, |
| 114 | const MeshTiler::FuncList& funcs) { |
nothing calls this directly
no test coverage detected