42 lines
1.7 KiB
C++
42 lines
1.7 KiB
C++
|
|
// -*- C++ -*-
|
|
|
|
namespace Katabatic {
|
|
|
|
/*! \class AutoContactHTee
|
|
*
|
|
* \brief AutoContact H-Tee (two H, one V)
|
|
*
|
|
* AutoContact to build an horizontal tee (two H, one V).
|
|
*/
|
|
|
|
//! \function AutoContactHTee* AutoContactHTee::create ( GCell* gcell, Net* net, const Layer* layer );
|
|
//! \param gcell The GCell into which create the AutoContact.
|
|
//! \param net The Net to which this AutoContact belongs.
|
|
//! \param layer The Layer of the AutoContact.
|
|
//! \return The created AutoContactHTee.
|
|
//!
|
|
//! Create a new AutoContactHTee.
|
|
|
|
//! \function void AutoContactHTee::updateTopology ();
|
|
//! 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:
|
|
//! -# The two horizontals (\c h1 and \c 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.
|
|
//! -# 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.
|
|
//!
|
|
//! \image html updateTopologyHTee.png "Update H-Tee Topology"
|
|
|
|
}
|
|
|
|
|