Module fnpcell.cell.port

Functions

new_port

def new_port(*, name: Union[None, str, Hidden], position: Optional[Tuple[float, float]] = None,
             orientation: Optional[float] = None, at: Optional[IRay] = None,
             waveguide_type: IWaveguideType, shape: Optional[IShape] = None) -> IPort

Create a new optical port. Orientation in radians.

Classes

OwnedPort

class OwnedPort(name: Optional[str], raw: IPort, owner: ICellRef,
                 assigned_orientation: Optional[float] = None, hidden: bool = False)

OwnedPort is for defining a port owned by a CellRef. OwnedPort with owner attribute can appoint to it's owner, owner is a CellRef Any modification will create new OwnedPort instead of modify the original OwnedPort.

Ancestors

fnpcell.cell.port._PortMixin, IOwnedPort, IPort, IOwnedTerminal, IOwned,
ITerminal, IUpdatable, IRay, IPositioned, IRunnable

Class variables

var assigned_orientation: Optional[float]
var hidden: bool
var name: Optional[str]
var owner: ICellRef
var raw: IPort

Static methods

def from_port(port: IPort, owner: ICellRef) -> IOwnedPort

Return OwnedPort.

Instance variables

var annotation

Return composite.

var orientation: float

Return calculated orientation take owner's transform into account.

var position: Tuple[float, float]

Return position.

var shape: IShape

Return pin shape.

var waveguide_type: IWaveguideType

Return waveguide_type.

Methods

def advanced(self: ~_Self, distance: float) -> ~_Self

Inherited from: IOwnedPort.advanced

Return an IRay with advanced position through orientation.

def c_mirrored(self) -> IOwnedTerminal

Inherited from: IOwnedPort.c_mirrored

Owner center mirrored.

def flatten(self) -> Port

Return port.

def h_mirrored(self) -> IOwnedTerminal

Inherited from: IOwnedPort.h_mirrored

Owner horizontal mirrored.

def opposite(self: ~_Self) -> ~_Self

Inherited from: IOwnedPort.opposite

Return an IRay with same position but opposite orientation.

def repositioned(self, *, at: Union[Tuple[float, float], IPositioned, IRay]) -> IOwnedTerminal

Inherited from: IOwnedPort.repositioned

Positioned at new point,Owner will translated.

def rotated(self, degrees: Optional[float] = None, radians: Optional[float] = None) -> IOwnedTerminal

Inherited from: IOwnedPort.rotated

Rotated both degrees and radians.

def v_mirrored(self) -> IOwnedTerminal

Inherited from: IOwnedPort.v_mirrored

Owner vertical mirrored.

def with_orientation(self, *, degrees: Optional[float] = None, radians: Optional[float] = None)

Return a new OwnedPort with the given orientation.

Port

class Port(name: Optional[str], position: Tuple[float, float], orientation: float,
             waveguide_type: IWaveguideType, shape: IShape, hidden: bool = False)

Port is for defining a optical Port . Any modification will create new Port instead of modify the original Port. Orientation in radians.

Usage:

from fnpcell import all as fp

port = fp.Port(name="op_0", position=(0, 0),...)

Ancestors

fnpcell.cell.port._PortMixin, IPort, ITerminal, IUpdatable, IRay, IPositioned, IRunnable

Class variables

var hidden: bool
var name: Optional[str]
var orientation: float
var position: Tuple[float, float]
var shape: IShape
var waveguide_type: IWaveguideType

Instance variables

var annotation

Return port composite on the basis of waveguide_type.

Methods

def advanced(self: ~_Self, distance: float) -> ~_Self

Inherited from: IPort.advanced

Return an IRay with advanced position through orientation.

def opposite(self: ~_Self) -> ~_Self

Inherited from: IPort.opposite

Return an IRay with same position but opposite orientation.