Changeset View
Changeset View
Standalone View
Standalone View
mesh_bsurfaces.py
| Context not available. | |||||
| original_sel_edges_count = 0 | original_sel_edges_count = 0 | ||||
| for ed in object.data.edges: | for ed in object.data.edges: | ||||
| if object.data.vertices[ed.vertices[0]].select and object.data.vertices[ed.vertices[1]].select: | if object.data.vertices[ed.vertices[0]].select and object.data.vertices[ed.vertices[1]].select: | ||||
| coords = [] | coords = [ | ||||
| coords.append(object.data.vertices[ed.vertices[0]].co) | object.data.vertices[ed.vertices[0]].co, | ||||
| coords.append(object.data.vertices[ed.vertices[1]].co) | object.data.vertices[ed.vertices[1]].co | ||||
| ] | |||||
| original_sel_edges_count += 1 | original_sel_edges_count += 1 | ||||
| Context not available. | |||||
| #### Get all the faces of the object. | #### Get all the faces of the object. | ||||
| all_object_faces_verts_idx = [] | all_object_faces_verts_idx = [] | ||||
| for face in object.data.polygons: | for face in object.data.polygons: | ||||
| face_verts = [] | face_verts = [face.vertices[0], face.vertices[1], face.vertices[2]] | ||||
| face_verts.append(face.vertices[0]) | |||||
| face_verts.append(face.vertices[1]) | |||||
| face_verts.append(face.vertices[2]) | |||||
| if len(face.vertices) == 4: | if len(face.vertices) == 4: | ||||
| face_verts.append(face.vertices[3]) | face_verts.append(face.vertices[3]) | ||||
| Context not available. | |||||
| merge_actual_vert = True | merge_actual_vert = True | ||||
| if len(surface_connected_verts[i]) < 4: | if len(surface_connected_verts[i]) < 4: | ||||
| for c_v_idx in surface_connected_verts[i]: | for c_v_idx in surface_connected_verts[i]: | ||||
| points_original = [] | points_original = [ | ||||
| points_original.append(ob_surface.data.vertices[c_v_idx].co) | ob_surface.data.vertices[c_v_idx].co, | ||||
| points_original.append(ob_surface.data.vertices[i].co) | ob_surface.data.vertices[i].co | ||||
| ] | |||||
| points_target = [] | points_target = [ | ||||
| points_target.append(ob_surface.data.vertices[c_v_idx].co) | ob_surface.data.vertices[c_v_idx].co, | ||||
| points_target.append(final_ob_duplicate.data.vertices[i].co) | final_ob_duplicate.data.vertices[i].co | ||||
| ] | |||||
| vec_A = points_original[0] - points_original[1] | vec_A = points_original[0] - points_original[1] | ||||
| vec_B = points_target[0] - points_target[1] | vec_B = points_target[0] - points_target[1] | ||||
| Context not available. | |||||
| first_neighbor_U_idx = None | first_neighbor_U_idx = None | ||||
| closing_vert_U_idx = None | closing_vert_U_idx = None | ||||
| points_tips = [] | points_tips = [ | ||||
| points_tips.append(self.main_object.matrix_world * self.main_object.data.vertices[nearest_tip_to_first_st_first_pt_idx].co) | self.main_object.matrix_world * self.main_object.data.vertices[nearest_tip_to_first_st_first_pt_idx].co, | ||||
| points_tips.append(self.main_object.matrix_world * self.main_object.data.vertices[nearest_tip_to_first_st_first_pt_opposite_idx].co) | self.main_object.matrix_world * self.main_object.data.vertices[nearest_tip_to_first_st_first_pt_opposite_idx].co | ||||
| ] | |||||
| points_first_stroke_tips = [] | points_first_stroke_tips = [ | ||||
| points_first_stroke_tips.append(self.main_splines.data.splines[0].bezier_points[0].co) | self.main_splines.data.splines[0].bezier_points[0].co, | ||||
| points_first_stroke_tips.append(self.main_splines.data.splines[0].bezier_points[len(self.main_splines.data.splines[0].bezier_points) - 1].co) | self.main_splines.data.splines[0].bezier_points[len(self.main_splines.data.splines[0].bezier_points) - 1].co | ||||
| ] | |||||
| vec_A = points_tips[0] - points_tips[1] | vec_A = points_tips[0] - points_tips[1] | ||||
| vec_B = points_first_stroke_tips[0] - points_first_stroke_tips[1] | vec_B = points_first_stroke_tips[0] - points_first_stroke_tips[1] | ||||
| Context not available. | |||||
| vert_neighbors.append(verts[2]) | vert_neighbors.append(verts[2]) | ||||
| break | break | ||||
| points_first_and_neighbor = [] | points_first_and_neighbor = [ | ||||
| points_first_and_neighbor.append(self.main_object.matrix_world * self.main_object.data.vertices[nearest_tip_to_first_st_first_pt_idx].co) | self.main_object.matrix_world * self.main_object.data.vertices[nearest_tip_to_first_st_first_pt_idx].co, | ||||
| points_first_and_neighbor.append(self.main_object.matrix_world * self.main_object.data.vertices[vert_neighbors[0]].co) | self.main_object.matrix_world * self.main_object.data.vertices[vert_neighbors[0]].co | ||||
| ] | |||||
| points_first_stroke_tips = [] | points_first_stroke_tips = [ | ||||
| points_first_stroke_tips.append(self.main_splines.data.splines[0].bezier_points[0].co) | self.main_splines.data.splines[0].bezier_points[0].co, | ||||
| points_first_stroke_tips.append(self.main_splines.data.splines[0].bezier_points[1].co) | self.main_splines.data.splines[0].bezier_points[1].co | ||||
| ] | |||||
| vec_A = points_first_and_neighbor[0] - points_first_and_neighbor[1] | vec_A = points_first_and_neighbor[0] - points_first_and_neighbor[1] | ||||
| vec_B = points_first_stroke_tips[0] - points_first_stroke_tips[1] | vec_B = points_first_stroke_tips[0] - points_first_stroke_tips[1] | ||||
| Context not available. | |||||
| vert_neighbors.append(verts[2]) | vert_neighbors.append(verts[2]) | ||||
| break | break | ||||
| points_first_and_neighbor = [] | points_first_and_neighbor = [ | ||||
| points_first_and_neighbor.append(self.main_object.matrix_world * self.main_object.data.vertices[nearest_tip_to_last_st_first_pt_idx].co) | self.main_object.matrix_world * self.main_object.data.vertices[nearest_tip_to_last_st_first_pt_idx].co, | ||||
| points_first_and_neighbor.append(self.main_object.matrix_world * self.main_object.data.vertices[vert_neighbors[0]].co) | self.main_object.matrix_world * self.main_object.data.vertices[vert_neighbors[0]].co | ||||
| ] | |||||
| points_last_stroke_tips = [] | points_last_stroke_tips = [ | ||||
| points_last_stroke_tips.append(self.main_splines.data.splines[len(self.main_splines.data.splines) - 1].bezier_points[0].co) | self.main_splines.data.splines[len(self.main_splines.data.splines) - 1].bezier_points[0].co, | ||||
| points_last_stroke_tips.append(self.main_splines.data.splines[len(self.main_splines.data.splines) - 1].bezier_points[1].co) | self.main_splines.data.splines[len(self.main_splines.data.splines) - 1].bezier_points[1].co | ||||
| ] | |||||
| vec_A = points_first_and_neighbor[0] - points_first_and_neighbor[1] | vec_A = points_first_and_neighbor[0] - points_first_and_neighbor[1] | ||||
| vec_B = points_last_stroke_tips[0] - points_last_stroke_tips[1] | vec_B = points_last_stroke_tips[0] - points_last_stroke_tips[1] | ||||
| Context not available. | |||||
| # Calculate proportions for each stroke. | # Calculate proportions for each stroke. | ||||
| for st in range(len(pts_on_strokes_with_proportions_U)): | for st in range(len(pts_on_strokes_with_proportions_U)): | ||||
| actual_stroke_spline = [] | actual_stroke_spline = [self.main_splines.data.splines[st]] | ||||
| actual_stroke_spline.append(self.main_splines.data.splines[st]) # Needs to be a list for the "distribute_pts" method. | |||||
| # Calculate the proportions for the actual stroke. | # Calculate the proportions for the actual stroke. | ||||
| actual_edges_proportions_U = [] | actual_edges_proportions_U = [] | ||||
| Context not available. | |||||
| verts_middle_position_co = [(sp[0][i][0] + sp[len(sp) - 1][i][0]) / 2, (sp[0][i][1] + sp[len(sp) - 1][i][1]) / 2, (sp[0][i][2] + sp[len(sp) - 1][i][2]) / 2] | verts_middle_position_co = [(sp[0][i][0] + sp[len(sp) - 1][i][0]) / 2, (sp[0][i][1] + sp[len(sp) - 1][i][1]) / 2, (sp[0][i][2] + sp[len(sp) - 1][i][2]) / 2] | ||||
| points_original = [] | points_original = [sp[1][i], sp[0][i]] | ||||
| points_original.append(sp[1][i]) | |||||
| points_original.append(sp[0][i]) | |||||
| points_target = [] | points_target = [sp[1][i], mathutils.Vector(verts_middle_position_co)] | ||||
| points_target.append(sp[1][i]) | |||||
| points_target.append(mathutils.Vector(verts_middle_position_co)) | |||||
| vec_A = points_original[0] - points_original[1] | vec_A = points_original[0] - points_original[1] | ||||
| vec_B = points_target[0] - points_target[1] | vec_B = points_target[0] - points_target[1] | ||||
| Context not available. | |||||