コンテンツへスキップ

Pivotick API ​

方法のリストは、オンラインでご覧いただけます。

ノードとエッジの取得 ​

Pivotick は、ノードとエッジにアクセスするための複数の方法を提供します。ノードのメソッドを以下に示します (エッジも同様に機能します)。

方法返品説明
getNode(id: string | Node)Node | undefined指定された ID を持つノードの ディープコピー を返します。
getNodes()Node[]すべてのノードのディープコピーを返します。
getMutableNode(id: string | Node)Node | undefinedPivotick によって内部的に使用される 実際のノード オブジェクト を返します。
getMutableNodes()Node[]すべての内部ノード オブジェクト を返します。

ヒント

可能な限り、標準のゲッター (getNode / getNodes) を使用してください。これらは、エンジンの内部状態に影響を与えることなく変更できる安全なクローンを提供します。

危険

可変ゲッターを介してノードまたはエッジを直接変更すると、予期しない動作が発生する可能性があります。 内部エンジンの仕組みを理解している場合にのみ、可変アクセスを使用してください。それ以外の場合は、クローン バージョンを推奨します。

ノードとエッジの追加 ​

グラフ インスタンスで関数 addNode() および addEdge() を使用して、新しいノードとエッジを作成できます。

js
async function addNode(counter, graph) {
    const newNode = new Node(`n-${counter}`, { label: `Node ${counter}` })
    
    const existingNodes = graph.getMutableNodes()
    const randomIndex = Math.floor(Math.random() * existingNodes.length)
    const randomNode = existingNodes[randomIndex]

    const newEdge = new Edge(`e-${counter}`, randomNode, newNode)
    
    graph.addNode(newNode)
    graph.addEdge(newEdge)

    // Restart physics by nudging the graph a bit
    graph.simulation.reheat(0.7)
    await graph.simulation.waitForSimulationStop()
    graph.renderer.fitAndCenter()
}
js
function loaded(graph) {
    let i = graph.getMutableNodes().length
    addNode(i++, graph)
    setInterval(() => {
        if (i < 10) {
            addNode(i++, graph)
        }
    }, 1500)
}

注意事項 ​

メモは data.notes と同じ形状のプレーン オプションを取るため、保存されたセットはグラフの構築時だけでなくいつでも描画できます。

方法返品説明
addNote(options: NoteOptions | Note)Note | undefined音符を追加して描画し、noteAddを発します。 ID が取得された場合にスローされます。 UI.notes.enabled が false である間、undefined を返します。
setNotes(notes: NoteOptions[])Note[]ノードとエッジを残してノートを置き換えます。ノートは ID によって照合されます。キャンバス上にすでにあるノートはその場で更新され、リストにないノートが削除され、新しいノートが追加されます。
note.toJSON()NoteOptionsプレーンオプションとしてのメモ: id、x、y、width、height、content、color、surface、そしてそれが1つある場合はattachedElement。
getNotes() / getNote(id)Note[] / Note | undefinedグラフ上のメモ。

toJSON() は JSON.stringify が呼び出すものであるため、メモの保存は 1 行であり、メモを別のグラフに描画することもできます。

js
const saved = JSON.stringify(graph.getNotes())

other.setNotes(JSON.parse(saved))
// or one at a time
other.addNote(graph.getNote('n1').toJSON())

ノードにアタッチされたメモは、そのノードが他のグラフ上に存在する場合、そのリンクを維持します。メモを非表示にするかどうかは表示設定であり、toJSON() の範囲外です。

Note クラスも、ブラウザーのビルドでは import { Note } from 'pivotick' または Pivotick.Note としてエクスポートされます。