LoginSignup
0
0

More than 1 year has passed since last update.

GraphViewで削除可能なノードをすべて消す方法

Posted at

GraphViewの資料が少ない(QiitaでもGraphViewタグの記事が4つしかない)ので些細な事でもメモしておきます。

全てのノードを消す方法がないかな?と探したところ、
GraphView.cs内のCollectDeletableGraphElements()がちょうど良い感じだったので、移植&一部修正して実装。

MyGraphView.csの一部
///全てのDeletableなElementを消すボタン押下コールバック
private void OnClickDeleteAllDeletableElements()
{
    var elements = new HashSet<GraphElement>();
    static bool DeletablePredicate(GraphElement e) => (e.capabilities & Capabilities.Deletable) == Capabilities.Deletable;

    CollectElements(graphElements, elements, DeletablePredicate);

    foreach (var graphElement in elements)
    {
        RemoveElement(graphElement);
    }
}

まとめてRootNode(非deletable)以外を消したいときに使えそうです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0