\fBtrue\fP if the \fIglobal\fP segment can be moved on the left \fBGCell\fP (for a vertical) or down (for an horizontal)\&. The move is accepted only if it do not change the amount of global wiring\&. Thus the following conditions:
.IP"\(bu"2
The segment mustn't be on the leftmost \fBGCell\fP (obvious\&.\&.\&.)\&.
.IP"\(bu"2
The segment must be global\&.
.IP"\(bu"2
The source and target contacts must be AutoContactTurn(s)\&.
.IP"\(bu"2
At least one of the perpandicular must be global \fBand\fP connected through the \fItarget\fP\&. That is, it's a global which extends toward left\&.
.IP"\(bu"2
The \fBGCell\fP of maximum density on the left must remains below the current \fBGCell\fP of maximum density, with a margin of \fCreserve\fP (expressed in total saturation percentage)\&.
\fBtrue\fP if the \fIglobal\fP segment can be moved on the right \fBGCell\fP (for a vertical) or up (for an horizontal)\&. The move is accepted only if it do not change the amount of global wiring\&. Thus the following conditions:
.IP"\(bu"2
The segment mustn't be on the leftmost \fBGCell\fP (obvious\&.\&.\&.)\&.
.IP"\(bu"2
The segment must be global\&.
.IP"\(bu"2
The source and target contacts must be AutoContactTurn(s)\&.
.IP"\(bu"2
At least one of the perpandicular must be global \fBand\fP connected through the \fIsource\fP\&. That is, it's a global which extends toward right\&.
.IP"\(bu"2
The \fBGCell\fP of maximum density on the left must remains below the current \fBGCell\fP of maximum density, with a margin of \fCreserve\fP (expressed in total saturation percentage)\&.
\fBReturns:\fP in \fCmin\fP & \fCmax\fP the allowed range for the segment axis\&.
.PP
Implements \fBAutoSegment\fP\&.
.PP
References AutoSegment::getAutoSource(), AutoSegment::getAutoTarget(), AutoContact::getCBXMax(), AutoContact::getCBXMin(), AutoSegment::getUserConstraints(), and DbU::getValueString()\&.
.SS"\fBInterval\fP getSourceConstraints (unsigned int flags = \fC0\fP) const\fC [virtual]\fP"
.PP
\fBReturns:\fP
.RS4
The Interval into witch the source \fBAutoContact\fP can vary\&. By default all deduced constraints and user constraints are took into account\&. If \fCflags\fP contains \fCKbNativeConstraints\fP the constraint returned is only the enclosing \fBGCell\fP\&.
.RE
.PP
.PP
Implements \fBAutoSegment\fP\&.
.PP
References AutoSegment::getAutoSource(), Box::getXMax(), Box::getXMin(), and Katabatic::KbNativeConstraints\&.
.SS"\fBInterval\fP getTargetConstraints (unsigned int flags = \fC0\fP) const\fC [virtual]\fP"
.PP
\fBReturns:\fP
.RS4
The Interval into witch the target \fBAutoContact\fP can vary\&. By default all deduced constraints and user constraints are took into account\&. If \fCflags\fP contains \fCKbNativeConstraints\fP the constraint returned is only the enclosing \fBGCell\fP\&.
.RE
.PP
.PP
Implements \fBAutoSegment\fP\&.
.PP
References AutoSegment::getAutoTarget(), Box::getXMax(), Box::getXMin(), and Katabatic::KbNativeConstraints\&.
.SS"unsigned int getDirection () const\fC [virtual]\fP"
\fBReturns:\fP\fBKatabatic::KbHorizontal\fP or \fBKatabatic::KbVertical\fP according to the decorated segment\&.
Set the \fIuniform\fP\fCdU\fP from target anchor (dX for Horizontal, dY for Vertical)\&.
.PP
Implements \fBAutoSegment\fP\&.
.SS"void updateOrient ()\fC [virtual]\fP"
Ensure that source is lower than target\&. Swap them if needed\&. Swap never occurs on global segment because their source and target anchors are from different \fBGCell\fP, which are already ordered\&.
Update the segment begenning and ending positions\&. The positions takes into account the extension caps and reflect the real space used by the segment under it's long axis\&.
.PP
Implements \fBAutoSegment\fP\&.
.PP
References Session::getExtensionCap(), AutoSegment::getLayer(), Segment::getSourceY(), and Segment::getTargetY()\&.
.SS"bool checkPositions () const\fC [virtual]\fP"
\fBReturns:\fP\fBtrue\fP if the relative positions of source & target are coherent\&. (source <= target)\&.
.PP
Implements \fBAutoSegment\fP\&.
.PP
References Session::getExtensionCap(), AutoSegment::getLayer(), Segment::getSourceY(), Segment::getTargetY(), and DbU::getValueString()\&.
\fBReturns:\fP\fBtrue\fP if the constraint intervel is coherent (non-empty or punctual in the worst case)\&.
.PP
Implements \fBAutoSegment\fP\&.
.PP
References AutoSegment::getAutoSource(), AutoSegment::getAutoTarget(), and Interval::intersect()\&.
.SS"unsigned int _makeDogleg (\fBGCell\fP * doglegGCell, unsigned int flags)\fC [virtual]\fP"
\fBThis method is the workhorse for the various dogleg and topology restauration methods\&.\fP It is the atomic method that actually make the dogleg on \fBthis\fP segment\&.
.PP
\fBReturns:\fP\fBKatabatic::KbUseAboveLayer\fP if the dogleg is using the \fIabove\fP layer (\fBKatabatic::KbUseBelowLayer\fP for the below layer)\&.
.PP
Break the current segment in two (a\&.k\&.a\&. making a dogleg)\&.
.IP"\(bu"2
The segment is broken inside \fCdoglegGCell\fP\&.
.IP"\(bu"2
Two new segments are createds, one perpandicular and one parallel\&.
.IP"\(bu"2
The original segment is always kept attached to the \fIsource\fP\&. (the new parallel fragment is attached to the \fItarget\fP)\&.
.IP"\(bu"2
The perpandicular segment is in the layer \fIabove\fP by default\&. If we are already on the topmost routing layer, the \fIbelow\fP layer is used\&.
.IP"\(bu"2
If the segment pass through the breaking \fBGCell\fP, it's axis is set into the center\&. If the segment is local, the axis is the middle of the segment\&.
.IP"\(bu"2
The Local/Global kind of the original segment is updated\&. The local/global status is computed by the constructor of the \fBAutoSegment\fP for the perpandicular and the new parallel\&.
.IP"\(bu"2
The terminal state is updated\&. If the segment is a strong terminal the part that is no longer directly connected to the terminal is demoted to \fBKatabatic::SegWeakTerminal1\fP\&.
.IP"\(bu"2
The perpandicular is obviously a canonical\&. If the broken segment is canonical, the original \fBis\fP left canonical and only the new parallel is re-canonized\&. Otherwise, we re-canonise both sets of aligned segments (the one on the source and the one on the target)\&.
.IP"\(bu"2
The three segments are added to the session dogleg stack\&.
.PP
.PP
After this method call the net topology is guarantee to be valid\&.
Perform operations that must be done before the actual destructor is called\&. Merely whidrawn the \fBAutoSegment\fP from the lookup/Session mechanism\&.
.PP
Reimplemented from \fBAutoSegment\fP\&.
.PP
References AutoSegment::_preDestroy(), AutoSegment::getAutoSource(), AutoSegment::getAutoTarget(), AutoContact::getGCell(), AutoSegment::getId(), GCell::getUp(), GCell::getY(), and GCell::removeVSegment()\&.
.SH"Author"
.PP
Generated automatically by Doxygen for Katabatic - Routing Toolbox from the source code\&.