| 168 | return mesh; |
| 169 | |
| 170 | def resolve_self_intersection(wires, logger): |
| 171 | if wires.num_vertices == 0: |
| 172 | return wires; |
| 173 | bbox_min, bbox_max = wires.bbox; |
| 174 | tol = norm(bbox_max - bbox_min) / 1000; |
| 175 | start_time = time(); |
| 176 | vertices, edges = pymesh.snap_rounding(wires.vertices, wires.edges, tol); |
| 177 | finish_time = time(); |
| 178 | t = finish_time - start_time; |
| 179 | logger.info("Snap rounding running time: {}".format(t)); |
| 180 | wires.load(vertices, edges); |
| 181 | return wires; |
| 182 | |
| 183 | def extract_straight_skeleton(wires, logger, remove_holes): |
| 184 | wires = uniform_sampling(wires); |