# La API per a la creació d'scripts pel dorsal de grafs

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 Tipus de graf podreu seleccionar el tipus del graf. El significat d'aquests tipus és el següent:

- Graf: Graf en el que és possible que no existeixin varies vegades les mateixes arestes (pel que fa als punts d'inici i final).

- Multigraf: Graf en el que és possible que existeixin varies vegades les mateixes arestes (pel que fa als punts d'inici i final).

## Estructura de dades del graf

Un objecte de graf encapsula la informació d'una estructura de dades de tipus Graf.

### Propietats

- nom :

  El nom únic d'aquesta estructura de dades.

### Mètodes

nodes()

  Retorna una llista de tots els nodes del graf.

      array nodes

nodes(tipus)

  Retorna una llista de tots els nodes del graf del tipus especificat.

      array nodes int tipus

edges()

  Retorna una llista de totes les arestes del graf.

      array edges

edges(tipus)

  Retorna una llista de totes les arestes del graf del tipus especificat.

      array edges int tipus

createNode(tipus)

  Crea un nou node del tipus especificat i retorna el node creat. Si el tipus no està registrat, no es crea cap node.

      GraphNode createNode int tipus

createNode()

  Crea un nou node del tipus predeterminat i retorna el node creat.

      GraphNode createNode

createEdge(des_de, a, tipus)

  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.

      GraphEdge createEdge GraphNode des_de GraphNode a int tipus

createEdge(des_de, a)

  Crea una aresta del tipus per defecte que va del node «de» al node «a», i retorna l'aresta creada.

      GraphEdge createEdge GraphNode des_de GraphNode a

distances(des_de)

  Retorna una matriu amb les longituds dels camins més curts des d'aquest node a la resta de nodes del graf.

      Array distances GraphNode des_de

## Node del graf

Un node és l'element de dades d'un graf.

### Propietats

- amplada :

  La mida d'aquest element de dades.

- x :

  La coordenada x d'aquest element de dades.

- y :

  La coordenada y d'aquest element de dades.

- id :

  L'identificador únic d'aquest element de dades.

- color :

  El color d'aquest element de dades, expressat com a valor hexadecimal.

### Mètodes

neighbors()

  Retorna una llista de tots els nodes connectats a aquest node. Aquest mètode té en compte si les arestes són dirigides.

      array neighbors

edges()

  Retorna una llista de totes les arestes (entrants i sortints) d'aquest node.

      array edges

edges(tipus)

  Retorna una llista de totes les arestes (entrants i sortints) d'aquest node del tipus especificat.

      array edges int tipus

inEdges()

  Retorna una llista de les arestes entrants a aquest node.

      array inEdges

inEdges(tipus)

  Retorna una llista de les arestes del tipus especificat entrants a aquest node.

      array inEdges int tipus

outEdges()

  Retorna una llista de totes les arestes sortints d'aquest node.

      array outEdges

outEdges(tipus)

  Retorna una llista de les arestes del tipus especificat sortints d'aquest node.

      array outEdges int tipus

edgesTo(objectiu)

  Retorna una llista de les arestes d'aquest node cap al node especificat.

      array edgesTo GraphNode objectiu

## Aresta del graf

Una aresta és la connexió entre dos Nodes del graf. Les arestes poden ser dirigides o no dirigides, en funció del seu tipus.

### Propietats

- amplada :

  El gruix de la connexió.

- dirigit :

  Si és cert, la connexió és dirigida. Altrament la connexió és no dirigida.

- des_de :

  Inici de la connexió

- a :

  Final de la connexió

- color :

  ID del tipus de connexió.

### Mètodes

remove()

  Elimina aquesta connexió.

      void remove

add_property(nom, valor)

  Afegeix una nova propietat a la connexió.

      void add_property string nom string valor

remove_property(nom)

  Elimina una propietat existent de la connexió.

      void remove_property string nom