<sect1> <title >La API per a la creació d'scripts pel dorsal de grafs</title> <para >El diàleg de propietats de l'estructura de dades permet accedir als ajustaments de configuració específics per al dorsal del graf. Allà, amb <guilabel >Tipus de graf</guilabel > podreu seleccionar el tipus del graf. El significat d'aquests tipus és el següent: </para> <itemizedlist> <listitem ><para ><guilabel >Graf</guilabel >: Graf en el que és possible que no existeixin varies vegades les mateixes arestes (pel que fa als punts d'inici i final). </para ></listitem> <listitem ><para ><guilabel >Multigraf</guilabel >: Graf en el que és possible que existeixin varies vegades les mateixes arestes (pel que fa als punts d'inici i final). </para ></listitem> </itemizedlist> <sect2> <title >Estructura de dades del graf</title> <para >Un objecte de graf encapsula la informació d'una estructura de dades de tipus <quote >Graf</quote >. </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> <sect3> <title >Mètodes</title> <variablelist> <varlistentry> <term >nodes()</term> <listitem> <para >Retorna una llista de tots els nodes del graf.</para> <funcsynopsis ><funcprototype ><funcdef >array <function >nodes</function ></funcdef > <paramdef ></paramdef > </funcprototype> </funcsynopsis> </listitem> </varlistentry> <varlistentry> <term >nodes(tipus)</term> <listitem> <para >Retorna una llista de tots els nodes del graf del tipus especificat.</para> <funcsynopsis ><funcprototype ><funcdef >array <function >nodes</function ></funcdef > <paramdef >int <parameter ><replaceable >tipus</replaceable ></parameter ></paramdef > </funcprototype> </funcsynopsis> </listitem> </varlistentry> <varlistentry> <term >edges()</term> <listitem> <para >Retorna una llista de totes les arestes del graf.</para> <funcsynopsis ><funcprototype ><funcdef >array <function >edges</function ></funcdef > <paramdef ></paramdef > </funcprototype> </funcsynopsis> </listitem> </varlistentry> <varlistentry> <term >edges(tipus)</term> <listitem> <para >Retorna una llista de totes les arestes del graf del tipus especificat.</para> <funcsynopsis ><funcprototype ><funcdef >array <function >edges</function ></funcdef > <paramdef >int <parameter ><replaceable >tipus</replaceable ></parameter ></paramdef > </funcprototype> </funcsynopsis> </listitem> </varlistentry> <varlistentry> <term >createNode(tipus)</term> <listitem> <para >Crea un nou node del tipus especificat i retorna el node creat. Si el tipus no està registrat, no es crea cap node.</para> <funcsynopsis ><funcprototype ><funcdef >GraphNode <function >createNode</function ></funcdef > <paramdef >int <parameter ><replaceable >tipus</replaceable ></parameter ></paramdef > </funcprototype> </funcsynopsis> </listitem> </varlistentry> <varlistentry> <term >createNode()</term> <listitem> <para >Crea un nou node del tipus predeterminat i retorna el node creat.</para> <funcsynopsis ><funcprototype ><funcdef >GraphNode <function >createNode</function ></funcdef > <paramdef ></paramdef > </funcprototype> </funcsynopsis> </listitem> </varlistentry> <varlistentry> <term >createEdge(des_de, a, tipus)</term> <listitem> <para >Crea una aresta del tipus especificat que va del node «de» al node «a», i retorna l'aresta creada. Si el tipus no està registrat, no es crea cap aresta.</para> <funcsynopsis ><funcprototype ><funcdef >GraphEdge <function >createEdge</function ></funcdef > <paramdef >GraphNode <parameter ><replaceable >des_de</replaceable ></parameter ></paramdef > <paramdef >GraphNode <parameter ><replaceable >a</replaceable ></parameter ></paramdef > <paramdef >int <parameter ><replaceable >tipus</replaceable ></parameter ></paramdef > </funcprototype> </funcsynopsis> </listitem> </varlistentry> <varlistentry> <term >createEdge(des_de, a)</term> <listitem> <para >Crea una aresta del tipus per defecte que va del node «de» al node «a», i retorna l'aresta creada.</para> <funcsynopsis ><funcprototype ><funcdef >GraphEdge <function >createEdge</function ></funcdef > <paramdef >GraphNode <parameter ><replaceable >des_de</replaceable ></parameter ></paramdef > <paramdef >GraphNode <parameter ><replaceable >a</replaceable ></parameter ></paramdef > </funcprototype> </funcsynopsis> </listitem> </varlistentry> <varlistentry> <term >distances(des_de)</term> <listitem> <para >Retorna una matriu amb les longituds dels camins més curts des d'aquest node a la resta de nodes del graf.</para> <funcsynopsis ><funcprototype ><funcdef >Array <function >distances</function ></funcdef > <paramdef >GraphNode <parameter ><replaceable >des_de</replaceable ></parameter ></paramdef > </funcprototype> </funcsynopsis> </listitem> </varlistentry> </variablelist> </sect3> </sect2> <sect2> <title >Node del graf</title> <para >Un node és l'element de dades d'un graf. </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> <sect3> <title >Mètodes</title> <variablelist> <varlistentry> <term >neighbors()</term> <listitem> <para >Retorna una llista de tots els nodes connectats a aquest node. Aquest mètode té en compte si les arestes són dirigides.</para> <funcsynopsis ><funcprototype ><funcdef >array <function >neighbors</function ></funcdef > <paramdef ></paramdef > </funcprototype> </funcsynopsis> </listitem> </varlistentry> <varlistentry> <term >edges()</term> <listitem> <para >Retorna una llista de totes les arestes (entrants i sortints) d'aquest node.</para> <funcsynopsis ><funcprototype ><funcdef >array <function >edges</function ></funcdef > <paramdef ></paramdef > </funcprototype> </funcsynopsis> </listitem> </varlistentry> <varlistentry> <term >edges(tipus)</term> <listitem> <para >Retorna una llista de totes les arestes (entrants i sortints) d'aquest node del tipus especificat.</para> <funcsynopsis ><funcprototype ><funcdef >array <function >edges</function ></funcdef > <paramdef >int <parameter ><replaceable >tipus</replaceable ></parameter ></paramdef > </funcprototype> </funcsynopsis> </listitem> </varlistentry> <varlistentry> <term >inEdges()</term> <listitem> <para >Retorna una llista de les arestes entrants a aquest node.</para> <funcsynopsis ><funcprototype ><funcdef >array <function >inEdges</function ></funcdef > <paramdef ></paramdef > </funcprototype> </funcsynopsis> </listitem> </varlistentry> <varlistentry> <term >inEdges(tipus)</term> <listitem> <para >Retorna una llista de les arestes del tipus especificat entrants a aquest node.</para> <funcsynopsis ><funcprototype ><funcdef >array <function >inEdges</function ></funcdef > <paramdef >int <parameter ><replaceable >tipus</replaceable ></parameter ></paramdef > </funcprototype> </funcsynopsis> </listitem> </varlistentry> <varlistentry> <term >outEdges()</term> <listitem> <para >Retorna una llista de totes les arestes sortints d'aquest node.</para> <funcsynopsis ><funcprototype ><funcdef >array <function >outEdges</function ></funcdef > <paramdef ></paramdef > </funcprototype> </funcsynopsis> </listitem> </varlistentry> <varlistentry> <term >outEdges(tipus)</term> <listitem> <para >Retorna una llista de les arestes del tipus especificat sortints d'aquest node.</para> <funcsynopsis ><funcprototype ><funcdef >array <function >outEdges</function ></funcdef > <paramdef >int <parameter ><replaceable >tipus</replaceable ></parameter ></paramdef > </funcprototype> </funcsynopsis> </listitem> </varlistentry> <varlistentry> <term >edgesTo(objectiu)</term> <listitem> <para >Retorna una llista de les arestes d'aquest node cap al node especificat.</para> <funcsynopsis ><funcprototype ><funcdef >array <function >edgesTo</function ></funcdef > <paramdef >GraphNode <parameter ><replaceable >objectiu</replaceable ></parameter ></paramdef > </funcprototype> </funcsynopsis> </listitem> </varlistentry> </variablelist> </sect3> </sect2> <sect2> <title >Aresta del graf</title> <para >Una aresta és la connexió entre dos Nodes del graf. Les arestes poden ser dirigides o no dirigides, en funció del seu tipus. </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>