coriolis/katabatic/doc/AutoContactTerminal.dox

67 lines
3.2 KiB
C++

// -*- C++ -*-
namespace Katabatic {
/*! \class AutoContactTerminal
*
* \brief AutoContact Terminal (S/T is a Terminal)
*
* AutoContact that are directly attached by either source or target
* or both to a terminal.
*/
//! \function AutoContactTerminal* AutoContactTerminal::create ( GCell* gcell, Component* rp, const Layer* layer, const DbU::Unit x, const DbU::Unit y, const DbU::Unit width, const DbU::Unit height );
//! \param gcell The GCell into which create the AutoContact.
//! \param rp The Component on which to anchor the AutoContact.
//! \param layer The Layer of the AutoContact.
//! \param x The absolute X position.
//! \param y The absolute Y position.
//! \param width The width of the AutoContact.
//! \param height The height of the AutoContact.
//! \return The created AutoContact.
//!
//! Create a new AutoContactTerminal anchored on \c rp. <code>(x,y)</code> gives
//! the \e absolute position.
//!
//! The anchor component \c rp is most often a Hurricane::RoutingPad (occurrencing
//! a Hurricane::Segment) or directly a Hurricane::Segment, in case of RoutingPad
//! layer promotion.
//! \function AutoContactTerminal* AutoContactTerminal::create ( GCell* gcell, Component* rp, const Layer* layer, Point point, const DbU::Unit width, const DbU::Unit height );
//! \param gcell The GCell into which create the AutoContact.
//! \param rp The RoutingPad on which to anchor the AutoContact.
//! \param layer The Layer of the AutoContact.
//! \param point The absolute position.
//! \param width The width of the AutoContact.
//! \param height The height of the AutoContact.
//! \return The created AutoContact.
//!
//! Create a new AutoContactTerminal anchored on \c rp. \c point gives
//! the \e absolute position.
//! \function void AutoContactTerminal::updateTopology ();
//! Restore the topology (i.e. connexity) of the contact after the incident
//! segment has changed layer.
//!
//! Based on the layer depth delta between the terminal and the segment
//! three case can occurs:
//! - The delta is \b zero, then just sets the layer of the contact
//! to the common metal layer.
//! - The delta is \b one, then sets the contact layer to VIA connecting
//! the two layers.
//! - The delta is \b two, then create a dogleg to restore the connexity.
//! Depending on whether the terminal was attached to the source or
//! target, sets the layer of the segments.
//! - A delta of more than \b two is an error, and must never occurs.
//!
//! As, by default, the perpandicular is set in the layer above the
//! parallel, it may be necessary to adjust his layer as well (to the
//! one below).
//!
//! \image html updateTopologyTerminal.png "Update Terminal Topology"
}