Skip to content

edge_indices

edge_indices(n, closed=False)

Returns matrix of edge indices

Given an ordered polyline, this returns the edge indeces in a similar way to how the face indeces of a triangle mesh are given.

Parameters:

Name Type Description Default
n int

Number of vertices in polyline

required
closed boolean, optional (default False)

Matrix of triangle indices

False

Returns:

Name Type Description
EC numpy int array

Matrix of edge indeces

See Also

Notes

Examples:

TO-DO

Source code in src/gpytoolbox/edge_indices.py
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
def edge_indices(n,closed=False):
    """Returns matrix of edge indices

    Given an ordered polyline, this returns the edge indeces in a similar way to how the face indeces of a triangle mesh are given.

    Parameters
    ----------
    n : int
        Number of vertices in polyline
    closed : boolean, optional (default False)
        Matrix of triangle indices

    Returns
    -------
    EC : numpy int array
        Matrix of edge indeces

    See Also
    --------


    Notes
    -----


    Examples
    --------
    TO-DO
    """

    # Given an ordered polyline, this returns the edge indeces in a similar way
    # to how the face indeces of a triangle mesh are given.
    # Inputs:
    #       n integer number of vertices
    #       Optional:
    #           closed boolean with whether to close the path or not
    # Outputs:
    #       EC #n-1 (#n if closed) by 2 matrix of edge indeces

    # Note: the "order='F'" in all the reshapes is to mimic scanning order from
    # Matlab, otherwise it does the reverse order (rows first)
    if closed:
        return np.reshape(np.concatenate((np.linspace(0,n-1,n,dtype=int),
             np.linspace(1,n-1,n-1,dtype=int),np.array([0]))),(-1, 2),order='F')
    else:
        return np.reshape(np.concatenate((np.linspace(0,n-2,n-1,dtype=int),
             np.linspace(1,n-1,n-1,dtype=int))),(-1, 2),order='F')