レイアウト・モード (LL)
直交リンクを使用した短リンク・モードおよび長リンク・モード の図は、
短リンク・モードおよび長リンク・モードの小さいサンプル・グラフを示しています。短リンク・モードでは、
リンクが整然とバンドルされています。バンドルされているため、一部の赤いリンクが緑色のノードに
接続されていないように見えます。アルゴリズムは、ノードや緑色のリンクと重ならない
赤い長リンクの経路を見つけることができません。長リンク・モードは、グリッド上で処理します。長リンク・モードは長リンク用に専門化されたモードで、ノードやリンク・セグメントの重複を回避します。
長リンク・モードでは、終了ノードのさまざまな側面で接続ポイントを選択することにより、
緑色のノードに接続できます。しかし、この利点のために、あまり規則性がない構造 (リンクがバンドルされていない、
リンクの交差が多いなど) になります。

直交リンクを使用した短リンク・モードおよび長リンク・モード
適切なレイアウトの選択 (LL)
以下のいずれかの条件が当てはまる場合は、短リンク・モードを使用してください。
- ほとんどのリンクが短く、長いリンクが障害物に重なっても致命的ではない。
- リンクの経路を自由に配置する必要があり、グリッドで制約できない。
- 曲折の数を制限することが重要である。
以下のいずれかの条件が当てはまる場合は、長リンク・モードを使用してください。
- 多くのリンクが長く、長いリンクが障害物に重ならないことが重要である。
- ノードが既にグリッド上に配置されているため、優先経路がある。
- リンク・セグメント間の最短距離が保証されることが重要である。
- 重ならないようにするためには、曲折点の数が増えても許容できる。
長リンク・レイアウトによる迷路の経路指定は、
長リンク・モードを使用して、ノード障害物の迷路内で重ならない直交経路を検出する方法を示しています。

長リンク・レイアウトによる迷路の経路指定
リンク・スタイル (LL)
レイアウト・アルゴリズムには、2 つのリンク・スタイルがあります。すべてのリンクが同じ形状である場合はリンク・スタイルを全体的に設定でき、
同じ描画内でリンクの形状が異なる場合はリンク・スタイルを各リンクについてローカルに設定できます。
グローバル・リンク・スタイル
グローバル・リンク・スタイルの設定の例 (リンク・レイアウト・アルゴリズム)
グローバル・リンク・スタイルを設定するには、以下のようにします。
メソッド setGlobalLinkStyle を使用します。
layout.setGlobalLinkStyle(ibm_ilog.graphlayout.shortlink.ShortLinkLayout.ORTHOGONAL_STYLE);
処理するレイアウトに応じて、
ibm_ilog.graphlayout.shortlink.ShortLinkLayout.ORTHOGONAL_STYLE または ibm_ilog.graphlayout.longlink.LongLinkLayout.ORTHOGONAL_STYLE を使用できます。両方の定数の値は同じです。
有効な値は、次のとおりです。
- ibm_ilog.graphlayout.shortlink. ShortLinkLayout.ORTHOGONAL_STYLEまたはibm_ilog.graphlayout.longlink. LongLinkLayout.ORTHOGONAL_STYLE (デフォルト)リンクは、直交状に形状変更されます (水平セグメントと垂直セグメントが入れ替わります)。例として 直交リンクを含む短リンク・レイアウト および 直交リンクを含む長リンク・レイアウト を参照してください。
- ibm_ilog.graphlayout.shortlink. ShortLinkLayout.DIRECT_STYLE または ibm_ilog.graphlayout.longlink. LongLinkLayout.DIRECT_STYLEリンクは 3 つのセグメント (短い水平または垂直セグメントで開始および終了する直線セグメント) で構成される折れ線に形状変更されます。例として、「直接リンクを含む短リンク・レイアウトの同じグラフ」を参照してください。
- ibm_ilog.graphlayout.shortlink. ShortLinkLayout.MIXED_STYLE または ibm_ilog.graphlayout.longlink. LongLinkLayout.MIXED_STYLE各リンクには、異なるリンク・スタイルを指定できます。個々のリンクのスタイルはそれぞれ、同じグラフ上で異なるリンク形状を持つよう設定できます。
個別リンク・スタイル
グローバル・リンク・スタイルが MIXED_STYLE でない限り、すべてのリンクの形状は同じスタイルになります。
グローバル・リンク・スタイルが MIXED_STYLE に
設定されている場合にのみ、各リンクを個別のリンク・スタイルにすることができます。

同じ描画での異なるリンク・スタイルの混合 (短リンク・レイアウト)

同じ描画での異なるリンク・スタイルの混合 (長リンク・レイアウト)
個別リンク・スタイルの指定の例 (リンク・レイアウト・アルゴリズム)
個々のリンクのスタイルを設定および検索するには、以下のようにします。
以下のメソッドを使用します。
layout.setLinkStyle(link, ibm_ilog.graphlayout.shortlink.ShortLinkLayout.ORTHOGONAL_STYLE);
var style = layout.getLinkStyle(node);
有効な値は、次のとおりです。
- ibm_ilog.graphlayout.shortlink.ShortLinkLayout.ORTHOGONAL_STYLEまたはibm_ilog.graphlayout.longlink.LongLinkLayout.ORTHOGONAL_STYLE (デフォルト)
- ibm_ilog.graphlayout.shortlink.ShortLinkLayout.DIRECT_STYLE または ibm_ilog.graphlayout.longlink.LongLinkLayout.DIRECT_STYLE
- ibm_ilog.graphlayout.shortlink.ShortLinkLayout.NO_RESHAPE_STYLE または ibm_ilog.graphlayout.longlink.LongLinkLayout.NO_RESHAPE_STYLE (すなわち、リンクの形状は決して変更されません)
エンドポイント・モード (LL)
レイアウト・アルゴリズムには、2 つのエンドポイント・モードがあります。エンドポイント・モードはグローバルに、または各リンクでローカルに設定できます。
グローバルに設定した場合は、すべての終点が同じモードになり、ローカルに設定した場合は同じ描画で異なる終点が生じます。
グローバル・エンドポイント・モード
グローバル・エンドポイント・モードの指定の例 (リンク・レイアウト・アルゴリズム)
グローバル・エンドポイント・モードを設定するには、以下のようにします。
メソッド setGlobalOriginPointMode および setGlobalDestinationPointMode を使用します。
モードを決定する有効な値は、次のとおりです。
- ibm_ilog.graphlayout.shortlink.ShortLinkLayout.FREE_MODEまたはibm_ilog.graphlayout.longlink.LongLinkLayout.FREE_MODE (デフォルト)レイアウトは、ソース・ノードまたは宛先ノード上の接続ポイントの適切な位置を 自由に選択します。
- ibm_ilog.graphlayout.shortlink.ShortLinkLayout.FIXED_MODE または ibm_ilog.graphlayout.longlink.LongLinkLayout.FIXED_MODEレイアウトは、ソース・ノードまたは宛先ノード上の接続ポイントの現在の位置を 保持する必要があります。
- ibm_ilog.graphlayout.shortlink.ShortLinkLayout.MIXED_MODE または ibm_ilog.graphlayout.longlink.LongLinkLayout.MIXED_MODE各リンクに異なるエンドポイント・モードを設定できます。
個別エンドポイント・モード
グローバル・エンドポイント・モードが MIXED_MODE でない限り、すべてのリンクのエンドポイント・モードは同じです。
グローバル・エンドポイント・モードが MIXED_MODE に
設定されている場合にのみ、各リンクを個別のエンドポイント・モードにすることができます。
個別エンドポイント・モードの指定の例 (リンク・レイアウト・アルゴリズム)
個々のリンクのモードを設定するには、以下のようにします。
以下のメソッドを使用します。
layout.setOriginPointMode(link, mode)
var mode = getOriginPointMode(link)
layout.setDestinationPointMode(link, mode)
var mode = getDestinationPointMode(link)
mode の有効な値は、以下のとおりです。
- ibm_ilog.graphlayout.shortlink.ShortLinkLayout.FREE_MODEまたはibm_ilog.graphlayout.longlink.LongLinkLayout.FREE_MODE (デフォルト)
- ibm_ilog.graphlayout.shortlink.ShortLinkLayout.FIXED_MODE または ibm_ilog.graphlayout.longlink.LongLinkLayout.FIXED_MODE
インクリメンタル・モード (LL)
リンク・レイアウト・アルゴリズムは、通常、すべてのリンクを最初から経路指定します。リンクやノードの追加または削除によりグラフが段階的に変化すると、その後のレイアウトが以前のレイアウトと、かなり異なってくる可能性があります。このような結果にならないようにするために、またユーザーがグラフを頭の中に思い浮かべることができるように、アルゴリズムにはインクリメンタル・モードが用意されています。
インクリメンタル・モードの有効化の例 (リンク・レイアウト・アルゴリズム)
インクリメンタル・モードを有効にするには、以下のようにします。
メソッド setIncrementalMode を使用します。
layout.setIncrementalMode(true);
インクリメンタル・モードでレイアウトを行うと、レイアウトへの変更は最小限に抑えられます。
リンクが新しい場合、リンクの曲折点が動かされた場合、リンクのレイアウト・パラメーターが変更された場合、
またはノードがリンクに重なるように動かされた場合にのみ、リンクの経路が変更されます。
短リンク・モードでは、次のレイアウトがインクリメンタルである場合、
リンクのいずれかの終了ノードが移動またはサイズ変更された場合以外は、
リンクの接続側面および全体的な形状は前のレイアウトによって計算されたものが維持されます。
長リンク・モードでは、もうグリッド上にないリンクまたはノードに重なるリンク
に関しては、新しい経路が探索されます。経路変更されたリンクの形状および接続側面は、
まったく変わってしまう可能性があります。既にグリッド上にあり、ノードや他のリンクと重ならないリンクは、
インクリメンタル・モードでは経路変更されません。レイアウトが変更されていない場合でも、
次のインクリメンタル・レイアウトによって経路変更する必要があるリンクを指定することもできます。
次のインクリメンタル・レイアウトによって経路変更する必要があるリンクの指定の例 (リンク・レイアウト・アルゴリズム)
インクリメンタル経路変更で使用する個々のリンクを選択するには、以下のようにします。
次のメソッドを使用します。
layout.markForIncremental(link)
グラフ間リンク・ルーティング (LL)

通常のリンク (青色) とグラフ間リンク (赤色) がある入れ子グラフ
リンク・レイアウトは、デフォルトで、通常のリンクとグラフ間リンクの両方を経路指定します。
通常のリンクのみの経路指定の例 (リンク・レイアウト・アルゴリズム)
通常のリンクのみを経路指定するには、以下のようにして、グラフ間リンク・ルーティングを無効にします。
メソッド setInterGraphLinksMode を使用します。
layout.setInterGraphLinksMode(false);
グラフ間リンクまたは通常のリンク、あるいはその両方の経路指定の例 (リンク・レイアウト・アルゴリズム)
グラフ間リンク・モードが有効である場合は、グラフ間リンクのみを経路指定するか、
またはグラフ間リンクと通常のリンクを同時に経路指定するかを選択できます。
setCombinedInterGraphLinksMode メソッドを
以下のように設定すると、次のレイアウトで、グラフ間リンクは経路指定されますが、通常のリンクは形状変更されません。
layout.setCombinedInterGraphLinksMode(false);
setCombinedInterGraphLinksMode メソッドを
以下のように設定すると、次のレイアウトで、通常のリンクとグラフ間リンクの両方が経路指定されます。
layout.setCombinedInterGraphLinksMode(true);
グラフ間リンク・モードが有効である場合は、レイアウトで段階的にリンクを経路指定することは
できません。「インクリメンタル・モード (LL)」を参照してください。
レイアウトは、関連付けられているグラフに属しているリンクのみを経路指定します。
入れ子グラフでは、各サブグラフは異なるレイアウト・インスタンスに関連付けられています。
そのため、最上位のグラフに対して通常の (非再帰) レイアウトを開始すると
(通常のリンク (青色) とグラフ間リンク (赤色) がある入れ子グラフを参照)、
この図に示されているすべてのリンクではなく、
最上位のグラフに属しているリンクのみが経路指定されます。
以下の図で、黄色の陰影が付いている部分は、現在、非再帰リンク・レイアウトが適用されている
サブグラフを示しています。最上位のグラフは左側です。右側はサブグラフで、黄色の陰影が付いています。
グラフ間リンク・モードが有効である場合は、赤色 (グラフ間リンク) と青色 (通常のリンク) の両方のリンクが
経路指定されます。グラフ間リンク・モードが無効である場合は、青色 (通常のリンク) のリンクのみが
経路指定されます。グレーのリンクは、リンク・レイアウトが適用されるグラフに属していないため、
経路指定されません。

入れ子グラフで経路指定されているリンク: 最上位のグラフとそのサブグラフ
入れ子グラフのすべてのリンクの経路を指定するには、以下のようにします。
- 最上位のグラフで指定されたリンク・レイアウトをサブグラフにも適用する、デフォルトの継承メカニズムを使用する。または
- 各サブグラフでリンク・レイアウトを明示的に指定する。