def _move(shape, position, orientation):
    """
    Rotate a shape into an orientation, then move it to a position. Return the
    new shape.
    """
    placed_shape = []

    for point in shape:
        rotated_point = orientation.rotate(point)
        placed_shape.append((rotated_point[0] + position[0], rotated_point[1] + position[1], rotated_point[2] + position[2]))

    return placed_shape