Exemplo n.º 1
0
def get_edges(vertex):
    vertex2 = stk.Vertex(1, vertex.get_position() + [-1, -1, 0])
    yield stk.Edge(id=0,
                   vertex1=vertex,
                   vertex2=vertex2,
                   position=vertex.get_position() + [-1, 0, 0])
    yield stk.Edge(id=1,
                   vertex1=vertex,
                   vertex2=vertex2,
                   position=vertex.get_position() + [0, -1, 0])
Exemplo n.º 2
0
def test_with_scale(case_data):
    """
    Test :meth:`.Edge.with_scale`.

    Parameters
    ----------
    case_data : :class:`.CaseData`
        A test case. Holds the starting position, the scale to apply
        and the target position.

    Returns
    -------
    None : :class:`NoneType`

    """

    edge = stk.Edge(
        id=0,
        vertex1=stk.Vertex(0, [0, 0, 0]),
        vertex2=stk.Vertex(1, [10, 0, 0]),
        position=case_data.start,
    )
    # Save a clone to check immutability.
    clone = edge.clone()
    _test_with_scale(edge, case_data.scale, case_data.target)
    is_clone(edge, clone)
Exemplo n.º 3
0
def get_edges(building_block_vertices):
    vertices = (vertex for vertices in building_block_vertices.values()
                for vertex in vertices)
    vertex1 = next(vertices)
    for id_, vertex2 in enumerate(vertices):
        yield stk.Edge(id_, vertex1, vertex2)
        vertex1 = vertex2
Exemplo n.º 4
0
def case_data(id, vertex1, vertex2, periodicity):
    return CaseData(
        edge=stk.Edge(
            id=id,
            vertex1=vertex1,
            vertex2=vertex2,
            periodicity=periodicity,
        ),
        id=id,
        vertex1_id=vertex1.get_id(),
        vertex2_id=vertex2.get_id(),
        periodicity=periodicity,
        is_periodic=any(i != 0 for i in periodicity),
    )
Exemplo n.º 5
0
def get_nonlinear_edges(num_edges, vertex):
    """
    Yield edges placed in a circle around `vertex`.

    Parameters
    ----------
    num_edges : :class:`int`
        The number of edges to yield.

    vertex : :class:`.Vertex`
        The vertex which needs edges.

    Yields
    ------
    :class:`.Edge`
        An edge connected to `vertex`.

    """

    for id_, point in enumerate(
            get_points(center=vertex.get_position(), num_points=num_edges)):
        yield stk.Edge(id_, vertex, stk.Vertex(id_ + 1, point))
Exemplo n.º 6
0
def get_edges(vertex):
    vertex2 = stk.Vertex(1, vertex.get_position() + [-10, 0, 0])
    vertex3 = stk.Vertex(2, vertex.get_position() + [10, 0, 0])
    yield stk.Edge(0, vertex, vertex2)
    yield stk.Edge(1, vertex, vertex3)
Exemplo n.º 7
0
def get_edge(vertex):
    vertex2 = stk.Vertex(1, vertex.get_position() + [-1, 0, 0])
    yield stk.Edge(0, vertex, vertex2)
Exemplo n.º 8
0
def get_angled_edges(vertex: stk.Vertex) -> stk.Edge:
    vertex2 = stk.Vertex(1, vertex.get_position() + [0, 10, 0])
    vertex3 = stk.Vertex(2, vertex.get_position() + [10, 0, 0])
    yield stk.Edge(0, vertex, vertex2)
    yield stk.Edge(1, vertex, vertex3)
Exemplo n.º 9
0
def get_edges(vertex, angle):
    position1, position2 = get_points(vertex.get_position(), angle)
    vertex2 = stk.Vertex(1, position1)
    vertex3 = stk.Vertex(2, position2)
    yield stk.Edge(0, vertex, vertex2)
    yield stk.Edge(1, vertex, vertex3)