118 lines
4.8 KiB
Groff
118 lines
4.8 KiB
Groff
.TH "AutoContactHTee" 3 "Mon Apr 27 2020" "Version 1.0" "Katabatic - Routing Toolbox" \" -*- nroff -*-
|
|
.ad l
|
|
.nh
|
|
.SH NAME
|
|
AutoContactHTee \- \fBAutoContact\fP H-Tee (two H, one V)
|
|
|
|
.SH SYNOPSIS
|
|
.br
|
|
.PP
|
|
.PP
|
|
Inherits \fBAutoContact\fP\&.
|
|
.SS "Public Member Functions"
|
|
|
|
.in +1c
|
|
.ti -1c
|
|
.RI "virtual \fBAutoSegment\fP * \fBgetOpposite\fP (const \fBAutoSegment\fP *) const"
|
|
.br
|
|
.ti -1c
|
|
.RI "virtual \fBAutoSegment\fP * \fBgetPerpandicular\fP (const \fBAutoSegment\fP *) const"
|
|
.br
|
|
.ti -1c
|
|
.RI "virtual \fBAutoSegment\fP * \fBgetSegment\fP (unsigned int) const"
|
|
.br
|
|
.ti -1c
|
|
.RI "virtual void \fBupdateGeometry\fP ()"
|
|
.br
|
|
.ti -1c
|
|
.RI "virtual void \fBupdateTopology\fP ()"
|
|
.br
|
|
.in -1c
|
|
.SS "Static Public Member Functions"
|
|
|
|
.in +1c
|
|
.ti -1c
|
|
.RI "static \fBAutoContactHTee\fP * \fBcreate\fP (\fBGCell\fP *, \fBNet\fP *, const \fBLayer\fP *)"
|
|
.br
|
|
.in -1c
|
|
.SS "Additional Inherited Members"
|
|
.SH "Detailed Description"
|
|
.PP
|
|
\fBAutoContact\fP H-Tee (two H, one V)
|
|
|
|
\fBAutoContact\fP to build an horizontal tee (two H, one V)\&.
|
|
.SH "Member Function Documentation"
|
|
.PP
|
|
.SS "\fBAutoContactHTee\fP * create (\fBGCell\fP * gcell, \fBNet\fP * net, const \fBLayer\fP * layer)\fC [static]\fP"
|
|
|
|
.PP
|
|
\fBParameters:\fP
|
|
.RS 4
|
|
\fIgcell\fP The \fBGCell\fP into which create the \fBAutoContact\fP\&.
|
|
.br
|
|
\fInet\fP The Net to which this \fBAutoContact\fP belongs\&.
|
|
.br
|
|
\fIlayer\fP The Layer of the \fBAutoContact\fP\&.
|
|
.RE
|
|
.PP
|
|
\fBReturns:\fP
|
|
.RS 4
|
|
The created \fBAutoContactHTee\fP\&.
|
|
.RE
|
|
.PP
|
|
Create a new \fBAutoContactHTee\fP\&.
|
|
.PP
|
|
References Katabatic::CntInCreationStage, and Contact::create()\&.
|
|
.PP
|
|
Referenced by GCellTopology::_do_xG(), GCellTopology::_do_xG_1M1_1M2(), and GCellTopology::_do_xG_xM1_xM3()\&.
|
|
.SS "\fBAutoSegment\fP * getOpposite (const \fBAutoSegment\fP * reference) const\fC [virtual]\fP"
|
|
\fBReturns:\fP The other \fBAutoSegment\fP the \fIsame\fP direction as \fCreference\fP, this is only meaningful on \fBAutoContactHTee\fP or \fBAutoContactVTee\fP\&. If there is no opposite, \fCNULL\fP is returned\&.
|
|
.PP
|
|
Implements \fBAutoContact\fP\&.
|
|
.SS "\fBAutoSegment\fP * getPerpandicular (const \fBAutoSegment\fP * reference) const\fC [virtual]\fP"
|
|
\fBReturns:\fP The \fBAutoSegment\fP in the \fIperpandicular\fP direction to \fCreference\fP, this is only meaningful on AutoContacTurn\&. It there is no unique perpandicular, \fCNULL\fP is returned\&.
|
|
.PP
|
|
Implements \fBAutoContact\fP\&.
|
|
.SS "\fBAutoSegment\fP * getSegment (unsigned int index) const\fC [virtual]\fP"
|
|
\fBReturns:\fP The nth anchored \fBAutoSegment\fP\&. The index is significant:
|
|
.IP "\(bu" 2
|
|
\fB0\fP : first horizontal (\fBh1\fP)\&.
|
|
.IP "\(bu" 2
|
|
\fB1\fP : second horizontal (\fBh2\fP)\&.
|
|
.IP "\(bu" 2
|
|
\fB2\fP : first vertical (\fBb1\fP)\&.
|
|
.IP "\(bu" 2
|
|
\fB3\fP : second vertical (\fBb2\fP)\&.
|
|
.PP
|
|
.PP
|
|
Not all the indexes are filled for every \fBAutoContact\fP\&. For example \fCTurn\fP have \fBh1\fP and \fBb1\fP, and \fCHTee\fP have \fBh1\fP, \fBh2\fP and \fBv1\fP\&.
|
|
.PP
|
|
Implements \fBAutoContact\fP\&.
|
|
.SS "void updateGeometry ()\fC [virtual]\fP"
|
|
Compute the new position of the \fBAutoContact\fP based on the \fBAutoSegment\fP positions\&. The \fBSession\fP mechanism ensure that all \fBAutoSegment\fP are set into their final positions before calling this updator\&.
|
|
.PP
|
|
Implements \fBAutoContact\fP\&.
|
|
.PP
|
|
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()\&.
|
|
.SS "void updateTopology ()\fC [virtual]\fP"
|
|
Restore the topology (i\&.e\&. connexity) of the contact after any number of connected segments has changed layer (at least one, up to three)\&.
|
|
.PP
|
|
For any configuration, the connexity can be restored by making only one dogleg\&.
|
|
.PP
|
|
We distinguish two kind of layer changes:
|
|
.IP "1." 4
|
|
The two horizontals (\fCh1\fP and \fCh2\fP) 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\&.
|
|
.IP "2." 4
|
|
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\&.
|
|
.PP
|
|
.PP
|
|
Update H-Tee Topology
|
|
.PP
|
|
Implements \fBAutoContact\fP\&.
|
|
.PP
|
|
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()\&.
|
|
|
|
.SH "Author"
|
|
.PP
|
|
Generated automatically by Doxygen for Katabatic - Routing Toolbox from the source code\&.
|