Routing

Routing allows you to create a path between two points. IPKISS implements a few routing algorithms. They’re mainly used to create connections/links between two components. Routes in ipkiss are regular shapes, this means that they can be easily used to create waveguides or other traces.

The main types of routes are:

RouteToLine Routes an input_port to a line.
RouteToAngle A Route that directs the input_port towards a given angle
RouteManhattan Routes the input_port to the output_port using a manhattan pattern (straight sections along EAST, WEST, NORTH, SOUTH directions).

There are also other types that extend the types above to make them easier to use.

RouteToLine

RouteToNorthAtX Routes the input_port to a line pointing North at a given X coordinate
RouteToSouthAtX Routes the input_port to a line pointing South at a given X coordinate
RouteToVerticalAtX Routes the input_port to a line pointing North or South (whichever is closest) at a given X coordinate
RouteToHorizontalAtY Routes the input_port to a line pointing East or West (whichever is closest) at a given Y coordinate
RouteToWestAtY Routes the input_port to a line pointing West at a given Y coordinate
RouteToEastAtY Routes the input_port to a line pointing East at a given Y coordinate

RouteToAngle

RouteToAngle A Route that directs the input_port towards a given angle
RouteToHorizontal A Route that directs the input_port towards a horizontal direction (East or West, whichever is closer)
RouteToVertical A Route that directs the input_port towards a vertical direction (North or South, whichever is closer)
RouteToNorth A Route that directs the input_port towards the North
RouteToSouth A Route that directs the input_port towards the South
RouteToEast A Route that directs the input_port towards the East
RouteToWest A Route that directs the input_port towards the West
RouteToManhattan A Route that directs the input_port towardsthe nearest manhattan direction (East or West, North or South)

Helper Functions

In addition to the classes described above, IPKISS provides a range of helper functions that combine a few of the classes above to implement more specific behavior. All these functions will return a Route object but the type of the Route will depend on the arguments you provided.

RouteToEastAtMaxY Routes the input_port to a line pointing East at a Y coordinate which is larger or equal to the y_position specified.
RouteToEastAtMinY Routes the input_port to a line pointing East at a Y coordinate which is larger or equal to the y_position specified.
RouteToNorthAtMaxX Routes the input_port to a line pointing North at an X coordinate which is smaller or equal to the x_position specified.
RouteToNorthAtMinX Routes the input_port to a line pointing North at an X coordinate which is larger or equal to the x_position specified.
RouteToSouthAtMaxX Routes the input_port to a line pointing South at an X coordinate which is smaller or equal to the x_position specified.
RouteToSouthAtMinX Routes the input_port to a line pointing South at an X coordinate which is larger or equal to the x_position specified.
RouteToWestAtMaxY Routes the input_port to a line pointing West at a Y coordinate which is smaller or equal to the y_position specified.
RouteToWestAtMinY Routes the input_port to a line pointing West at a Y coordinate which is larger or equal to the y_position specified.
RouteToManhattanRelativeToPosition Route a port to a manhattan direction at a coordinate value relative to the given position (coordinate is x for EAST/WEST direction, and y for NORTH/SOUTH) relation is either ‘>’ or ‘<’