<sect1 id="scripting-data-structure">
<title
>Interfaz de programación de guiones para todas las estructuras de datos</title>
<sect2>
<title
>Objeto de estructura de datos abstractos</title>
<para
>La estructura de datos abstractos define una conjunto de elementos de datos y posibles conexiones entre ellos; este es el prototipo para cualquier otra estructura de datos. Las estructuras de datos se identifican por sus nombres. Suponiendo que ha creado una estructura de datos con el nombre <literal
>testgraph</literal
>, puede acceder a ella escribiendo su identificador. Por ejemplo, para obtener un array con todos los elementos de datos de la estructura de datos indicada, puede escribir <literal
>testgraph.list_nodes()</literal
> en el guion. </para>

<sect3>
<title
>Propiedades</title>
<itemizedlist>
    <listitem>
        <para
><emphasis
>nombre</emphasis
> : </para>
        <para
>El nombre único de esta estructura de datos.</para>
    </listitem>
</itemizedlist>
</sect3>
</sect2>

<sect2>
<title
>Datos abstractos</title>
<para
>Un elemento de datos abstractos es una unidad de información que pertenece a una estructura de datos abstractos y está posiblemente conectado a otros elementos de datos mediante punteros. </para>

<sect3>
<title
>Propiedades</title>
<itemizedlist>
    <listitem>
        <para
><emphasis
>anchura</emphasis
> : </para>
        <para
>El tamaño de este elemento de datos.</para>
    </listitem>

    <listitem>
        <para
><emphasis
>x</emphasis
> : </para>
        <para
>La coordenada X de este elemento de datos.</para>
    </listitem>

    <listitem>
        <para
><emphasis
>y</emphasis
> : </para>
        <para
>La coordenada Y de este elemento de datos.</para>
    </listitem>

    <listitem>
        <para
><emphasis
>id</emphasis
> : </para>
        <para
>El identificador único de este elemento de datos.</para>
    </listitem>

    <listitem>
        <para
><emphasis
>color</emphasis
> : </para>
        <para
>El color de este elemento de datos indicado como valor hexadecimal.</para>
    </listitem>
</itemizedlist>
</sect3>
</sect2>


<sect2>
<title
>Puntero abstracto</title>
<para
>Un puntero conecta dos elementos de datos y puede contener información en sus propiedades. </para>
<sect3>
<title
>Propiedades</title>
<itemizedlist>
    <listitem>
        <para
><emphasis
>anchura</emphasis
> : </para>
        <para
>El ancho de la conexión.</para>
    </listitem>

    <listitem>
        <para
><emphasis
>dirigido</emphasis
> : </para>
        <para
>Si es «true», la conexión está dirigida. En caso contrario, la conexión no está dirigida.</para>
    </listitem>

    <listitem>
        <para
><emphasis
>desde</emphasis
> : </para>
        <para
>Inicio de la conexión.</para>
    </listitem>

    <listitem>
        <para
><emphasis
>hasta</emphasis
> : </para>
        <para
>Fin de la conexión</para>
    </listitem>

    <listitem>
        <para
><emphasis
>color</emphasis
> : </para>
        <para
>ID del tipo de conexión.</para>
    </listitem>
</itemizedlist>
</sect3>


<sect3>
<title
>Métodos</title>
<variablelist>

    <varlistentry>
    <term
>remove()</term>
    <listitem>
        <para
>Eliminar esta conexión.</para>
    <funcsynopsis
><funcprototype
><funcdef
>void <function
>remove</function
></funcdef
> <paramdef
></paramdef
> </funcprototype>
    </funcsynopsis>
    </listitem>
    </varlistentry>

    <varlistentry>
    <term
>add_property(nombre, valor)</term>
    <listitem>
        <para
>Añadir una nueva propiedad a la conexión.</para>
    <funcsynopsis
><funcprototype
><funcdef
>void <function
>add_property</function
></funcdef
> <paramdef
>string <parameter
><replaceable
>nombre</replaceable
></parameter
></paramdef
> <paramdef
>string <parameter
><replaceable
>valor</replaceable
></parameter
></paramdef
> </funcprototype>
    </funcsynopsis>
    </listitem>
    </varlistentry>

    <varlistentry>
    <term
>remove_property(nombre)</term>
    <listitem>
        <para
>Eliminar una propiedad existente de la conexión.</para>
    <funcsynopsis
><funcprototype
><funcdef
>void <function
>remove_property</function
></funcdef
> <paramdef
>string <parameter
><replaceable
>nombre</replaceable
></parameter
></paramdef
> </funcprototype>
    </funcsynopsis>
    </listitem>
    </varlistentry>
</variablelist>
</sect3>

</sect2>
</sect1>
