PivotickAPI
De lijst met methoden is beschikbaar online.
Knooppunten en randen verkrijgen
Pivotick biedt meerdere manieren om toegang te krijgen tot knooppunten en randen. De methoden voor knooppunten worden hieronder vermeld (randen werken op dezelfde manier):
| Methode | Retouren | Beschrijving |
|---|---|---|
getNode(id: string | Node) | Node | undefined | Retourneert een diepe kopie van het knooppunt met de opgegeven ID. |
getNodes() | Node[] | Retourneert een diepe kopie van alle knooppunten. |
getMutableNode(id: string | Node) | Node | undefined | Retourneert het werkelijke knooppuntobject dat intern door Pivotick wordt gebruikt. |
getMutableNodes() | Node[] | Retourneert alle interne knooppuntobjecten. |
fooi
Gebruik waar mogelijk de standaardgetters (getNode / getNodes). Ze bieden veilige klonen die kunnen worden aangepast zonder de interne toestand van de motor te beïnvloeden.
gevaar
Het rechtstreeks wijzigen van knooppunten of randen via de veranderlijke getters kan leiden tot onverwacht gedrag. Gebruik veranderlijke toegang alleen als u de interne motormechanica begrijpt; geef anders de voorkeur aan de gekloonde versies.
Knopen en randen toevoegen
U kunt de functies addNode() en addEdge() op de grafiekinstantie gebruiken om nieuwe knooppunten en randen te maken.
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)
}Opmerkingen
Notities hebben gewone opties, dezelfde vorm als data.notes, zodat een opgeslagen set op elk moment kan worden getekend, en niet alleen wanneer de grafiek is opgebouwd.
| Methode | Retouren | Beschrijving |
|---|---|---|
addNote(options: NoteOptions | Note) | Note | undefined | Voegt een notitie toe en tekent deze, en zendt noteAdd uit. Gooit als de ID wordt gebruikt. Retourneert undefined terwijl UI.notes.enabled false is. |
setNotes(notes: NoteOptions[]) | Note[] | Vervangt de noten en laat knooppunten en randen met rust. Notities worden op ID gematcht: een notitie die al op het canvas staat, wordt op zijn plaats bijgewerkt, een notitie die in de lijst ontbreekt, wordt verwijderd en een nieuwe wordt toegevoegd. |
note.toJSON() | NoteOptions | De notitie als gewone opties: id, x, y, width, height, content, color, surface en, als die er is, attachedElement. |
getNotes() / getNote(id) | Note[] / Note | undefined | De opmerkingen bij de grafiek. |
toJSON() is wat JSON.stringify aanroept, dus het opslaan van de noten is één regel, en dat geldt ook voor het tekenen ervan in een andere grafiek:
const saved = JSON.stringify(graph.getNotes())
other.setNotes(JSON.parse(saved))
// or one at a time
other.addNote(graph.getNote('n1').toJSON())Een notitie die aan een knooppunt is gekoppeld, behoudt zijn link wanneer het knooppunt in de andere grafiek bestaat. Of notities verborgen zijn, is een weergave-instelling en blijft buiten toJSON().
De klasse Note wordt ook geëxporteerd als import { Note } from 'pivotick' of Pivotick.Note in de browserbuild.