<sect1> <title >Програмний інтерфейс (API) скриптів для модуля роботи з графами</title> <para >За допомогою діалогового вікна властивостей структури даних ви можете отримати доступ до параметрів налаштовування, які є специфічними для модуля роботи з графами. Скористайтеся пунктом <guilabel >Тип графу</guilabel > для вибору типу графу. Призначення типів графів є таким: </para> <itemizedlist> <listitem ><para ><guilabel >Граф</guilabel >: граф, у якому передбачено будь-які два вузли може бути з’єднано лише одним ребром. </para ></listitem> <listitem ><para ><guilabel >Мультиграф</guilabel >: граф, у якому передбачено можливість визначення декількох ребер між двома вузлами. </para ></listitem> </itemizedlist> <sect2> <title >Структура даних графу</title> <para >Об’єкти графу містять дані щодо структури даних типу «Граф» («Graph»). </para> <sect3> <title >Властивості</title> <itemizedlist> <listitem> <para ><emphasis >name</emphasis >: </para> <para >Унікальна назва цієї структури даних.</para> </listitem> </itemizedlist> </sect3> <sect3> <title >Методи</title> <variablelist> <varlistentry> <term >nodes()</term> <listitem> <para >Повертає список всіх вузлів графу.</para> <funcsynopsis ><funcprototype ><funcdef >array <function >nodes</function ></funcdef > <paramdef ></paramdef > </funcprototype> </funcsynopsis> </listitem> </varlistentry> <varlistentry> <term >nodes(тип)</term> <listitem> <para >Повертає список всіх вузлів графу вказаного типу.</para> <funcsynopsis ><funcprototype ><funcdef >array <function >nodes</function ></funcdef > <paramdef >int <parameter ><replaceable >тип</replaceable ></parameter ></paramdef > </funcprototype> </funcsynopsis> </listitem> </varlistentry> <varlistentry> <term >edges()</term> <listitem> <para >Повертає список всіх ребер графу.</para> <funcsynopsis ><funcprototype ><funcdef >array <function >edges</function ></funcdef > <paramdef ></paramdef > </funcprototype> </funcsynopsis> </listitem> </varlistentry> <varlistentry> <term >edges(тип)</term> <listitem> <para >Повертає список всіх ребер графу вказаного типу.</para> <funcsynopsis ><funcprototype ><funcdef >array <function >edges</function ></funcdef > <paramdef >int <parameter ><replaceable >тип</replaceable ></parameter ></paramdef > </funcprototype> </funcsynopsis> </listitem> </varlistentry> <varlistentry> <term >createNode(тип)</term> <listitem> <para >Створює новий вузол вказаного типу і повертає створений вузол. Якщо тип вузла не зареєстровано, вузол не створюється.</para> <funcsynopsis ><funcprototype ><funcdef >GraphNode <function >createNode</function ></funcdef > <paramdef >int <parameter ><replaceable >тип</replaceable ></parameter ></paramdef > </funcprototype> </funcsynopsis> </listitem> </varlistentry> <varlistentry> <term >createNode()</term> <listitem> <para >Створює новий вузол стандартного типу і повертає створений вузол.</para> <funcsynopsis ><funcprototype ><funcdef >GraphNode <function >createNode</function ></funcdef > <paramdef ></paramdef > </funcprototype> </funcsynopsis> </listitem> </varlistentry> <varlistentry> <term >createEdge(from, to, тип)</term> <listitem> <para >Створює ребро від вузла «from» до вузла «to» вказаного типу і повертає створене ребро. Якщо тип ребра не зареєстровано, ребро не створюється.</para> <funcsynopsis ><funcprototype ><funcdef >GraphEdge <function >createEdge</function ></funcdef > <paramdef >GraphNode <parameter ><replaceable >from</replaceable ></parameter ></paramdef > <paramdef >GraphNode <parameter ><replaceable >to</replaceable ></parameter ></paramdef > <paramdef >int <parameter ><replaceable >тип</replaceable ></parameter ></paramdef > </funcprototype> </funcsynopsis> </listitem> </varlistentry> <varlistentry> <term >createEdge(from, to)</term> <listitem> <para >Створює ребро від вузла «from» до вузла «to» стандартного типу і повертає створене ребро.</para> <funcsynopsis ><funcprototype ><funcdef >GraphEdge <function >createEdge</function ></funcdef > <paramdef >GraphNode <parameter ><replaceable >from</replaceable ></parameter ></paramdef > <paramdef >GraphNode <parameter ><replaceable >to</replaceable ></parameter ></paramdef > </funcprototype> </funcsynopsis> </listitem> </varlistentry> <varlistentry> <term >distances(from)</term> <listitem> <para >Повертає масив найкоротших довжин шляхів від цього вузла до будь-якого іншого вузла графу.</para> <funcsynopsis ><funcprototype ><funcdef >Array <function >distances</function ></funcdef > <paramdef >GraphNode <parameter ><replaceable >from</replaceable ></parameter ></paramdef > </funcprototype> </funcsynopsis> </listitem> </varlistentry> </variablelist> </sect3> </sect2> <sect2> <title >Вузол графу</title> <para >Вузол є елементом даних графу. </para> <sect3> <title >Властивості</title> <itemizedlist> <listitem> <para ><emphasis >width</emphasis >: </para> <para >Розмір цього елемента даних.</para> </listitem> <listitem> <para ><emphasis >x</emphasis >: </para> <para >Координата за X цього елемента даних.</para> </listitem> <listitem> <para ><emphasis >y</emphasis >: </para> <para >Координата за Y цього елемента даних.</para> </listitem> <listitem> <para ><emphasis >id</emphasis >: </para> <para >Унікальний ідентифікатор цього елемента даних.</para> </listitem> <listitem> <para ><emphasis >color</emphasis >: </para> <para >Колір цього елемента даних у форматі шістнадцяткового числа.</para> </listitem> </itemizedlist> </sect3> <sect3> <title >Методи</title> <variablelist> <varlistentry> <term >neighbors()</term> <listitem> <para >Повертає список всіх вузлів, з’єднаних з вказаним вузлом. Цей метод враховує спрямованість у графі.</para> <funcsynopsis ><funcprototype ><funcdef >array <function >neighbors</function ></funcdef > <paramdef ></paramdef > </funcprototype> </funcsynopsis> </listitem> </varlistentry> <varlistentry> <term >edges()</term> <listitem> <para >Повертає список всіх ребер (вхідних і вихідних) вказаного вузла.</para> <funcsynopsis ><funcprototype ><funcdef >array <function >edges</function ></funcdef > <paramdef ></paramdef > </funcprototype> </funcsynopsis> </listitem> </varlistentry> <varlistentry> <term >edges(тип)</term> <listitem> <para >Повертає список всіх ребер (вхідних і вихідних) вказаного вузла і вказаного типу.</para> <funcsynopsis ><funcprototype ><funcdef >array <function >edges</function ></funcdef > <paramdef >int <parameter ><replaceable >тип</replaceable ></parameter ></paramdef > </funcprototype> </funcsynopsis> </listitem> </varlistentry> <varlistentry> <term >inEdges()</term> <listitem> <para >Повертає список всіх вхідних ребер цього вузла.</para> <funcsynopsis ><funcprototype ><funcdef >array <function >inEdges</function ></funcdef > <paramdef ></paramdef > </funcprototype> </funcsynopsis> </listitem> </varlistentry> <varlistentry> <term >inEdges(тип)</term> <listitem> <para >Повертає список всіх вхідних ребер вказаного вузла і вказаного типу.</para> <funcsynopsis ><funcprototype ><funcdef >array <function >inEdges</function ></funcdef > <paramdef >int <parameter ><replaceable >тип</replaceable ></parameter ></paramdef > </funcprototype> </funcsynopsis> </listitem> </varlistentry> <varlistentry> <term >outEdges()</term> <listitem> <para >Повертає список всіх вихідних ребер цього вузла.</para> <funcsynopsis ><funcprototype ><funcdef >array <function >outEdges</function ></funcdef > <paramdef ></paramdef > </funcprototype> </funcsynopsis> </listitem> </varlistentry> <varlistentry> <term >outEdges(тип)</term> <listitem> <para >Повертає список всіх вихідних ребер цього вузла вказаного типу.</para> <funcsynopsis ><funcprototype ><funcdef >array <function >outEdges</function ></funcdef > <paramdef >int <parameter ><replaceable >тип</replaceable ></parameter ></paramdef > </funcprototype> </funcsynopsis> </listitem> </varlistentry> <varlistentry> <term >edgesTo(призначення)</term> <listitem> <para >Повертає список всіх ребер вказаного вузла до іншого вказаного вузла.</para> <funcsynopsis ><funcprototype ><funcdef >array <function >edgesTo</function ></funcdef > <paramdef >GraphNode <parameter ><replaceable >призначення</replaceable ></parameter ></paramdef > </funcprototype> </funcsynopsis> </listitem> </varlistentry> </variablelist> </sect3> </sect2> <sect2> <title >Ребро графу</title> <para >Ребро є з’єднанням між двома графічними вузлами. Ребра можуть бути спрямованими або неспрямованими, залежно від типу. </para> <sect3> <title >Властивості</title> <itemizedlist> <listitem> <para ><emphasis >width</emphasis >: </para> <para >Товщина з’єднання.</para> </listitem> <listitem> <para ><emphasis >directed</emphasis >: </para> <para >Якщо має значення true, з’єднання є спрямованим. Якщо має значення false — не спрямованим.</para> </listitem> <listitem> <para ><emphasis >from</emphasis >: </para> <para >Початок з’єднання.</para> </listitem> <listitem> <para ><emphasis >to</emphasis >: </para> <para >Кінець з’єднання.</para> </listitem> <listitem> <para ><emphasis >color</emphasis >: </para> <para >Ідентифікатор типу з’єднання.</para> </listitem> </itemizedlist> </sect3> <sect3> <title >Методи</title> <variablelist> <varlistentry> <term >remove()</term> <listitem> <para >Вилучити це з’єднання.</para> <funcsynopsis ><funcprototype ><funcdef >void <function >remove</function ></funcdef > <paramdef ></paramdef > </funcprototype> </funcsynopsis> </listitem> </varlistentry> <varlistentry> <term >add_property(назва, значення)</term> <listitem> <para >Додати до з’єднання нову властивість.</para> <funcsynopsis ><funcprototype ><funcdef >void <function >add_property</function ></funcdef > <paramdef >string <parameter ><replaceable >назва</replaceable ></parameter ></paramdef > <paramdef >string <parameter ><replaceable >значення</replaceable ></parameter ></paramdef > </funcprototype> </funcsynopsis> </listitem> </varlistentry> <varlistentry> <term >remove_property(назва)</term> <listitem> <para >Вилучити зі з’єднання наявну властивість.</para> <funcsynopsis ><funcprototype ><funcdef >void <function >remove_property</function ></funcdef > <paramdef >string <parameter ><replaceable >назва</replaceable ></parameter ></paramdef > </funcprototype> </funcsynopsis> </listitem> </varlistentry> </variablelist> </sect3> </sect2> </sect1>