AutoContactHTee(3)

NAME
AutoContactHTee - AutoContact H-Tee (two H, one V)

SYNOPSIS

Inherits AutoContact.

  Public Member Functions
virtual AutoSegment * getOpposite (const AutoSegment *) const
virtual AutoSegment * getPerpandicular (const AutoSegment *) const
virtual AutoSegment * getSegment (unsigned int) const
virtual void updateGeometry ()
virtual void updateTopology ()

  Static Public Member Functions
static AutoContactHTee * create (GCell *, Net *, const Layer *)

  Additional Inherited Members

Detailed Description

AutoContact H-Tee (two H, one V) AutoContact to build an horizontal tee (two H, one V).

Member Function Documentation

  AutoContactHTee * create (GCell * gcell, Net * net, const Layer * layer) [static]

Parameters:
    gcell The GCell into which create the AutoContact.
    net The Net to which this AutoContact belongs.
    layer The Layer of the AutoContact.

Returns:
    The created AutoContactHTee.

Create a new AutoContactHTee.

References Katabatic::CntInCreationStage, and Contact::create().

Referenced by GCellTopology::_do_xG(), GCellTopology::_do_xG_1M1_1M2(), and GCellTopology::_do_xG_xM1_xM3().

  AutoSegment * getOpposite (const AutoSegment * reference) const [virtual]
Returns: The other AutoSegment the same direction as reference, this is only meaningful on AutoContactHTee or AutoContactVTee. If there is no opposite, NULL is returned.

Implements AutoContact.

  AutoSegment * getPerpandicular (const AutoSegment * reference) const [virtual]
Returns: The AutoSegment in the perpandicular direction to reference, this is only meaningful on AutoContacTurn. It there is no unique perpandicular, NULL is returned.

Implements AutoContact.

  AutoSegment * getSegment (unsigned int index) const [virtual]
Returns: The nth anchored AutoSegment. The index is significant:

•   0 : first horizontal (h1).

•   1 : second horizontal (h2).

•   2 : first vertical (b1).

•   3 : second vertical (b2).

Not all the indexes are filled for every AutoContact. For example Turn have h1 and b1, and HTee have h1, h2 and v1.

Implements AutoContact.

  void updateGeometry () [virtual]
Compute the new position of the AutoContact based on the AutoSegment positions. The Session mechanism ensure that all AutoSegment are set into their final positions before calling this updator.

Implements AutoContact.

References AutoContact::base(), DebugSession::close(), Katabatic::CntInvalidated, AutoContact::getNet(), AutoContact::getX(), AutoContact::getY(), AutoContact::hasBadTopology(), Go::invalidate(), AutoContact::isInvalidatedCache(), DebugSession::open(), AutoContact::setX(), and AutoContact::setY().

  void updateTopology () [virtual]
Restore the topology (i.e. connexity) of the contact after any number of connected segments has changed layer (at least one, up to three).

For any configuration, the connexity can be restored by making only one dogleg.

We distinguish two kind of layer changes:

1.  The two horizontals (h1 and h2) are still on the same layer (either they both moved or the vertical only has moved, see figures 2 & 4). In that case, the dogleg is made on the vertical.

2.  The two horizontals no longer are on the same layer (figures 1 & 3). In that case, the dogleg is made on the horizontal which is at the greater distance (in a layer sense) from the vertical.

Update H-Tee Topology

Implements AutoContact.

References DebugSession::close(), Katabatic::CntBadTopology, RoutingGauge::getContactLayer(), AutoContact::getLayer(), RoutingGauge::getLayerDepth(), AutoContact::getNet(), Session::getRoutingGauge(), RoutingGauge::getRoutingLayer(), AutoContact::hasBadTopology(), AutoContact::isInvalidatedCache(), DebugSession::open(), AutoContact::setLayer(), and AutoContact::showTopologyError().

Author

Generated automatically by Doxygen for Katabatic - Routing Toolbox from the source code.