AddFlow Suite (英語版)
インタラクティブなフローチャートとワークフロー図を作成、グラフの描画アルゴリズムを搭載
Lassalle Technologies 社の製品
2002 年より日本国内にてComponentSourceで販売中。
価格:¥ 207,350 (税込)〜 バージョン: v5.4.0.19 更新日: Jun 19, 2007
インタラクティブなフローチャートとワークフロー図を作成、グラフの描画アルゴリズムを搭載
AddFlowSuiteはコンポーネントスイートであり、AddFlowとLayoutFlowを含み、また、4つのレイアウトコンポーネントのコレクションとして、HFlow(階層的)、SFlow(対称)、TFlow(ツリー)、OFlow(直交)を含みます。
AddFlowSuiteは、AddFlowとLayoutFlowの双方を含みます。
以下に列挙するのは、AddFlowの主要な機能です。コンパクト(375KB)で、堅牢で、高速で、そして使いやすいActiveXコンポーネントの中に、これら全ての機能がカプセル化されることは注目に値します。
全般において
入出力
インタラクティブ性
表示機能
データ
リンク
ノード
以下に、LayoutFlowの主要な機能を列挙します。
LayoutFlowの概要
LayoutFlowは、グラフフレイアウトのための4つのコントールのセットです。
それぞれの製品に関するデモンストレーションは、AddFlowを用いて実現されるLayoutDemoサンプルで提供されています。
HFlowおよび、OFlow、SFlowとTFlowは、AddFlowの拡張版であり、使用するためにはAddFlowが必要となります。一般的には、それぞれのノードに対して最初に、任意あるいは(0,0)ポジションを与え、また、AddFlowAPIを用いることで、AddFlow内にノードとリンクが作成されます。続いて、選択したグラフレイアウトコントロールの、レイアウトメソッドをコールします。このメソッドは、選択されたコントロール(HFlowによる階層や、SFlowによる対称、OFlowによる直交など)に依存する一定の外観に従うことで、AddFlowコントロール内のノードとリンクを合理的な手法により配置します。
AddFlowのLogicalOnlyプロパティがtrueの場合には、AddFlowコントロールの論理的な頂点(ノードとも呼ばれる)だけが、このレイアウトに対する関係を持ちます。それにより、重要な頂点だけに対して、レイアウトを適用できるようになります。たとえば、Logicalプロパティにfalseを設定することで、ラベルを表示するだけのノードを除外することができます。
1) HFlow
HFlowレイアウトアルゴリズムは、水平な階層で頂点を調整するためのものです。その頂点の並びは、交差点の数が小さくなるように選択されます。
HFlowによるソリューションは、最適を目指すものではなく、まさに合理性を考えたものとなります。
2) OFlow
OFlowレイアウトアルゴリズムは、グラフ上で直交するレイアウトを実現します。このレイアウトが直交となる理由は、それぞれのエッジが水平と垂直に交互に接続する多角形として描画する場合に、直交の描画が生成されるためです。
OFlowは、グラフ間の接続の有無にかかわらず機能します。描画の結果として、最大で4度以内のグラフになる場合には、それぞれのノードが同じ大きさを持つことになります。もしノードの角度が4度以上なら、ノードの高さが拡大されることになります。
3) SFlow
SFlowレイアウトアルゴリズムは、グラフ上で対称的なレイアウトを実現します。対称的なレイアウトは、正確な対称を生み出しますが、特に、エッジの方向が重要ではない無向性のグラフにとって有効なものとなります。
多くの場合において、結果として生じるレイアウトは良好です。しかし、膨大な計算上のリソースが必要とされるため、小さいグラフ(300以下のノード数)に対して使用すべきです。
アニメーションモードを使うことで、SFlowの機能する様子を確認することが可能です。
4) TFlow
TFlowレイアウトのアルゴリズムは、グラフ上でのツリーレイアウトを実現します。ツリーレイアウトは、ルーティングされたツリーである、グラフ内の特定のサブセットだけに適用されます。このようなグラフにおいて、複数の親を持つ頂点は存在しません。
ツリーの描画は、一定の美観を満たす一方で、ごく限られた領域だけしか占有しません。DrawingStyleプロパティの値が「Layered」なら:
ツリー上の同じレベルの頂点は、同一線上に配置されます。
親ノードは、その子供たちの中心に配置されます。
DrawingStyleプロパティの値が「Radial」なら: