In our logic, Actually Nodes location spot not always comes from go.spot.Center. For each node have different port spot location(Not Center).
For example:
Node Template1 to make port:
PortHelper.makePort("L", new go.Spot(0, 0.25, 0, 0), true, true),
PortHelper.makePort("R", new go.Spot(1, 0.25, 0, 0), true, true),
PortHelper.makePort("B", new go.Spot(0.5, 1, 0, 0), true, true)
NodeTemplate2 to make port:
PortHelper.makePort("T", new go.Spot(0.5, 0, 0, 0), true, true),
PortHelper.makePort("B", new go.Spot(0.5, 1, 0, 0), true, true),
PortHelper.makePort("L1", new go.Spot(0, 0.1667, 0, 0), true, true),
PortHelper.makePort("L2", new go.Spot(0, 0.5 , 0, 0), true, true),
PortHelper.makePort("L3", new go.Spot(0, 0.8333, 0, 0), true, true),
PortHelper.makePort("R1", new go.Spot(1, 0.1667, 0, 0), true, true),
PortHelper.makePort("R2", new go.Spot(1, 0.5, 0, 0), true, true),
PortHelper.makePort("R3", new go.Spot(1, 0.8333, 0, 0), true, true),
PortHelper
export class PortHelper{
static makePort(name:any, spot:any, output:any, input:any) {
var GO = go.GraphObject.make;
return GO(go.Shape, "Square",
{
fill: null,
stroke: null,
strokeWidth: 1.5,
desiredSize: new go.Size(7, 7),
alignment: spot,
portId: name,
fromSpot: spot, toSpot: spot,
fromLinkable: output, toLinkable: input,
fromMaxLinks: 1, toMaxLinks: 1,
cursor: "pointer"
});
}
}
Without using LocationSpot to Spot.Center, Is any other way to place the two object’s in same axis(like FromPort and ToPort in same direction)