Pivotick API
قائمة الطرق متاحة أون لاين.
الحصول على العقد والحواف
يوفر Pivotick طرقًا متعددة للوصول إلى العقد والحواف. يتم سرد طرق العقد أدناه (تعمل الحواف بنفس الطريقة):
| الطريقة | المرتجعات | الوصف |
|---|---|---|
getNode(id: string | Node) | Node | undefined | تقوم بإرجاع نسخة عميقة من العقدة بالمعرف المحدد. |
getNodes() | Node[] | إرجاع نسخة عميقة لجميع العقد. |
getMutableNode(id: string | Node) | Node | undefined | تُرجع كائن العقدة الفعلي المستخدم داخليًا بواسطة Pivotick. |
getMutableNodes() | Node[] | إرجاع جميع كائنات العقدة الداخلية. |
نصيحة
استخدم الحروف القياسية (getNode / getNodes) كلما أمكن ذلك. إنها توفر نسخًا آمنة يمكن تعديلها دون التأثير على الحالة الداخلية للمحرك.
خطر
قد يؤدي تعديل العقد أو الحواف مباشرة عبر الحروف القابلة للتغيير إلى سلوك غير متوقع. استخدم الوصول القابل للتغيير فقط إذا كنت تفهم آليات المحرك الداخلية؛ خلاف ذلك، تفضل الإصدارات المستنسخة.
إضافة العقد والحواف
يمكنك استخدام الدالتين addNode() و addEdge() في مثيل الرسم البياني لإنشاء عقد وحواف جديدة.
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)
}ملاحظات
تأخذ الملاحظات خيارات بسيطة، بنفس شكل data.notes، لذلك يمكن رسم المجموعة المخزنة في أي وقت، وليس فقط عند إنشاء الرسم البياني.
| الطريقة | المرتجعات | الوصف |
|---|---|---|
addNote(options: NoteOptions | Note) | Note | undefined | يضيف ويرسم ملاحظة، ويصدر noteAdd. يلقي إذا تم أخذ الهوية. يُرجع undefined بينما UI.notes.enabled يساوي false. |
setNotes(notes: NoteOptions[]) | Note[] | يستبدل الملاحظات، ويترك العقد والحواف وحدها. تتم مطابقة الملاحظات حسب المعرف: يتم تحديث الملاحظة الموجودة بالفعل على اللوحة القماشية في مكانها، وتتم إزالة الملاحظة المفقودة من القائمة، وإضافة ملاحظة جديدة. |
note.toJSON() | NoteOptions | الملاحظة كخيارات عادية: id، x، y، width، height، content، color، surface، وعندما تحتوي على واحدة، attachedElement. |
getNotes() / getNote(id) | Note[] / Note | undefined | الملاحظات على الرسم البياني. |
toJSON() هو ما يطلق عليه JSON.stringify، لذا فإن حفظ الملاحظات هو سطر واحد، وكذلك رسمها على رسم بياني آخر:
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 في إصدار المتصفح.