Since an intergraph link has its origin and
destination in different graphers, it may be difficult to determine
the coordinate system in which the bend points of an intergraph
link are defined.
The coordinate system of the link and its bend points is always the
coordinate system of the grapher to which the link has been added.
The only difference compared to regular links is the way an
intergraph link computes its end points: the connection points of
the link to its origin and destination. The link itself, in fact
the base class of the IlvLinkImage class, computes its connection
points by calling:
void getConnectionPoints(IlvPoint src, IlvPoint dst, IlvTransformer t)
This method determines whether the link connector ( IlvLinkConnector) is installed on the
destination or origin node, by calling:
boolean getLinkConnectorConnectionPoint(boolean origin, IlvPoint p, IlvTransformer t)
The
getConnectionPoints
method stores the result in the
src
and
dst
parameters. If the link is an intergraph link, this method will
compute the connection points in the coordinate system of the
origin and destination nodes.
In this method the
origin
parameter is
true
for computing the connection point at the origin of the link and
false
for the destination of the link, and the
t
parameter is the transformer used to draw the link.
This method returns
true
if a link connector is installed. If no link connector is
installed, a default connection point is computed. If a link
connector is installed, the link connector then computes the
connection point with the method:
IlvPoint getConnectionPoint(IlvLinkImage link, boolean origin,IlvTransformer t)
- When the link is a regular link, the
t
parameter is the transformer used to draw the link. This is the same as the transformer used to draw the origin and destination. - When the link is an intergraph link, then the
t
parameter is the transformer used to draw the origin or destination.
So when developing a new class of links or
link connectors, there is no special work to be done to take into
account the specific case of intergraph links.