addphins.3alc man page

addphins — create a physical instance

Synopsis

#include "mph.h"
phins_list ∗addphins(ptfig, figname, insname, sym, x, y)
phfig_list ∗ptfig;
char ∗figname;
char ∗insname;
char sym;
long x, y;

Parameters

ptfig

Pointer to the figure in which the instance should be added

figname

Instance model name

insname

Instance name

sym

Geometrical operation performed on the instance

x, y

Coordinates of the lower left corner of the instance

Description

addphins creates a new instance whose lower left corner is at the given coordinates, and adds it to the list of instances pointed to by ptfig->PHINS. The new instance is  added in front of the list, and becomes itself the list head.
The parameters figname, insname, sym, x and y fill respectivly the FIGNAME, INSNAME, TRANSF, XINS and YINS fields of the phins structure.
The addphins function does not check in memory or on disk to see if the instantiated model exists, since no information on it are needed.
The coordinates are not transformation dependent. It means that the  transformation is performed before placing the instance at the given point. For details on the structure, see phins(3).

Return Value

addphins returns a pointer to the newly created instance.

Errors

"∗∗∗ mbk error ∗∗∗ addphins figure figname cannot be part of itself"

The instance has for model name of the figure on the which it is to be added. It's illegal and dangerous. This check is made at the actual hierarchy level only, not recursivly on the structure, so it still may happened.

"∗∗∗ mbk error ∗∗∗ illegal addphins transformation sym in : insname"

The geometrical operation is not in the legal range. See phins(3) for a complete list of values.

"∗∗∗ mbk error ∗∗∗ illegal addphins duplicate instance name : insname"

The instance name is an identifier, so it can't appear twice in the same figure.

Example

#include "mph.h"
phins_list ∗ins_dup(pfd, pfs) /∗ duplicate instances ∗/
phfig_list ∗pfd, ∗pfs;
{
phins_list ∗pi;
	for (pi = pfs->phins; pi != NULL; pi = pi->NEXT)
		addphins(pfd, pi->FIGNAME, pi->INSNAME, pi->TRANSF,
                         pi->XINS, pi->YINS);
	return pfd->PHINS;
}

See Also

mbk(1), phfig(3), phins(3), getphins(3), delphins(3).

Referenced By

delphins.3alc(3), getphins.3alc(3), phins.3alc(3).

October 1, 1997 ASIM/LIP6 MBK PHYSICAL FUNCTIONS