Aller au contenu

Pivotick API ​

La liste des méthodes est disponible en ligne.

Obtenir des nœuds et des arêtes ​

Pivotick fournit plusieurs façons d'accéder aux nœuds et aux bords. Les méthodes pour les nœuds sont répertoriées ci-dessous (les bords fonctionnent de la même manière) :

MéthodeRenvoieDescription
getNode(id: string | Node)Node | undefinedRenvoie une copie profonde du nœud avec l'ID donné.
getNodes()Node[]Renvoie une copie profonde de tous les nœuds.
getMutableNode(id: string | Node)Node | undefinedRenvoie l'objet nœud réel **** utilisé en interne par Pivotick.
getMutableNodes()Node[]Renvoie tous les objets de nœud interne.

conseil

Utilisez les getters standard (getNode / getNodes) autant que possible. Ils fournissent des clones sûrs qui peuvent être modifiés sans affecter l’état interne du moteur.

danger

La modification de nœuds ou de bords directement via les getters mutables peut conduire à un comportement inattendu. N'utilisez l'accès mutable que si vous comprenez la mécanique interne du moteur ; sinon, préférez les versions clonées.

Ajout de nœuds et d'arêtes ​

Vous pouvez utiliser les fonctions addNode() et addEdge() sur l'instance de graphe pour créer de nouveaux nœuds et arêtes.

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)
}

Remarques ​

Les notes prennent des options simples, de la même forme que data.notes, de sorte qu'un ensemble stocké peut être dessiné à tout moment, pas seulement lorsque le graphique est construit.

MéthodeRenvoieDescription
addNote(options: NoteOptions | Note)Note | undefinedAjoute et dessine une note et émet noteAdd. Lance si l'identifiant est pris. Renvoie undefined tandis que UI.notes.enabled est false.
setNotes(notes: NoteOptions[])Note[]Remplace les notes, laissant les nœuds et les bords seuls. Les notes sont mises en correspondance par identifiant : une note déjà sur le canevas est mise à jour sur place, une note manquante dans la liste est supprimée et une nouvelle est ajoutée.
note.toJSON()NoteOptionsLa note sous forme d'options simples : id, x, y, width, height, content, color, surface et, lorsqu'elle en a une, attachedElement.
getNotes() / getNote(id)Note[] / Note | undefinedLes notes sur le graphique.

toJSON() est ce que JSON.stringify appelle, donc enregistrer les notes est une ligne, tout comme les dessiner sur un autre graphique :

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

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

Une note attachée à un nœud conserve son lien lorsque le nœud existe sur l'autre graphe. Le fait que les notes soient masquées est un paramètre d'affichage et reste en dehors de toJSON().

La classe Note est également exportée, sous la forme import { Note } from 'pivotick' ou Pivotick.Note dans la version du navigateur.