Changeset View
Changeset View
Standalone View
Standalone View
mesh_bsurfaces.py
| Context not available. | |||||
| def get_ordered_verts(self, ob, all_selected_edges_idx, all_selected_verts_idx, first_vert_idx, middle_vertex_idx, closing_vert_idx): | def get_ordered_verts(self, ob, all_selected_edges_idx, all_selected_verts_idx, first_vert_idx, middle_vertex_idx, closing_vert_idx): | ||||
| # Order selected vertices. | # Order selected vertices. | ||||
| verts_ordered = [] | verts_ordered = [] | ||||
| if closing_vert_idx != None: | if closing_vert_idx is not None: | ||||
| verts_ordered.append(ob.data.vertices[closing_vert_idx]) | verts_ordered.append(ob.data.vertices[closing_vert_idx]) | ||||
| verts_ordered.append(ob.data.vertices[first_vert_idx]) | verts_ordered.append(ob.data.vertices[first_vert_idx]) | ||||
| Context not available. | |||||
| if finish_while: | if finish_while: | ||||
| break | break | ||||
| if closing_vert_idx != None: | if closing_vert_idx is not None: | ||||
| verts_ordered.append(ob.data.vertices[closing_vert_idx]) | verts_ordered.append(ob.data.vertices[closing_vert_idx]) | ||||
| if middle_vertex_idx != None: | if middle_vertex_idx is not None: | ||||
| verts_ordered.append(ob.data.vertices[middle_vertex_idx]) | verts_ordered.append(ob.data.vertices[middle_vertex_idx]) | ||||
| verts_ordered.reverse() | verts_ordered.reverse() | ||||
| Context not available. | |||||
| length = (v1.co - v2.co).length | length = (v1.co - v2.co).length | ||||
| if shortest_edge_length == None: | if shortest_edge_length is None: | ||||
| shortest_edge_length = length | shortest_edge_length = length | ||||
| else: | else: | ||||
| if length < shortest_edge_length: | if length < shortest_edge_length: | ||||
| shortest_edge_length = length | shortest_edge_length = length | ||||
| if shortest_edge_length != None: | if shortest_edge_length is not None: | ||||
| edges_merge_distance = shortest_edge_length * 0.5 | edges_merge_distance = shortest_edge_length * 0.5 | ||||
| else: | else: | ||||
| edges_merge_distance = 0 | edges_merge_distance = 0 | ||||
| Context not available. | |||||
| for vcf_idx in verts_not_movable: | for vcf_idx in verts_not_movable: | ||||
| dist = abs((object.data.vertices[vcf_idx].co - mathutils.Vector(middle_point_co)).length) | dist = abs((object.data.vertices[vcf_idx].co - mathutils.Vector(middle_point_co)).length) | ||||
| if shortest_dist == None: | if shortest_dist is None: | ||||
| shortest_dist = dist | shortest_dist = dist | ||||
| nearest_vert_idx = vcf_idx | nearest_vert_idx = vcf_idx | ||||
| else: | else: | ||||
| Context not available. | |||||
| if co_1 != co_2: | if co_1 != co_2: | ||||
| dist = (mathutils.Vector(co_1) - mathutils.Vector(co_2)).length | dist = (mathutils.Vector(co_1) - mathutils.Vector(co_2)).length | ||||
| if shortest_dist != None: | if shortest_dist is not None: | ||||
| if dist < shortest_dist: | if dist < shortest_dist: | ||||
| shortest_dist = dist | shortest_dist = dist | ||||
| else: | else: | ||||
| Context not available. | |||||
| intersec_coords = mathutils.geometry.intersect_line_line(bp1_co, bp2_co, bp3_co, bp4_co) | intersec_coords = mathutils.geometry.intersect_line_line(bp1_co, bp2_co, bp3_co, bp4_co) | ||||
| if intersec_coords != None: | if intersec_coords is not None: | ||||
| dist = (intersec_coords[0] - intersec_coords[1]).length | dist = (intersec_coords[0] - intersec_coords[1]).length | ||||
| if dist <= self.crosshatch_merge_distance * 1.5: | if dist <= self.crosshatch_merge_distance * 1.5: | ||||
| Context not available. | |||||
| if i != t and not t in checked_verts: | if i != t and not t in checked_verts: | ||||
| dist = (verts[i].co - verts[t].co).length | dist = (verts[i].co - verts[t].co).length | ||||
| if shortest_dist != None: | if shortest_dist is not None: | ||||
| if dist < shortest_dist: | if dist < shortest_dist: | ||||
| shortest_dist = dist | shortest_dist = dist | ||||
| nearest_vert = t | nearest_vert = t | ||||
| Context not available. | |||||
| #### Identify the type of selection made by the user. | #### Identify the type of selection made by the user. | ||||
| if middle_vertex_idx != None: | if middle_vertex_idx is not None: | ||||
| if len(all_chains_tips_idx) == 4 and len(single_unselected_verts_and_neighbors) == 1: # If there are 4 tips (two selection chains), and there is only one single unselected vert (the middle vert). | if len(all_chains_tips_idx) == 4 and len(single_unselected_verts_and_neighbors) == 1: # If there are 4 tips (two selection chains), and there is only one single unselected vert (the middle vert). | ||||
| selection_type = "TWO_CONNECTED" | selection_type = "TWO_CONNECTED" | ||||
| else: | else: | ||||
| Context not available. | |||||