# 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