coriolis/hurricane/doc/hurricane/Horizontal.dox

106 lines
4.0 KiB
C++

// -*- C++ -*-
namespace Hurricane {
/*! \class Horizontal
* \brief Horizontal description (\b API)
*
* \section secHorizontalIntro Introduction
*
* A horizontal has, in addition to inherited attributes, a
* specific one : its ordinate. The horizontal extend of the
* segment is defined by the "source" and "target" components on
* which it is anchored.
*
* This ordinate allows, among other things, to anchor a
* horizontal segment extremity on a component (i.e. a contact)
* with a small vertical offset without the need to materialize
* it, because it is implicitely equal to the difference between
* the horizontal ordinate and the component ordinate. It allows
* also, and it not the least interesting feature, to anchor an
* extremity of a horizontal directly on a vertical segment (and
* conversely) without the need to create an intermediate
* contact (unless they are on different layers!). The ordinate
* of the implicit contact point is the one of the horizontal
* and the abscissa the one of the vertical).
*/
/*! \typedef Horizontal::Inherit
* Useful for calling upon methods of the base class without
* knowing it.
*/
/*! \function Horizontal* Horizontal::create(Component* source, Component* target, const Layer* layer,const DbU::Unit& y, const DbU::Unit& width = 0,const DbU::Unit& dxSource = 0, const DbU::Unit& dxTarget = 0);
* No description.
*/
/*! \function Horizontal* Horizontal::create(Net* net, const Layer* layer, const DbU::Unit& y, const DbU::Unit& width = 0,const DbU::Unit& dxSource = 0, const DbU::Unit& dxTarget = 0);
* creates and returns an absolute horizontal segment with layer
* \c \<layer\>, located at ordinate \c \<y\> and of width
* \c \<width\>. The differents extremities abscissas are given
* by \c \<dxSource\> and \c \<dxTarget\>.
*
* \caution Throws an exception if any of the net or layer pointers is
* null.
*/
/*! \function const DbU::Unit& Horizontal::getDxSource() const;
* \Return the relative source abscissa of the segment (may be absolute
* if the source extremity isn't anchored).
*
* \remark If you want to get the absolute one use the member function
* getSourceY() defined at the Segment level.
*/
/*! \function const DbU::Unit& Horizontal::getDxTarget() const;
* \Return the relative target abscissa of the segment (may be absolute
* if the target extremity isn't anchored).
*
* \remark If you want to get the absolute one use the member function
* getTargetY() defined at the Segment level.
*/
/*! \function void Horizontal::setY(const DbU::Unit& x);
* sets the ordinate of the segment.
*/
/*! \function void Horizontal::translate(const DbU::Unit& dy);
* translate verticaly the horizontal segment of the quantity
* \c \<dy\>.
*/
//! \name Horizontal Collection
// \{
/*! \typedef Horizontals
* Generic collection representing a set of horizontal segments.
*/
/*! \typedef HorizontalLocator
* Generic locator for traversing a collection of horizontal
* segments.
*/
/*! \typedef HorizontalFilter
* Generic filter allowing to select a subset of horizontals
* matching some criteria.
*/
/*! \def for_each_horizontal(horizontal, horizontals)
* Macro for visiting all the horizontals of a collection of
* horizontal segments.
*/
// \}
}