addphseg.3alc man page

addphseg — create a physical segment

Synopsis

#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).

Referenced By

bigvia.3alc(3), delphseg.3alc(3), phseg.3alc(3).

October 1, 1997 ASIM/LIP6 MBK PHYSICAL FUNCTIONS