<sect1 id="scripting-data-structure">
<title
>La API per a la creació d'scripts per a cada estructura de dades</title>
<sect2>
<title
>Objecte d'estructura de dades abstracte</title>
<para
>L'estructura de dades abstracta defineix un conjunt d'elements de dades i les possibles connexions entre ells, aquest és el prototip de cada altra estructura de dades. Les estructures de dades s'identifiquen pels seus noms. Assumint que heu creat una estructura de dades amb el nom <literal
>testgraph</literal
>, llavors podeu accedir a l'estructura de dades simplement escrivint aquest identificador. Per exemple, per obtenir una matriu amb tots els elements de dades a l'estructura de dades indicada, podeu escriure <literal
>testgraph.list_nodes();</literal
> a l'script. </para>

<sect3>
<title
>Propietats</title>
<itemizedlist>
    <listitem>
        <para
><emphasis
>nom</emphasis
> : </para>
        <para
>El nom únic d'aquesta estructura de dades.</para>
    </listitem>
</itemizedlist>
</sect3>
</sect2>

<sect2>
<title
>Dades abstractes</title>
<para
>Un element abstracte de dades és una unitat d'informació que pertany a una estructura abstracta de dades i possiblement està connectat a altres elements a través d'apuntadors. </para>

<sect3>
<title
>Propietats</title>
<itemizedlist>
    <listitem>
        <para
><emphasis
>amplada</emphasis
> : </para>
        <para
>La mida d'aquest element de dades.</para>
    </listitem>

    <listitem>
        <para
><emphasis
>x</emphasis
> : </para>
        <para
>La coordenada x d'aquest element de dades.</para>
    </listitem>

    <listitem>
        <para
><emphasis
>y</emphasis
> : </para>
        <para
>La coordenada y d'aquest element de dades.</para>
    </listitem>

    <listitem>
        <para
><emphasis
>id</emphasis
> : </para>
        <para
>L'identificador únic d'aquest element de dades.</para>
    </listitem>

    <listitem>
        <para
><emphasis
>color</emphasis
> : </para>
        <para
>El color d'aquest element de dades, expressat com a valor hexadecimal.</para>
    </listitem>
</itemizedlist>
</sect3>
</sect2>


<sect2>
<title
>Apuntador abstracte</title>
<para
>Un apuntador connecta dos elements de dades i pot retenir ell mateix informació en les seves propietats. </para>
<sect3>
<title
>Propietats</title>
<itemizedlist>
    <listitem>
        <para
><emphasis
>amplada</emphasis
> : </para>
        <para
>El gruix de la connexió.</para>
    </listitem>

    <listitem>
        <para
><emphasis
>dirigit</emphasis
> : </para>
        <para
>Si és cert, la connexió és dirigida. Altrament la connexió és no dirigida.</para>
    </listitem>

    <listitem>
        <para
><emphasis
>des_de</emphasis
> : </para>
        <para
>Inici de la connexió</para>
    </listitem>

    <listitem>
        <para
><emphasis
>a</emphasis
> : </para>
        <para
>Final de la connexió</para>
    </listitem>

    <listitem>
        <para
><emphasis
>color</emphasis
> : </para>
        <para
>ID del tipus de connexió.</para>
    </listitem>
</itemizedlist>
</sect3>


<sect3>
<title
>Mètodes</title>
<variablelist>

    <varlistentry>
    <term
>remove()</term>
    <listitem>
        <para
>Elimina aquesta connexió.</para>
    <funcsynopsis
><funcprototype
><funcdef
>void <function
>remove</function
></funcdef
> <paramdef
></paramdef
> </funcprototype>
    </funcsynopsis>
    </listitem>
    </varlistentry>

    <varlistentry>
    <term
>add_property(nom, valor)</term>
    <listitem>
        <para
>Afegeix una nova propietat a la connexió.</para>
    <funcsynopsis
><funcprototype
><funcdef
>void <function
>add_property</function
></funcdef
> <paramdef
>string <parameter
><replaceable
>nom</replaceable
></parameter
></paramdef
> <paramdef
>string <parameter
><replaceable
>valor</replaceable
></parameter
></paramdef
> </funcprototype>
    </funcsynopsis>
    </listitem>
    </varlistentry>

    <varlistentry>
    <term
>remove_property(nom)</term>
    <listitem>
        <para
>Elimina una propietat existent de la connexió.</para>
    <funcsynopsis
><funcprototype
><funcdef
>void <function
>remove_property</function
></funcdef
> <paramdef
>string <parameter
><replaceable
>nom</replaceable
></parameter
></paramdef
> </funcprototype>
    </funcsynopsis>
    </listitem>
    </varlistentry>
</variablelist>
</sect3>

</sect2>
</sect1>
