<sect1> <title >API di scripting per il motore dei grafi</title> <para >La finestra delle proprietà delle strutture di dati permette di accedere alle impostazioni di configurazione proprie del motore dei grafi. Lì puoi selezionare il <guilabel >Tipo del grafo</guilabel >. Il significato di questi tipi è come segue: </para> <itemizedlist> <listitem ><para ><guilabel >Grafo</guilabel >: grafo in cui non possono esistere più archi con gli stessi archi punti iniziale e finale. </para ></listitem> <listitem ><para ><guilabel >Multigrafo</guilabel >: grafo in cui possono esistere più archi con gli stessi archi punti iniziale e finale. </para ></listitem> </itemizedlist> <sect2> <title >Struttura di dati dei grafi</title> <para >Un oggetto grafo contiene le informazioni di una struttura di dati del tipo <quote >Grafo</quote >. </para> <sect3> <title >Proprietà</title> <itemizedlist> <listitem> <para ><emphasis >name</emphasis >: </para> <para >Il nome univoco di questa struttura di dati.</para> </listitem> </itemizedlist> </sect3> <sect3> <title >Metodi</title> <variablelist> <varlistentry> <term >nodes()</term> <listitem> <para >Restituisci un elenco di tutti i nodi nel grafo.</para> <funcsynopsis ><funcprototype ><funcdef >array <function >nodes</function ></funcdef > <paramdef ></paramdef > </funcprototype> </funcsynopsis> </listitem> </varlistentry> <varlistentry> <term >nodes(tipo)</term> <listitem> <para >Restituisci un elenco di tutti i nodi nel grafo del tipo specificato.</para> <funcsynopsis ><funcprototype ><funcdef >array <function >nodes</function ></funcdef > <paramdef >int <parameter ><replaceable >tipo</replaceable ></parameter ></paramdef > </funcprototype> </funcsynopsis> </listitem> </varlistentry> <varlistentry> <term >edges()</term> <listitem> <para >Restituisci un elenco di tutti gli archi nel grafo.</para> <funcsynopsis ><funcprototype ><funcdef >array <function >edges</function ></funcdef > <paramdef ></paramdef > </funcprototype> </funcsynopsis> </listitem> </varlistentry> <varlistentry> <term >edges(tipo)</term> <listitem> <para >Restituisci un elenco di tutti gli archi nel grafo del tipo specificato.</para> <funcsynopsis ><funcprototype ><funcdef >array <function >edges</function ></funcdef > <paramdef >int <parameter ><replaceable >tipo</replaceable ></parameter ></paramdef > </funcprototype> </funcsynopsis> </listitem> </varlistentry> <varlistentry> <term >createNode(tipo)</term> <listitem> <para >Crea un nuovo nodo del tipo specificato e restituiscilo. Se il tipo non è registrato, non viene creato nessun nodo.</para> <funcsynopsis ><funcprototype ><funcdef >GraphNode <function >createNode</function ></funcdef > <paramdef >int <parameter ><replaceable >tipo</replaceable ></parameter ></paramdef > </funcprototype> </funcsynopsis> </listitem> </varlistentry> <varlistentry> <term >createNode()</term> <listitem> <para >Crea un nuovo nodo di tipo predefinito e restituiscilo.</para> <funcsynopsis ><funcprototype ><funcdef >GraphNode <function >createNode</function ></funcdef > <paramdef ></paramdef > </funcprototype> </funcsynopsis> </listitem> </varlistentry> <varlistentry> <term >createEdge(da, a, tipo)</term> <listitem> <para >Crea un arco dal nodo <quote >da</quote > al nodo <quote >a</quote > del tipo specificato e restituiscilo. Se il tipo non è registrato, non viene creato nessun arco.</para> <funcsynopsis ><funcprototype ><funcdef >GraphEdge <function >createEdge</function ></funcdef > <paramdef >GraphNode <parameter ><replaceable >da</replaceable ></parameter ></paramdef > <paramdef >GraphNode <parameter ><replaceable >a</replaceable ></parameter ></paramdef > <paramdef >int <parameter ><replaceable >tipo</replaceable ></parameter ></paramdef > </funcprototype> </funcsynopsis> </listitem> </varlistentry> <varlistentry> <term >createEdge(da, a)</term> <listitem> <para >Crea un arco dal nodo <quote >da</quote > al nodo <quote >a</quote > di tipo predefinito e restituiscilo.</para> <funcsynopsis ><funcprototype ><funcdef >GraphEdge <function >createEdge</function ></funcdef > <paramdef >GraphNode <parameter ><replaceable >da</replaceable ></parameter ></paramdef > <paramdef >GraphNode <parameter ><replaceable >a</replaceable ></parameter ></paramdef > </funcprototype> </funcsynopsis> </listitem> </varlistentry> <varlistentry> <term >distances(da)</term> <listitem> <para >Restituisce un elenco delle lunghezza minime di percorso da questo nodo a ogni altro nodo del grafo.</para> <funcsynopsis ><funcprototype ><funcdef >Array <function >distances</function ></funcdef > <paramdef >GraphNode <parameter ><replaceable >da</replaceable ></parameter ></paramdef > </funcprototype> </funcsynopsis> </listitem> </varlistentry> </variablelist> </sect3> </sect2> <sect2> <title >Nodo del grafo</title> <para >Un nodo è l'elemento di dati di un grafo. </para> <sect3> <title >Proprietà</title> <itemizedlist> <listitem> <para ><emphasis >width</emphasis >: </para> <para >La dimensione di questo elemento di dati.</para> </listitem> <listitem> <para ><emphasis >x</emphasis >: </para> <para >La coordinata X di questo elemento di dati.</para> </listitem> <listitem> <para ><emphasis >y</emphasis >: </para> <para >La coordinata Y di questo elemento di dati.</para> </listitem> <listitem> <para ><emphasis >id</emphasis >: </para> <para >L'identificativo univoco di questo elemento di dati.</para> </listitem> <listitem> <para ><emphasis >color</emphasis >: </para> <para >Il colore di questo elemento di dati, indicato come valore esadecimale.</para> </listitem> </itemizedlist> </sect3> <sect3> <title >Metodi</title> <variablelist> <varlistentry> <term >neighbors()</term> <listitem> <para >Restituisci un elenco di tutti i nodi collegati a questo. Questo metodo rispetta l'eventuale direzionalità degli archi.</para> <funcsynopsis ><funcprototype ><funcdef >array <function >neighbors</function ></funcdef > <paramdef ></paramdef > </funcprototype> </funcsynopsis> </listitem> </varlistentry> <varlistentry> <term >edges()</term> <listitem> <para >Restituisci un elenco di tutti gli archi (entranti e uscenti) di questo nodo.</para> <funcsynopsis ><funcprototype ><funcdef >array <function >edges</function ></funcdef > <paramdef ></paramdef > </funcprototype> </funcsynopsis> </listitem> </varlistentry> <varlistentry> <term >edges(tipo)</term> <listitem> <para >Restituisci un elenco di tutti gli archi (entranti e uscenti) di questo nodo del tipo specificato.</para> <funcsynopsis ><funcprototype ><funcdef >array <function >edges</function ></funcdef > <paramdef >int <parameter ><replaceable >tipo</replaceable ></parameter ></paramdef > </funcprototype> </funcsynopsis> </listitem> </varlistentry> <varlistentry> <term >inEdges()</term> <listitem> <para >Restituisci un elenco degli archi entranti in questo nodo.</para> <funcsynopsis ><funcprototype ><funcdef >array <function >inEdges</function ></funcdef > <paramdef ></paramdef > </funcprototype> </funcsynopsis> </listitem> </varlistentry> <varlistentry> <term >inEdges(tipo)</term> <listitem> <para >Restituisci un elenco di tutti gli archi entranti in questo nodo del tipo specificato.</para> <funcsynopsis ><funcprototype ><funcdef >array <function >inEdges</function ></funcdef > <paramdef >int <parameter ><replaceable >tipo</replaceable ></parameter ></paramdef > </funcprototype> </funcsynopsis> </listitem> </varlistentry> <varlistentry> <term >outEdges()</term> <listitem> <para >Restituisci un elenco di tutti gli archi uscenti da questo nodo.</para> <funcsynopsis ><funcprototype ><funcdef >array <function >outEdges</function ></funcdef > <paramdef ></paramdef > </funcprototype> </funcsynopsis> </listitem> </varlistentry> <varlistentry> <term >outEdges(tipo)</term> <listitem> <para >Restituisci un elenco di tutti gli archi uscenti da questo nodo del tipo specificato.</para> <funcsynopsis ><funcprototype ><funcdef >array <function >outEdges</function ></funcdef > <paramdef >int <parameter ><replaceable >tipo</replaceable ></parameter ></paramdef > </funcprototype> </funcsynopsis> </listitem> </varlistentry> <varlistentry> <term >edgesTo(destinazione)</term> <listitem> <para >Restituisci un elenco di tutti gli archi di questo nodo al nodo specificato.</para> <funcsynopsis ><funcprototype ><funcdef >array <function >edgesTo</function ></funcdef > <paramdef >GraphNode <parameter ><replaceable >destinazione</replaceable ></parameter ></paramdef > </funcprototype> </funcsynopsis> </listitem> </varlistentry> </variablelist> </sect3> </sect2> <sect2> <title >Arco del grafo</title> <para >Un arco è la connessione di due nodi del grafo. Gli archi possono essere direzionali o meno, a seconda del loro stile. </para> <sect3> <title >Proprietà</title> <itemizedlist> <listitem> <para ><emphasis >width</emphasis >: </para> <para >Lo spessore della connessione.</para> </listitem> <listitem> <para ><emphasis >directed</emphasis >: </para> <para >Se vero, la connessione è direzionale, altrimenti non lo è.</para> </listitem> <listitem> <para ><emphasis >from</emphasis >: </para> <para >Inizio della connessione.</para> </listitem> <listitem> <para ><emphasis >to</emphasis >: </para> <para >Fine della connessione.</para> </listitem> <listitem> <para ><emphasis >color</emphasis >: </para> <para >Identificativo del tipo di connessione.</para> </listitem> </itemizedlist> </sect3> <sect3> <title >Metodi</title> <variablelist> <varlistentry> <term >remove()</term> <listitem> <para >Rimuovi questa connessione.</para> <funcsynopsis ><funcprototype ><funcdef >void <function >remove</function ></funcdef > <paramdef ></paramdef > </funcprototype> </funcsynopsis> </listitem> </varlistentry> <varlistentry> <term >add_property(nome, valore)</term> <listitem> <para >Aggiungi una nuova proprietà alla connessione.</para> <funcsynopsis ><funcprototype ><funcdef >void <function >add_property</function ></funcdef > <paramdef >string <parameter ><replaceable >nome</replaceable ></parameter ></paramdef > <paramdef >string <parameter ><replaceable >valore</replaceable ></parameter ></paramdef > </funcprototype> </funcsynopsis> </listitem> </varlistentry> <varlistentry> <term >remove_property(nome)</term> <listitem> <para >Rimuovi una proprietà presente dalla connessione.</para> <funcsynopsis ><funcprototype ><funcdef >void <function >remove_property</function ></funcdef > <paramdef >string <parameter ><replaceable >nome</replaceable ></parameter ></paramdef > </funcprototype> </funcsynopsis> </listitem> </varlistentry> </variablelist> </sect3> </sect2> </sect1>