Example #1
0
    def set_up_verts(self, vertices, edges, faces, compare_func):

        if int(self.vertex_mode) == 0:
            bm = bmesh_from_pydata(vertices, edges, faces, normal_update=True)
            vals = [tuple(v.normal) for v in bm.verts]
            bm.free()
            compare_func = equal_vectors
        elif int(self.vertex_mode) == 1:
            vals = adjacent_edg_pol_num(vertices, faces)
        elif int(self.vertex_mode) == 3:
            vals = adjacent_edg_pol_num(vertices, edges)

        return vals, compare_func
Example #2
0
def connected_edges_num(verts, edges):
    '''number of edges conected to each edge'''
    v_adja = adjacent_edg_pol_num(verts, edges)
    vals = []
    for e in edges:
        adj = 0
        for c in e:
            adj += v_adja[c] - 1
        vals.append(adj)
    return vals
Example #3
0
    def generate_outlines(self, output_lists, params):
        verts_in, _, _, edges_in = params
        is_edges_in_linked = self.inputs['Edges_in'].is_linked
        poligonal_inter = (0 if self.intersecction_handle == "Circular" else 1)

        v_len = len(verts_in)
        edges_in = [i for i in edges_in if i[0] < v_len and i[1] < v_len]

        perimeter_number, actual_radius = self.get_perimeter_and_radius(params)

        for i in range(perimeter_number):

            net, parameters = self.adjust_parameters(params, v_len,
                                                     actual_radius[i],
                                                     poligonal_inter, edges_in)
            verts_in, _, actual_radius[i], net = parameters
            if is_edges_in_linked and self.remove_caps:
                edges_num = adjacent_edg_pol_num(verts_in, edges_in)
                start_geometry = [
                    self.make_verts(vi, v, r, n)
                    for en, vi, v, r, n in zip(edges_num, *parameters)
                    if en > 1
                ]
            else:
                start_geometry = [
                    self.make_verts(vi, v, r, n)
                    for vi, v, r, n in zip(*parameters)
                ]
            edg = [p[1] for p in start_geometry]
            points = [p[0] for p in start_geometry]

            if is_edges_in_linked:
                verts_sides_out, edge_side_out = self.side_edges(
                    verts_in, edges_in, actual_radius[i], net)
                points.append(verts_sides_out)
                edg.append(edge_side_out)

            verts_out, _, edges_out = mesh_join(points, [], edg)

            verts_out, edges_out = intersect_edges_2d(verts_out, edges_out,
                                                      abs(self.mask_t))

            edges_out = self.mask_edges_by_mid_points(verts_out, edges_out,
                                                      parameters, v_len,
                                                      edges_in)

            verts_out, edges_out = remove_doubles_from_edgenet(
                verts_out, edges_out, self.rm_doubles)

            verts_out, edges_out = sort_verts_by_connexions(
                verts_out, edges_out)

            output_lists[0].append(verts_out)
            output_lists[1].append(edges_out)
Example #4
0
def connected_edges_num(verts, edges):
    '''
    number of edges conected to each edge
    vertices: list as [vertex, vertex, ...], being each vertex [float, float, float].
    edges: list as [edge, edge,..], being each edge [int, int].
    returns number of edges connected to each edge as [int, int,...]
    '''
    v_adja = adjacent_edg_pol_num(verts, edges)
    vals = []
    for edge in edges:
        adj = 0
        for c in edge:
            adj += v_adja[c] - 1
        vals.append(adj)
    return vals