# Interfaz de programación de guiones para el motor de grafos

El diálogo de las propiedades de la estructura de datos permite el acceso a la configuración de las preferencias de un determinado motor de grafos. En él puede seleccionar el Tipo de grafo. El significado de estos tipos es el siguiente:

- Grafo: grafo en el que es posible que no existan varias veces las mismas aristas (con respecto a los puntos de inicio y fin).

- Multigrafo: grafo en el que pueden existir varias veces las mismas aristas (con respecto a los puntos de inicio y fin).

## Estructura de datos del grafo

Un objeto de grafo contiene la información de una estructura de datos de tipo «Grafo».

### Propiedades

- nombre :

  El nombre único de esta estructura de datos.

### Métodos

nodes()

  Devuelve la lista de todos los nodos del grafo.

      array nodes

nodes(tipo)

  Devuelve la lista de todos los nodos del grafo del tipo indicado.

      array nodes int tipo

edges()

  Devuelve la lista de todas las aristas del grafo.

      array edges

edges(tipo)

  Devuelve la lista de todas las aristas del grafo del tipo indicado.

      array edges int tipo

createNode(tipo)

  Crea un nuevo nodo del tipo indicado y devuelve el nodo creado. Si el tipo no está registrado, no se crea ningún nodo.

      GraphNode createNode int tipo

createNode()

  Crea un nuevo nodo del tipo por omisión y devuelve el nodo creado.

      GraphNode createNode

createEdge(desde, hasta, tipo)

  Crea una arista que va del nodo «desde» hasta el nodo «hasta» del tipo especificado y devuelve la arista creada. Si el tipo no está registrado, no se creará ninguna arista.

      GraphEdge createEdge GraphNode desde GraphNode hasta int tipo

createEdge(desde, hasta)

  Crea una arista desde el nodo «desde» hasta el nodo «hasta» del tipo por omisión y devuelve la arista creada.

      GraphEdge createEdge GraphNode desde GraphNode hasta

distances(desde)

  Devuelve un array de las longitudes más cortas de las rutas desde este nodo a cualquier otro nodo del grafo.

      Array distances GraphNode desde

## Nodo del grafo

Un nodo es el elemento de datos de un grafo.

### Propiedades

- anchura :

  El tamaño de este elemento de datos.

- x :

  La coordenada X de este elemento de datos.

- y :

  La coordenada Y de este elemento de datos.

- id :

  El identificador único de este elemento de datos.

- color :

  El color de este elemento de datos indicado como valor hexadecimal.

### Métodos

neighbors()

  Devuelve la lista de todos los nodos conectados a este nodo. Este método respeta las aristas dirigidas.

      array neighbors

edges()

  Devuelve una lista de todos las aristas (entrantes y salientes) de este nodo.

      array edges

edges(tipo)

  Devuelve una lista de todas las aristas (entrantes y salientes) de este nodo del tipo especificado.

      array edges int tipo

inEdges()

  Devuelve una lista de las aristas entrantes de este nodo.

      array inEdges

inEdges(tipo)

  Devuelve una lista de todas las aristas entrantes de este nodo del tipo especificado.

      array inEdges int tipo

outEdges()

  Devuelve una lista de todas las aristas salientes de este nodo.

      array outEdges

outEdges(tipo)

  Devuelve una lista de todas las aristas salientes de este nodo del tipo especificado.

      array outEdges int tipo

edgesTo(destino)

  Devuelve una lista de todas las aristas de este nodo hasta el nodo especificado.

      array edgesTo GraphNode destino

## Arista del grafo

Una arista es la conexión de dos nodos de grafos. Las aristas pueden ser dirigidas o sin dirigir, dependiendo de su tipo.

### Propiedades

- anchura :

  El ancho de la conexión.

- dirigido :

  Si es «true», la conexión está dirigida. En caso contrario, la conexión no está dirigida.

- desde :

  Inicio de la conexión.

- hasta :

  Fin de la conexión

- color :

  ID del tipo de conexión.

### Métodos

remove()

  Eliminar esta conexión.

      void remove

add_property(nombre, valor)

  Añadir una nueva propiedad a la conexión.

      void add_property string nombre string valor

remove_property(nombre)

  Eliminar una propiedad existente de la conexión.

      void remove_property string nombre