def getVTX(self): self.idx1, self.idx2 = self.selected_edges self.edge1 = cm.coords_tuple_from_edge_idx(self.bm, self.idx1) self.edge2 = cm.coords_tuple_from_edge_idx(self.bm, self.idx2) self.point = cm.get_intersection(self.edge1, self.edge2) self.edges = cm.find_intersecting_edges( self.bm, self.point, self.idx1, self.idx2)
def add_or_remove_new_edge(self, idx): ''' - only add idx if not edge_prime - and not currently present in selected_edges ''' p_idx = self.edge_prime_idx if idx == p_idx: print(idx, 'is edge prime, not adding') return if (idx in self.selected_edges): self.selected_edges.remove(idx) del self.xvectors[idx] else: edge_prime = cm.coords_tuple_from_edge_idx(self.bm, p_idx) edge2 = cm.coords_tuple_from_edge_idx(self.bm, idx) p = cm.get_intersection(edge_prime, edge2) if not cm.point_on_edge(p, edge_prime): return vert_idx_closest = cm.closest_idx(p, self.bm.edges[idx]) self.xvectors[idx] = [p, vert_idx_closest] self.selected_edges.append(idx)
def do_single_draw_pass(self): # draw edge prime c = cm.coords_tuple_from_edge_idx(self.bm, self.edge_prime_idx) draw_edge(c, "prime", 3) # draw extender edges and projections. if len(self.selected_edges) > 0: # get and draw selected valid edges coords_ext = get_extender_coords(self) draw_edge(coords_ext, "extend", 3) # get and draw extenders only coords_proj = get_projection_coords(self) draw_edge(coords_proj, "projection", 3) restore_bgl_defaults()
def get_extender_coords(self): coords = [] for idx in self.selected_edges: c = cm.coords_tuple_from_edge_idx(self.bm, idx) coords.extend(c) return coords