| 124 | } |
| 125 | |
| 126 | void SimpleInflator::generate_end_loops() { |
| 127 | const size_t num_edges = m_wire_network->get_num_edges(); |
| 128 | |
| 129 | const MatrixFr vertices = m_wire_network->get_vertices(); |
| 130 | const MatrixIr edges = m_wire_network->get_edges(); |
| 131 | const MatrixFr edge_thickness = get_edge_thickness(); |
| 132 | for (size_t i=0; i<num_edges; i++) { |
| 133 | const VectorI& edge = edges.row(i); |
| 134 | const VectorF& v1 = vertices.row(edge[0]); |
| 135 | const VectorF& v2 = vertices.row(edge[1]); |
| 136 | Float edge_len = (v2 - v1).norm(); |
| 137 | MatrixFr loop_1 = m_profile->place(v1, v2, |
| 138 | m_end_loop_offsets[edge[0]], |
| 139 | edge_thickness(i, 0), |
| 140 | m_rel_correction, m_abs_correction, m_correction_cap, |
| 141 | m_spread_const); |
| 142 | assert(loop_is_valid(loop_1, v1, v2)); |
| 143 | MatrixFr loop_2 = m_profile->place(v1, v2, |
| 144 | edge_len - m_end_loop_offsets[edge[1]], |
| 145 | edge_thickness(i, 1), |
| 146 | m_rel_correction, m_abs_correction, m_correction_cap, |
| 147 | m_spread_const); |
| 148 | assert(loop_is_valid(loop_2, v1, v2)); |
| 149 | m_end_loops.push_back(std::make_pair(loop_1, loop_2)); |
| 150 | } |
| 151 | } |
| 152 | |
| 153 | void SimpleInflator::generate_joints() { |
| 154 | const size_t dim = m_wire_network->get_dim(); |
nothing calls this directly
no test coverage detected