# Програмний інтерфейс (API) скриптів для модуля роботи з графами

За допомогою діалогового вікна властивостей структури даних ви можете отримати доступ до параметрів налаштовування, які є специфічними для модуля роботи з графами. Скористайтеся пунктом Тип графу для вибору типу графу. Призначення типів графів є таким:

- Граф: граф, у якому передбачено будь-які два вузли може бути з’єднано лише одним ребром.

- Мультиграф: граф, у якому передбачено можливість визначення декількох ребер між двома вузлами.

## Структура даних графу

Об’єкти графу містять дані щодо структури даних типу «Граф» («Graph»).

### Властивості

- name:

  Унікальна назва цієї структури даних.

### Методи

nodes()

- Повертає список всіх вузлів графу.

      array nodes

nodes(тип)

- Повертає список всіх вузлів графу вказаного типу.

      array nodes int тип

edges()

- Повертає список всіх ребер графу.

      array edges

edges(тип)

- Повертає список всіх ребер графу вказаного типу.

      array edges int тип

createNode(тип)

- Створює новий вузол вказаного типу і повертає створений вузол. Якщо тип вузла не зареєстровано, вузол не створюється.

      GraphNode createNode int тип

createNode()

- Створює новий вузол стандартного типу і повертає створений вузол.

      GraphNode createNode

createEdge(from, to, тип)

- Створює ребро від вузла «from» до вузла «to» вказаного типу і повертає створене ребро. Якщо тип ребра не зареєстровано, ребро не створюється.

      GraphEdge createEdge GraphNode from GraphNode to int тип

createEdge(from, to)

- Створює ребро від вузла «from» до вузла «to» стандартного типу і повертає створене ребро.

      GraphEdge createEdge GraphNode from GraphNode to

distances(from)

- Повертає масив найкоротших довжин шляхів від цього вузла до будь-якого іншого вузла графу.

      Array distances GraphNode from

## Вузол графу

Вузол є елементом даних графу.

### Властивості

- width:

  Розмір цього елемента даних.

- x:

  Координата за X цього елемента даних.

- y:

  Координата за Y цього елемента даних.

- id:

  Унікальний ідентифікатор цього елемента даних.

- color:

  Колір цього елемента даних у форматі шістнадцяткового числа.

### Методи

neighbors()

- Повертає список всіх вузлів, з’єднаних з вказаним вузлом. Цей метод враховує спрямованість у графі.

      array neighbors

edges()

- Повертає список всіх ребер (вхідних і вихідних) вказаного вузла.

      array edges

edges(тип)

- Повертає список всіх ребер (вхідних і вихідних) вказаного вузла і вказаного типу.

      array edges int тип

inEdges()

- Повертає список всіх вхідних ребер цього вузла.

      array inEdges

inEdges(тип)

- Повертає список всіх вхідних ребер вказаного вузла і вказаного типу.

      array inEdges int тип

outEdges()

- Повертає список всіх вихідних ребер цього вузла.

      array outEdges

outEdges(тип)

- Повертає список всіх вихідних ребер цього вузла вказаного типу.

      array outEdges int тип

edgesTo(призначення)

- Повертає список всіх ребер вказаного вузла до іншого вказаного вузла.

      array edgesTo GraphNode призначення

## Ребро графу

Ребро є з’єднанням між двома графічними вузлами. Ребра можуть бути спрямованими або неспрямованими, залежно від типу.

### Властивості

- width:

  Товщина з’єднання.

- directed:

  Якщо має значення true, з’єднання є спрямованим. Якщо має значення false — не спрямованим.

- from:

  Початок з’єднання.

- to:

  Кінець з’єднання.

- color:

  Ідентифікатор типу з’єднання.

### Методи

remove()

- Вилучити це з’єднання.

      void remove

add_property(назва, значення)

- Додати до з’єднання нову властивість.

      void add_property string назва string значення

remove_property(назва)

- Вилучити зі з’єднання наявну властивість.

      void remove_property string назва