|
Search this API | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object y.layout.AbstractLayoutStage y.layout.router.OrthogonalEdgeRouter
public class OrthogonalEdgeRouter
This edge routing algorithm generates orthogonal routes for the edges of the graph.
Note that class EdgeRouter
offers a newer, improved implementation that better
supports drawing constraints like port constraints, group nodes and edge groups.
Edges are routed in an orthogonal fashion, i.e. edge paths consist only of vertical and horizontal segments.
During the routing process, the positions of the nodes are considered to be fixed and the router will not modify their locations or their sizes in any way.
The edge routing algorithm can be applied wherever it is required to route the edges as orthogonal segments without crossing any nodes, while keeping the positions of the nodes in the diagram fixed. Some potential applications include electric circuit design, floor planning, UML class diagrams/inheritance diagrams and navigation maps.
Sample output of the orthogonal edge routing algorithm with default settings
Sample output of the orthogonal edge routing algorithm with edge grouping
Orthogonal edge router divides the area of the graph into several sub-areas (determined by the bounds of graph objects existing in the diagram) and tries to find the best routes for the edge segments between the source and the target nodes of each edge.
Two different strategies for path finding are available, namely center driven
and space driven weighting. They can be set using setCenterToSpaceRatio(double)
. Space driven strategy
implies that edge paths that are evenly distributed over the available space should be preferred. Center driven
strategy implies that edge paths that are closer to the center of the edge (i.e. the point of the edge that is
equidistant from both its endpoints) should be preferred.
OrthogonalEdgeRouter
supports edge routing such that the generated paths obey so-called monotonic path
restrictions. This means that (ideally) each vertical and/or each horizontal segment of an edge path is directed
from the source node towards the target node. Specifying a monotonic path restriction can be done using
setMonotonicPathRestriction(byte)
.
The routing algorithm supports two approaches to connect edges on a specific side or even on an exact location to
a node. PortConstraint
s define a single constraint for the ports of an edge. To realize more
complex port restrictions, several PortCandidate
s or PortCandidateSet
s can be
assigned to edges or nodes.
If an edge with registered PortCandidate
s connects to nodes with PortCandidateSet
s,
the edge router will try to match both collections in order to find an appropriate port. In case there is no
matching port candidate, a PortCandidate
specified for the edge is preferred.
Since their simultaneous existence at the same node may be ambiguous, it is not recommended to use a combination of
PortConstraint
s and PortCandidate
s in the same diagram.
Edges can be grouped so that they share common segments at the beginning or end of their routes. Although a graph
may contain source and target grouped edges, one edge can only be part of a source or a target group. Edge groups
are specified using DataProvider
s that provide the same ID object for all edges in the same group. Those
DataProvider
s are registered with the graph with key PortConstraintKeys.SOURCE_GROUPID_KEY
for source
groups or key PortConstraintKeys.TARGET_GROUPID_KEY
for target groups.
Edge groups are only considered if the edge router uses stage EdgeGroupRouterStage
.
The edge routing algorithm can be configured such that the number of crossings generated in a diagram is reduced.
This can be achieved using methods setLocalCrossingMinimizationEnabled(boolean)
,
setCrossingCost(double)
and setReroutingEnabled(boolean)
.
Several LayoutStage
s can be used to enhance performance and/or functionality of this
class, e.g. EdgeGroupRouterStage
, GroupNodeRouterStage
, ReducedSphereOfActionStage
or
PatchRouterStage
.
GroupNodeRouterStage
.Field Summary | |
---|---|
static byte |
MONOTONIC_BOTH
A constant specifying monotonic edge path restrictions for the horizontal and vertical direction. |
static byte |
MONOTONIC_HORIZONTAL
A constant specifying monotonic edge path restrictions for the horizontal direction. |
static byte |
MONOTONIC_NONE
A constant specifying that there are no monotonic edge path restrictions. |
static byte |
MONOTONIC_VERTICAL
A constant specifying monotonic edge path restrictions for the vertical direction. |
static byte |
ROUTE_ALL_EDGES
A scope specifier which defines that all edges of the input graph will be routed. |
static byte |
ROUTE_EDGES_AT_SELECTED_NODES
A scope specifier which defines that only edges incident to selected nodes will be routed. |
static byte |
ROUTE_SELECTED_EDGES
A scope specifier which defines that only the selected edges of the input graph will be routed. |
static byte |
STYLE_ADHOC
A routing style that draws the edge segments ad hoc, i.e., rather crude. |
static byte |
STYLE_BALANCED
A routing style that draws the edge segments using well-balanced routes. |
static byte |
STYLE_PREFERMIDDLE
A routing style that draws the edge segments such that their distance from already known obstacles such as nodes or other edge segments is as great as possible. |
static byte |
STYLE_SHORTPATH
A routing style that prefers the shortest routes for drawing the edge segments. |
Fields inherited from interface y.layout.Layouter |
---|
EDGE_ID_DPKEY, NODE_ID_DPKEY, NODE_TYPE_DPKEY, SELECTED_EDGES, SELECTED_NODES |
Constructor Summary | |
---|---|
OrthogonalEdgeRouter()
Creates a new OrthogonalEdgeRouter instance with default settings. |
|
OrthogonalEdgeRouter(Layouter core)
Creates a new OrthogonalEdgeRouter instance with a given core layouter and default settings. |
Method Summary | |
---|---|
boolean |
canLayout(LayoutGraph graph)
Checks whether or not the given graph can be handled by this edge routing algorithm. |
protected void |
checkGroupNodeSize(GraphLayout layout,
java.lang.Object node)
Checks whether or not the width/height of a given group node is zero or negative. |
protected void |
checkNodeSize(GraphLayout layout,
java.lang.Object node)
Checks whether or not the width/height of a given node is zero or negative. |
void |
doLayout(LayoutGraph graph)
Performs the orthogonal routing of the edges of the input graph. |
boolean |
getBadOrthogonal()
Returns whether or not edges that cannot be routed should be drawn in an orthogonal fashion. |
double |
getCenterToSpaceRatio()
Returns the ratio between two complementary weighting strategies during path searching. |
boolean |
getCoupledDistances()
Returns whether or not the minimum distances are coupled. |
double |
getCrossingCost()
Returns the cost of each edge crossing. |
int |
getCustomBorderCapacity()
Returns the number of parallel edge paths that may be accommodated on the routing border around the graph's bounding box. |
boolean |
getCustomBorderCapacityEnabled()
Returns whether or not to use a custom value for the capacity of parallel edge paths accommodated on the routing border. |
YPoint |
getGridOrigin()
Returns the point on which the grid starts. |
int |
getGridSpacing()
Returns the equidistant spacing between the horizontal and vertical grid lines. |
int |
getMinimumDistance()
Specifies the minimum distance between any two edge segments. |
int |
getMinimumDistanceToNode()
Returns the minimum distance between edge segments and nodes. |
byte |
getMonotonicPathRestriction()
Returns the monotonic path restrictions that should be applied. |
byte |
getRoutingStyle()
Returns the preferred edge routing style. |
java.lang.Object |
getSelectedEdgesDpKey()
Returns the DataProvider key to look up the selection state of the edges. |
java.lang.Object |
getSelectedNodesDpKey()
Returns the DataProvider key to look up the selection state of the nodes. |
byte |
getSphereOfAction()
Returns a (sub-)set of edges that shall be routed by the edge router. |
boolean |
isConsiderNodeLabelsEnabled()
Specifies whether or not the orthogonal edge router considers the labels of the nodes as obstacles when calculating the edge routes to avoid overlaps. |
boolean |
isEnforceMonotonicPathRestrictions()
Returns whether or not monotonic path restrictions should be enforced. |
boolean |
isGridRoutingEnabled()
Returns whether or not the edge segments are routed on grid lines. |
boolean |
isInnerPortsEnabled()
Returns whether or not edge ports that do not have a strong port constraint should lie in the interior of the
bounding box or on the border of a node. |
boolean |
isLocalCrossingMinimizationEnabled()
Returns whether or not a local crossing minimization strategy should be applied. |
boolean |
isReroutingEnabled()
Returns whether or not the orthogonal edge router performs an additional step to reroute the edges such that the number of edge crossings is reduced. |
void |
setBadOrthogonal(boolean value)
Specifies whether or not edges that cannot be routed should be drawn in an orthogonal fashion. |
void |
setCenterToSpaceRatio(double csr)
Specifies the ratio between two complementary weighting strategies during path searching. |
void |
setConsiderNodeLabelsEnabled(boolean enabled)
Specifies whether or not the orthogonal edge router considers the labels of the nodes as obstacles when calculating the edge routes to avoid overlaps. |
void |
setCoupledDistances(boolean coupled)
Specifies whether or not the minimum distances should be coupled. |
void |
setCrossingCost(double cost)
Specifies the cost of each edge crossing. |
void |
setCustomBorderCapacity(int value)
Specifies the number of parallel edge paths that may be accommodated on the routing border around the graph's bounding box. |
void |
setCustomBorderCapacityEnabled(boolean value)
Specifies whether or not to use a custom value for the capacity of parallel edge paths accommodated on the routing border. |
void |
setEnforceMonotonicPathRestrictions(boolean enforceMonotonicPathRestrictions)
Specifies whether or not monotonic path restrictions should be enforced. |
void |
setGridOrigin(int x,
int y)
Specifies the coordinates of the point on which the grid starts. |
void |
setGridRoutingEnabled(boolean enabled)
Specifies whether or not the edge segments are routed on grid lines. |
void |
setGridSpacing(int spacing)
Specifies the equidistant spacing between the horizontal and vertical grid lines. |
void |
setInnerPortsEnabled(boolean value)
Specifies whether or not edge ports that do not have a strong port constraint should lie in the interior of the
bounding box or on the border of a node. |
void |
setLocalCrossingMinimizationEnabled(boolean enabled)
Specifies whether or not a local crossing minimization strategy should be applied. |
void |
setMinimumDistance(int dist)
Specifies the minimum distance between any two edge segments. |
void |
setMinimumDistanceToNode(int dist)
Specifies the minimum distance between edge segments and nodes. |
void |
setMonotonicPathRestriction(byte monotonicPathRestriction)
Specifies the monotonic path restrictions that should be applied. |
void |
setReroutingEnabled(boolean enabled)
Specifies whether or not the orthogonal edge router performs an additional step to reroute the edges such that the number of edge crossings is reduced. |
void |
setRoutingStyle(byte style)
Specifies the preferred edge routing style. |
void |
setSelectedEdgesDpKey(java.lang.Object key)
Specifies the DataProvider key to look up the selection state of the edges. |
void |
setSelectedNodesDpKey(java.lang.Object key)
Specifies the DataProvider key to look up the selection state of the nodes. |
void |
setSphereOfAction(byte scope)
Specifies a (sub-)set of edges that shall be routed by the orthogonal edge router. |
Methods inherited from class y.layout.AbstractLayoutStage |
---|
canLayoutCore, doLayoutCore, getCoreLayouter, setCoreLayouter |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final byte MONOTONIC_NONE
public static final byte MONOTONIC_VERTICAL
This implies that each vertical edge segment is directed from the source towards the target node. Furthermore, each edge path starts and ends with a vertical segment.
public static final byte MONOTONIC_HORIZONTAL
This implies that each horizontal edge segment is directed from the source towards the target node. Furthermore, each edge path starts and ends with a horizontal segment.
public static final byte MONOTONIC_BOTH
This implies that each horizontal and vertical edge segment is directed from the source towards the target node.
public static final byte STYLE_ADHOC
public static final byte STYLE_SHORTPATH
public static final byte STYLE_PREFERMIDDLE
In the case where the edge segments have to be routed in between two obstacles, then the route that lies on the the line that is equidistant from the two obstacles will be preferred.
public static final byte STYLE_BALANCED
The two end segments of an edge as well as the segments between bends of different directions are drawn similar
to STYLE_PREFERMIDDLE
. Segments between bends of the same direction (i.e. u-shape turns) are drawn using
the shortest routes.
public static final byte ROUTE_ALL_EDGES
public static final byte ROUTE_SELECTED_EDGES
The selection state of an edge is determined by a boolean value returned
by a DataProvider
registered with key getSelectedEdgesDpKey()
.
All other non-selected edges will be considered to have fixed routes.
public static final byte ROUTE_EDGES_AT_SELECTED_NODES
The selection state of a node is determined by a boolean value returned
by a DataProvider
registered with key getSelectedNodesDpKey()
.
All other edges that are incident to non-selected nodes will be considered to have fixed routes.
Constructor Detail |
---|
public OrthogonalEdgeRouter()
OrthogonalEdgeRouter
instance with default settings.
public OrthogonalEdgeRouter(Layouter core)
OrthogonalEdgeRouter
instance with a given core layouter and default settings.
core
- the given core layouterMethod Detail |
---|
public java.lang.Object getSelectedNodesDpKey()
DataProvider
key to look up the selection state of the nodes.
If a DataProvider
is registered with this key, only the edges that are incident to selected nodes will
be routed, while all other edges will be considered to have fixed routes.
DataProvider
key for node selectionsetSelectedNodesDpKey(Object)
public void setSelectedNodesDpKey(java.lang.Object key)
DataProvider
key to look up the selection state of the nodes.
If a DataProvider
is registered with this key, only the edges that are incident to selected nodes will
be routed, while all other edges will be considered to have fixed routes.
Layouter.SELECTED_NODES
key
- the DataProvider
key for node selection
java.lang.IllegalArgumentException
- if the specified DataProvider
key is null
getSelectedNodesDpKey()
public java.lang.Object getSelectedEdgesDpKey()
DataProvider
key to look up the selection state of the edges.
If a DataProvider
is registered with this key, only the selected edges will be routed,
while all other edges will be considered to have fixed routes.
DataProvider
key for edge selectionsetSelectedEdgesDpKey(Object)
public void setSelectedEdgesDpKey(java.lang.Object key)
DataProvider
key to look up the selection state of the edges.
If a DataProvider
is registered with this key, only the selected edges will be routed,
while all other edges will be considered to have fixed routes.
Layouter.SELECTED_EDGES
key
- the DataProvider
key for edge selection
java.lang.IllegalArgumentException
- if the specified DataProvider
key is null
getSelectedEdgesDpKey()
public void setConsiderNodeLabelsEnabled(boolean enabled)
public boolean isConsiderNodeLabelsEnabled()
true
if the orthogonal edge router takes the node labels into consideration,
false
otherwisesetConsiderNodeLabelsEnabled(boolean)
public byte getMonotonicPathRestriction()
Monotonic path restrictions imply that (ideally) the vertical and/or horizontal segments of an edge path are directed from the source node towards the target node without ever changing their direction back towards the source node.
setMonotonicPathRestriction(byte)
public void setMonotonicPathRestriction(byte monotonicPathRestriction)
Monotonic path restrictions imply that (ideally) the vertical and/or horizontal segments of an edge path are directed from the source node towards the target node without ever changing their direction back towards the source node.
MONOTONIC_NONE
. No path restrictions are used.monotonicPathRestriction
- the given monotonic path restriction
java.lang.IllegalArgumentException
- if the given argument is an unknown monotonic path restrictionpublic boolean isEnforceMonotonicPathRestrictions()
setMonotonicPathRestriction(byte)
will be enforced
such that only monotonic edge paths occur in the
diagram. However, it is possible that additional overlaps between edges and nodes will be introduced.true
if monotonic path restrictions are enforced, false
otherwisesetEnforceMonotonicPathRestrictions(boolean)
public void setEnforceMonotonicPathRestrictions(boolean enforceMonotonicPathRestrictions)
setMonotonicPathRestriction(byte)
will be enforced
such that only monotonic edge paths occur in the
diagram. However, it is possible that additional overlaps between edges and nodes will be introduced.enforceMonotonicPathRestrictions
- true
if monotonic path restrictions should be enforced,
false
otherwiseMonotonic vertical path restriction is not enforced and cannot be obeyed due to the obstacle node | Monotonic vertical path restriction is enforced leading the edge to cross the obstacle node |
public boolean canLayout(LayoutGraph graph)
true
unless the user specifies a
core layout algorithm
that cannot handle this graph
or if the width/height of a node is zero.
graph
- the input graph
true
if the input graph can be handled by this edge routing algorithm,
false
otherwiseLayouter.doLayout(LayoutGraph)
public void doLayout(LayoutGraph graph)
This method also prepares the graph for the edge routing process.
graph
- the input graphLayouter.canLayout(LayoutGraph)
protected void checkNodeSize(GraphLayout layout, java.lang.Object node) throws java.lang.IllegalArgumentException
This method is called by doLayout(LayoutGraph)
for each node of the input graph.
It may be overridden in order to obtain a custom implementation of node-size check.
layout
- a given GraphLayout
instancenode
- a given node object
java.lang.IllegalArgumentException
- if the width/height of the node object is zero or negativecheckGroupNodeSize(GraphLayout,Object)
protected void checkGroupNodeSize(GraphLayout layout, java.lang.Object node) throws java.lang.IllegalArgumentException
This method is called by doLayout(LayoutGraph)
for each group node of the input graph.
It may be overridden in order to obtain a custom implementation of group-node-size check.
layout
- a given GraphLayout
instancenode
- a given group node object
java.lang.IllegalArgumentException
- if the width/height of the group node object is zero or negativecheckNodeSize(GraphLayout,Object)
public void setCrossingCost(double cost)
A cost of value n
means that it is more profitable for a path to change its direction n
times rather than crossing the path of an edge.
This option is performed globally, i.e. to an entire edge path, in contrast to
setLocalCrossingMinimizationEnabled(boolean enabled)
.
The cost has to be non-negative.
1.0
and 3.0
.cost
- a non-negative cost value
java.lang.IllegalArgumentException
- if the given cost is negativeCrossing cost 1.0 | Crossing cost 3.0 |
public double getCrossingCost()
A cost of value n
means that it is more profitable for a path to change its direction n
times rather than crossing the path of an edge.
This option is performed globally, i.e. to an entire edge path, in contrast to
setLocalCrossingMinimizationEnabled(boolean enabled)
.
The cost has to be non-negative.
1.0
and 3.0
.setCrossingCost(double)
public void setReroutingEnabled(boolean enabled)
0.0
is assigned to the
global crossing cost
.enabled
- true
if the rerouting step should be performed, false
otherwiseCrossing cost 3.0 and rerouting crossing edges disabled | Crossing cost 3.0 and rerouting crossing edges enabled |
public boolean isReroutingEnabled()
0.0
is assigned to the
global crossing cost
.true
if the rerouting step is performed, false
otherwisesetReroutingEnabled(boolean)
public void setSphereOfAction(byte scope)
ROUTE_ALL_EDGES
scope
- one of the predefined scope values
java.lang.IllegalArgumentException
- if the given argument is none of the above constantsgetSelectedEdgesDpKey()
,
getSelectedNodesDpKey()
public byte getSphereOfAction()
setSphereOfAction(byte)
,
getSelectedEdgesDpKey()
public void setGridRoutingEnabled(boolean enabled)
If this option is disabled, the specified grid spacing/origin is ignored.
public boolean isGridRoutingEnabled()
If this option is disabled, the specified grid spacing/origin is ignored.
true
if edge segments are routed on a grid, false
otherwisesetGridRoutingEnabled(boolean)
,
setGridOrigin(int, int)
,
setGridSpacing(int)
public void setGridOrigin(int x, int y)
grid routing
is enabled.(0,. 0)
x
- the x-coordinate of the pointy
- the y-coordinate of the pointsetGridRoutingEnabled(boolean)
,
setGridSpacing(int)
public YPoint getGridOrigin()
grid routing
is enabled.setGridOrigin(int, int)
,
setGridRoutingEnabled(boolean)
,
setGridSpacing(int)
public void setGridSpacing(int spacing)
Positive values greater than 2
are allowed. Positive values less than 2
are ignored,
while negative values are mapped to their absolute value.
public int getGridSpacing()
Positive values greater than 2
are allowed. Positive values less than 2
are ignored,
while negative values are mapped to their absolute value.
grid routing
is enabled.setGridSpacing(int)
,
setGridRoutingEnabled(boolean)
public void setMinimumDistance(int dist)
Positive values greater than 4
are allowed. Positive values less than 4
are ignored,
while negative values are mapped to their absolute values.
public int getMinimumDistance()
Positive values greater than 4
are allowed. Positive values less than 4
are ignored,
while negative values are mapped to their absolute values.
are coupled
(as holds by default),
half of this value is automatically considered as the minimum distance between edge segments and nodes.setMinimumDistance(int)
public void setCoupledDistances(boolean coupled)
getMinimumDistance()
. Otherwise, the algorithm uses the custom
value returned by getMinimumDistanceToNode()
.
coupled
- true
if minimum distances should be coupled, false
otherwisesetMinimumDistance(int)
,
setMinimumDistanceToNode(int)
public boolean getCoupledDistances()
getMinimumDistance()
. Otherwise, the algorithm uses the custom
value returned by getMinimumDistanceToNode()
.
true
if minimum distances are coupled, false
otherwisesetCoupledDistances(boolean)
,
setMinimumDistance(int)
,
setMinimumDistanceToNode(int)
public void setMinimumDistanceToNode(int dist)
Positive values greater than 2
are allowed. Positive values less than 2
are ignored,
while negative values are mapped to their absolute values.
are coupled
(as holds by default),
the algorithm ignores this value.dist
- the minimum distancesetMinimumDistance(int)
,
setCoupledDistances(boolean)
Minimum distance between edge segments and nodes 10 | Minimum distance between edge segments and nodes 15 |
public int getMinimumDistanceToNode()
Positive values greater than 2
are allowed. Positive values less than 2
are ignored,
while negative values are mapped to their absolute values.
are coupled
(as holds by default),
the algorithm ignores this value.setMinimumDistanceToNode(int)
,
setMinimumDistance(int)
,
setCoupledDistances(boolean)
public void setLocalCrossingMinimizationEnabled(boolean enabled)
public boolean isLocalCrossingMinimizationEnabled()
true
if a local crossing minimization strategy is applied, false
otherwisesetLocalCrossingMinimizationEnabled(boolean)
public void setCenterToSpaceRatio(double csr)
0.0
.
1.0
.
If the ratio is negative or zero, space driven strategy will be selected.
public double getCenterToSpaceRatio()
0.0
.
1.0
.
If the ratio is negative or zero, space driven strategy will be selected.
setCenterToSpaceRatio(double)
public void setRoutingStyle(byte style)
STYLE_BALANCED
style
- one of the predefined routing stylespublic byte getRoutingStyle()
setRoutingStyle(byte)
public void setBadOrthogonal(boolean value)
If this option is disabled, edges that cannot be routed due to lack of space will be routed as straight-line segments.
public boolean getBadOrthogonal()
If this option is disabled, edges that cannot be routed due to lack of space will be routed as straight-line segments.
true
if edges that cannot be routed are drawn orthogonal,
false
otherwisesetBadOrthogonal(boolean)
public void setCustomBorderCapacityEnabled(boolean value)
The routing border contains the space left of the leftmost node, right of the rightmost node, above the topmost node, and below the bottommost node.
value
- true
if a custom capacity should be used,
false
otherwisesetCustomBorderCapacity(int)
public boolean getCustomBorderCapacityEnabled()
The routing border contains the space left of the leftmost node, right of the rightmost node, above the topmost node, and below the bottommost node.
true
if a custom capacity is used, false
otherwisesetCustomBorderCapacityEnabled(boolean)
,
setCustomBorderCapacity(int)
public void setCustomBorderCapacity(int value)
The routing border contains the space on the left of the leftmost node, on the right of the rightmost node, above the topmost node, and below the bottommost node.
If a negative value is given as input, its absolute value will be used instead.
getCustomBorderCapacityEnabled()
returns true
.value
- the capacity valuepublic int getCustomBorderCapacity()
The routing border contains the space on the left of the leftmost node, on the right of the rightmost node, above the topmost node, and below the bottommost node.
If a negative value is given as input, its absolute value will be used instead.
getCustomBorderCapacityEnabled()
returns true
.setCustomBorderCapacity(int)
public void setInnerPortsEnabled(boolean value)
port constraint
should lie in the interior of the
bounding box or on the border of a node.
The interior of the bounding box refers to the meridian of the node for edges connecting to the left and to the right side or to the equator of the node for edges connecting to the upper and to the lower side.
value
- true
if edge ports should lie in the interior or on the border of the node,
false
otherwiseInner port are disabled. Black rectangles on the nodes' borders correspond to edge ports. | Inner port are enabled. Black rectangles in the interior of nodes correspond to edge ports. |
public boolean isInnerPortsEnabled()
port constraint
should lie in the interior of the
bounding box or on the border of a node.
The interior of the bounding box refers to the meridian of the node for edges connecting to the left and to the right side or to the equator of the node for edges connecting to the upper and to the lower side.
true
if edge ports lie in the interior or on the border of the node, false
otherwisesetInnerPortsEnabled(boolean)
|
© Copyright 2000-2022, yWorks GmbH. All rights reserved. |
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |