# 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