Provided by: alliance_5.0-20120515-6_amd64 bug

NAME

       addphseg - create a physical segment

SYNOPSYS

       #include "mph.h"
       phseg_list ∗addphseg(ptfig, layer, width, x1, y1, x2, y2, nodename)
       phfig_list ∗ptfig;
       char layer;
       long width;
       long x1, y1, x2, y2;
       char ∗nodename;

PARAMETERS

       ptfig               Pointer to the figure in which the segment should be added

       layer               Segment symbolic layer

       width               Segment symbolic width

       x1, y1, x2, y2      Segment endpoints coordinates

       nodename            Name of the segment

DESCRIPTION

       addphseg creates a new segment at the given coordinates, possibly called segname, and adds
       it to the list of segments pointed to by ptfig->PHSEG. The new segment is added  in  front
       of  the  list,  and  becomes  itself  the  list  head.  The  segment  name  is an optional
       information, and does  not  allow  the  segment  identification.  When  not  needed,  this
       parameter should be set to NULL.
       The parameters nodename, layer and width fill respectivly the NAME, LAYER and WIDTH fields
       of the phseg structure.
       x1, y1, x2, y2 are sorted to warranty that the fields X1 and Y1 contain  the  minimum  of,
       respectivly, x1, x2 and y1, y2, and the X2, Y2 fields the maximum.
       The  TYPE  field is computed by the addphseg function.  It will be either VER if x1 equals
       x2, or HOR if y1 equals y2.
       The width is a layer extension that takes place in perpendicular to the segment TYPE.
       For a list of valid layers, and details on the structure, see phseg(3).

RETURN VALUE

       addphseg returns a pointer to the newly created segment.

ERRORS

       "∗∗∗ mbk error ∗∗∗ illegal addphseg wrong layer code layer in x1, y1, x2, y2"
              The layer parameter is out of range, and does not represent a legal symbolic layer.
              See phseg(3) for a complete list of layers.
       "∗∗∗ mbk error ∗∗∗ illegal addphseg : x1, y1, x2, y2"
              The  segment  coordinates  are  such  that  the  segment  is  neither  vertical nor
              horizontal. So it's not a legal symbolic segment.

EXAMPLE

       #include "mph.h"
       phseg_list ∗du_seg(pfd, pfs)
       phfig_list ∗pfd, ∗pfs;
       {
       phseg_list ∗ps;
          /∗ names don't matter ∗/
          for (ps = pfs->PHSEG; ps != NULL; ps = ps->NEXT)
             addphseg(pfd, ps->LAYER, ps->WIDTH, ps->X1, ps->Y1,
                   ps->X2, ps->Y2, NULL);
       }

SEE ALSO

       mbk(1), phfig(3), phseg(3), delphseg(3).