<sect1>
<title
>Programmeringsgränssnittet för grafer</title>

<para
>Dialogrutan för datastrukturegenskaper gör det möjligt att anpassa inställningar som är specifika för grafgränssnittet. Där kan du använda <guilabel
>Graftyp</guilabel
> för att välja grafens typ. Betydelsen av typerna är följande: </para>
<itemizedlist>
    <listitem
><para
><guilabel
>Graf</guilabel
>: Graf där samma bågar (med avseende på start- och slutpunkt) inte får finnas flera gånger. </para
></listitem>
    <listitem
><para
><guilabel
>Multigraf</guilabel
>: Graf där likadana bågar (med avseende på start- och slutpunkt) kan finnas flera gånger. </para
></listitem>
</itemizedlist>

<sect2>
<title
>Grafdatastruktur</title>
<para
>Ett grafobjekt innehåller information om en datastruktur av typen <quote
>Graph</quote
>. </para>

<sect3>
<title
>Egenskaper</title>
<itemizedlist>

    <listitem>
        <para
><emphasis
>name</emphasis
> </para>
        <para
>Den här datastrukturens unika namn.</para>
    </listitem>

</itemizedlist>
</sect3>

<sect3>
<title
>Metoder</title>
<variablelist>

    <varlistentry>
    <term
>nodes()</term>
    <listitem>
        <para
>Returnera en lista med alla noder i grafen.</para>
    <funcsynopsis
><funcprototype
><funcdef
>array <function
>nodes</function
></funcdef
> <paramdef
></paramdef
> </funcprototype>
    </funcsynopsis>
    </listitem>
    </varlistentry>

    <varlistentry>
    <term
>nodes(typ)</term>
    <listitem>
        <para
>Returnera en lista med alla noder i grafen av angiven typ.</para>
    <funcsynopsis
><funcprototype
><funcdef
>array <function
>nodes</function
></funcdef
> <paramdef
>int <parameter
><replaceable
>typ</replaceable
></parameter
></paramdef
> </funcprototype>
    </funcsynopsis>
    </listitem>
    </varlistentry>

    <varlistentry>
    <term
>edges()</term>
    <listitem>
        <para
>Returnera en lista med alla bågar i grafen.</para>
    <funcsynopsis
><funcprototype
><funcdef
>array <function
>edges</function
></funcdef
> <paramdef
></paramdef
> </funcprototype>
    </funcsynopsis>
    </listitem>
    </varlistentry>

    <varlistentry>
    <term
>edges(typ)</term>
    <listitem>
        <para
>Returnera en lista med alla bågar i grafen av angiven typ.</para>
    <funcsynopsis
><funcprototype
><funcdef
>array <function
>edges</function
></funcdef
> <paramdef
>int <parameter
><replaceable
>typ</replaceable
></parameter
></paramdef
> </funcprototype>
    </funcsynopsis>
    </listitem>
    </varlistentry>

    <varlistentry>
    <term
>createNode(typ)</term>
    <listitem>
        <para
>Skapar en ny nod med den angivna typen och returnerar den skapade noden. Om typen inte är registrerad, skapas inte någon nod.</para>
    <funcsynopsis
><funcprototype
><funcdef
>GraphNode <function
>createNode</function
></funcdef
> <paramdef
>int <parameter
><replaceable
>typ</replaceable
></parameter
></paramdef
> </funcprototype>
    </funcsynopsis>
    </listitem>
    </varlistentry>

    <varlistentry>
    <term
>createNode()</term>
    <listitem>
        <para
>Skapar en ny nod med förvald typ och returnerar den skapade noden.</para>
    <funcsynopsis
><funcprototype
><funcdef
>GraphNode <function
>createNode</function
></funcdef
> <paramdef
></paramdef
> </funcprototype>
    </funcsynopsis>
    </listitem>
    </varlistentry>

    <varlistentry>
    <term
>createEdge(från, till, typ)</term>
    <listitem>
        <para
>Skapar en båge från noden "from" till noden "to" med den angivna typen och returnerar den skapade bågen Om typen inte är registrerad, skapas inte någon båge.</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
>typ</replaceable
></parameter
></paramdef
> </funcprototype>
    </funcsynopsis>
    </listitem>
    </varlistentry>

    <varlistentry>
    <term
>createEdge(från, till)</term>
    <listitem>
        <para
>Skapar en båge från noden "from" till noden "to" med förvald typ och returnerar den skapade bågen.</para>
    <funcsynopsis
><funcprototype
><funcdef
>GraphEdge <function
>createEdge</function
></funcdef
> <paramdef
>GraphNode <parameter
><replaceable
>från</replaceable
></parameter
></paramdef
> <paramdef
>GraphNode <parameter
><replaceable
>till</replaceable
></parameter
></paramdef
> </funcprototype>
    </funcsynopsis>
    </listitem>
    </varlistentry>

    <varlistentry>
    <term
>distances(från)</term>
    <listitem>
        <para
>Returnerar ett fält med kortaste väg från den här noden till alla andra noder i grafen.</para>
    <funcsynopsis
><funcprototype
><funcdef
>Array <function
>distances</function
></funcdef
> <paramdef
>GraphNode <parameter
><replaceable
>från</replaceable
></parameter
></paramdef
> </funcprototype>
    </funcsynopsis>
    </listitem>
    </varlistentry>

</variablelist>
</sect3>
</sect2>

<sect2>
<title
>Grafnod</title>
<para
>En nod är dataelementet i en graf. </para>

<sect3>
<title
>Egenskaper</title>
<itemizedlist>

    <listitem>
        <para
><emphasis
>width</emphasis
>:  </para>
        <para
>Det här dataelementets storlek.</para>
    </listitem>

    <listitem>
        <para
><emphasis
>x</emphasis
>:  </para>
        <para
>Det här dataelementets X-koordinat.</para>
    </listitem>

    <listitem>
        <para
><emphasis
>y</emphasis
>:  </para>
        <para
>Det här dataelementets Y-koordinat.</para>
    </listitem>

    <listitem>
        <para
><emphasis
>id</emphasis
>:  </para>
        <para
>Det här dataelementets unika identifierare.</para>
    </listitem>

    <listitem>
        <para
><emphasis
>color</emphasis
>:  </para>
        <para
>Det här dataelementets färg angiven som ett hexadecimalt värde.</para>
    </listitem>
</itemizedlist>
</sect3>

<sect3>
<title
>Metoder</title>
<variablelist>

    <varlistentry>
    <term
>neighbors()</term>
    <listitem>
        <para
>Returnera en lista med alla noder anslutna till den här noden. Metoden tar hänsyn till om bågar är riktade.</para>
    <funcsynopsis
><funcprototype
><funcdef
>array <function
>neighbors</function
></funcdef
> <paramdef
></paramdef
> </funcprototype>
    </funcsynopsis>
    </listitem>
    </varlistentry>

    <varlistentry>
    <term
>edges()</term>
    <listitem>
        <para
>Returnera en lista med alla bågar (inkommande och utgående) anslutna till den här noden.</para>
    <funcsynopsis
><funcprototype
><funcdef
>array <function
>edges</function
></funcdef
> <paramdef
></paramdef
> </funcprototype>
    </funcsynopsis>
    </listitem>
    </varlistentry>

    <varlistentry>
    <term
>edges(typ)</term>
    <listitem>
        <para
>Returnera en lista med alla bågar (inkommande och utgående) anslutna till den här noden av en angiven typ.</para>
    <funcsynopsis
><funcprototype
><funcdef
>array <function
>edges</function
></funcdef
> <paramdef
>int <parameter
><replaceable
>typ</replaceable
></parameter
></paramdef
> </funcprototype>
    </funcsynopsis>
    </listitem>
    </varlistentry>

    <varlistentry>
    <term
>inEdges()</term>
    <listitem>
        <para
>Returnera en lista med inkommande bågar anslutna till den här noden.</para>
    <funcsynopsis
><funcprototype
><funcdef
>array <function
>inEdges</function
></funcdef
> <paramdef
></paramdef
> </funcprototype>
    </funcsynopsis>
    </listitem>
    </varlistentry>

    <varlistentry>
    <term
>inEdges(typ)</term>
    <listitem>
        <para
>Returnera en lista med inkommande bågar anslutna till den här noden av en angiven typ.</para>
    <funcsynopsis
><funcprototype
><funcdef
>array <function
>inEdges</function
></funcdef
> <paramdef
>int <parameter
><replaceable
>typ</replaceable
></parameter
></paramdef
> </funcprototype>
    </funcsynopsis>
    </listitem>
    </varlistentry>

    <varlistentry>
    <term
>outEdges()</term>
    <listitem>
        <para
>Returnera en lista med utgående bågar anslutna till den här noden.</para>
    <funcsynopsis
><funcprototype
><funcdef
>array <function
>outEdges</function
></funcdef
> <paramdef
></paramdef
> </funcprototype>
    </funcsynopsis>
    </listitem>
    </varlistentry>

    <varlistentry>
    <term
>outEdges(typ)</term>
    <listitem>
        <para
>Returnera en lista med utgående bågar anslutna till den här noden av en angiven typ.</para>
    <funcsynopsis
><funcprototype
><funcdef
>array <function
>outEdges</function
></funcdef
> <paramdef
>int <parameter
><replaceable
>typ</replaceable
></parameter
></paramdef
> </funcprototype>
    </funcsynopsis>
    </listitem>
    </varlistentry>

    <varlistentry>
    <term
>edgesTo(mål)</term>
    <listitem>
        <para
>Returnera en lista med bågar anslutna mellan den här noden och den angivna noden.</para>
    <funcsynopsis
><funcprototype
><funcdef
>array <function
>edgesTo</function
></funcdef
> <paramdef
>GraphNode <parameter
><replaceable
>mål</replaceable
></parameter
></paramdef
> </funcprototype>
    </funcsynopsis>
    </listitem>
    </varlistentry>
</variablelist>
</sect3>
</sect2>


<sect2>
<title
>Grafbåge</title>
<para
>En båge är anslutningen mellan två grafiska noder. Bågar kan vara riktade eller oriktade, beroende på sin typ. </para>

<sect3>
<title
>Egenskaper</title>
<itemizedlist>
    <listitem>
        <para
><emphasis
>width</emphasis
>:  </para>
        <para
>Anslutningens bredd.</para>
    </listitem>

    <listitem>
        <para
><emphasis
>directed</emphasis
>:  </para>
        <para
>Om sant, är anslutningen riktat. Annars är anslutningen oriktad.</para>
    </listitem>

    <listitem>
        <para
><emphasis
>from</emphasis
>:  </para>
        <para
>Anslutningens början</para>
    </listitem>

    <listitem>
        <para
><emphasis
>to</emphasis
>:  </para>
        <para
>Anslutningens slut</para>
    </listitem>

    <listitem>
        <para
><emphasis
>color</emphasis
>:  </para>
        <para
>Anslutningstypens identifierare.</para>
    </listitem>
</itemizedlist>
</sect3>


<sect3>
<title
>Metoder</title>
<variablelist>

    <varlistentry>
    <term
>remove()</term>
    <listitem>
        <para
>Ta bort den här anslutningen.</para>
    <funcsynopsis
><funcprototype
><funcdef
>void <function
>remove</function
></funcdef
> <paramdef
></paramdef
> </funcprototype>
    </funcsynopsis>
    </listitem>
    </varlistentry>

    <varlistentry>
    <term
>add_property(namn, värde)</term>
    <listitem>
        <para
>Lägg till en ny egenskap i anslutningen.</para>
    <funcsynopsis
><funcprototype
><funcdef
>void <function
>add_property</function
></funcdef
> <paramdef
>string <parameter
><replaceable
>namn</replaceable
></parameter
></paramdef
> <paramdef
>string <parameter
><replaceable
>värde</replaceable
></parameter
></paramdef
> </funcprototype>
    </funcsynopsis>
    </listitem>
    </varlistentry>

    <varlistentry>
    <term
>remove_property(namn)</term>
    <listitem>
        <para
>Ta bort en befintlig egenskap från anslutningen.</para>
    <funcsynopsis
><funcprototype
><funcdef
>void <function
>remove_property</function
></funcdef
> <paramdef
>string <parameter
><replaceable
>namn</replaceable
></parameter
></paramdef
> </funcprototype>
    </funcsynopsis>
    </listitem>
    </varlistentry>

</variablelist>
</sect3>
</sect2>

</sect1>
