# Програмний інтерфейс (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 назва