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éthode | Renvoie | Description |
|---|---|---|
getNode(id: string | Node) | Node | undefined | Renvoie 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 | undefined | Renvoie 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.
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()
}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éthode | Renvoie | Description |
|---|---|---|
addNote(options: NoteOptions | Note) | Note | undefined | Ajoute 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() | NoteOptions | La 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 | undefined | Les 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 :
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.