| 84 | } |
| 85 | |
| 86 | WireNetwork::Ptr AABBTiler::tile() { |
| 87 | VectorF cell_size = (m_bbox_max - m_bbox_min).cwiseQuotient( |
| 88 | m_repetitions.cast<Float>()); |
| 89 | normalize_unit_wire(cell_size); |
| 90 | |
| 91 | std::vector<VectorI> indices = enumerate(m_repetitions); |
| 92 | const size_t num_repetitions = indices.size(); |
| 93 | auto transforms = get_tiling_operators(m_unit_wire_network->get_bbox_min(), |
| 94 | cell_size, indices); |
| 95 | MatrixFr tiled_vertices = tile_vertices(transforms); |
| 96 | MatrixIr tiled_edges = tile_edges(num_repetitions); |
| 97 | |
| 98 | WireNetwork::Ptr tiled_network = |
| 99 | WireNetwork::create_raw(tiled_vertices, tiled_edges); |
| 100 | update_attributes(*tiled_network, num_repetitions); |
| 101 | evaluate_parameters(*tiled_network, transforms); |
| 102 | clean_up(*tiled_network, 1e-3); |
| 103 | return tiled_network; |
| 104 | } |
| 105 | |
| 106 | void AABBTiler::evaluate_parameters(WireNetwork& wire_network, |
| 107 | const AABBTiler::FuncList& funcs) { |
nothing calls this directly
no test coverage detected