\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\&.
\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\&.
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\&.