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

Method generate_end_loops

tools/Wires/Inflator/SimpleInflator.cpp:126–151  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

124}
125
126void 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
153void SimpleInflator::generate_joints() {
154 const size_t dim = m_wire_network->get_dim();

Callers

nothing calls this directly

Calls 6

loop_is_validFunction · 0.85
normMethod · 0.80
placeMethod · 0.80
get_num_edgesMethod · 0.45
get_verticesMethod · 0.45
get_edgesMethod · 0.45

Tested by

no test coverage detected