# API de criação de scripts da infraestrutura de grafos

A janela de estrutura de dados permite o acesso de configuração das opções específicas da infraestrutura de Grafos. Use o Tipo de grafo para selecionar o tipo do grafo. O significado destes tipos é o seguinte:

- Grafo: Um grafo em que as mesmas arestas (relacionadas com os pontos de origem e destino) não podem existir várias vezes.

- Multigrafo: Um grafo no qual são permitidas várias arestas entre os mesmos nós (no que diz respeito aos pontos de origem e destino).

## Estrutura de dados do grafo

Um objeto de grafo armazena as informações de uma estrutura de dados do tipo Grafo.

### Propriedades

- name :

  O nome único desta estrutura de dados.

### Métodos

nodes()

  Devolve uma lista com todos os nós no grafo.

      array nodes

nodes(tipo)

  Devolve uma lista com todos os nós no grafo do tipo indicado.

      array nodes int tipo

edges()

  Devolve uma lista com todas as arestas do grafo.

      array edges

edges(tipo)

  Devolve uma lista com todas as arestas no grafo do tipo indicado.

      array edges int tipo

createNode(tipo)

  Cria um novo nó do tipo indicado e devolve o nó criado. Se o tipo não estiver registrado, nenhum nó será criado.

      GraphNode createNode int tipo

createNode()

  Cria um novo nó com o tipo padrão e devolve o nó criado.

      GraphNode createNode

createEdge(de, para, tipo)

  Cria uma aresta do nó "de" até o nó "para" do tipo indicado e devolve a aresta criada. Se o tipo não estiver registrado, nenhuma aresta será criada.

      GraphEdge createEdge GraphNode de GraphNode para int tipo

createEdge(de, para)

  Cria uma aresta do nó "de" até o nó "para" do tipo indicado e devolve a aresta criada.

      GraphEdge createEdge GraphNode de GraphNode para

distances(de)

  Devolve uma lista com as durações de caminho mais curto a partir deste nó até todos os outros nós no grafo.

      Array distances GraphNode de

## Nó do grafo

Um nó é o elemento de dados de um grafo.

### Propriedades

- width :

  O tamanho deste elemento de dados.

- x :

  A coordenada X deste elemento de dados.

- y :

  A coordenada Y deste elemento de dados.

- id :

  O identificador único deste elemento de dados.

- color :

  A cor deste elemento de dados, indicada como um valor hexadecimal.

### Métodos

neighbors()

  Devolve uma lista de todos os nós ligados a este nó. Este método respeita se as arestas são direcionais.

      array neighbors

edges()

  Devolve uma lista com todas as arestas (de entrada e saída) deste nó.

      array edges

edges(tipo)

  Devolve uma lista com todas as arestas (de entrada e saída) deste nó e com um tipo indicado.

      array edges int tipo

inEdges()

  Devolve uma lista com as arestas de entrada deste nó.

      array inEdges

inEdges(tipo)

  Devolve uma lista com todas as arestas de entrada deste nó com um tipo indicado.

      array inEdges int tipo

outEdges()

  Devolve uma lista com todas as arestas de saída deste nó.

      array outEdges

outEdges(tipo)

  Devolve uma lista com todas as arestas de saída deste nó com um tipo indicado.

      array outEdges int tipo

edgesTo(destino)

  Devolve uma lista com todas as tarefas desde este nó até o nó indicado.

      array edgesTo GraphNode destino

## Aresta do grafo

Uma Edge (aresta) é a ligação entre dois GraphNodes (nós do grafo). As arestas podem ser direcionais ou não, dependendo do seu tipo.

### Propriedades

- width :

  Largura da ligação.

- directed :

  Se for verdadeiro, a ligação é direcional. Caso contrário, não é direcional.

- from :

  Início da ligação.

- to :

  Fim da ligação

- color :

  ID do tipo de ligação.

### Métodos

remove()

  Remove esta ligação.

      void remove

add_property(nome, valor)

  Adiciona uma nova propriedade à ligação.

      void add_property string nome string valor

remove_property(nome)

  Remove uma propriedade existente da ligação.

      void remove_property string nome