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 thet
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.