# Graafi taustaprogrammi skriptimise API

Andmestruktuuri omaduste dialoog võimaldab kasutada graafi taustaprogrammile eripäraseid seadistusi. Graafi tüüp võimaldab valida graafi tüübi. See võib olla üks järgmistest:

- Graaf: graaf, milles ei saa mitu korda esineda samad seosed (mis on määratud algus- ja lõpp-punktiga).

- Multigraaf: graaf, milles saavad mitu korda esineda samad seosed (mis on määratud algus- ja lõpp-punktiga).

## Graafi andmestruktuur

Graafi objektid sisaldavad teavet andmestruktuurist tüübiga Graph.

### Omadused

- name :

  Andmestruktuuri unikaalne nimi.

### Meetodid

nodes()

- Graafi kõigi tippude loendi tagastamine.

      array nodes

nodes(tüüp)

- Graafi kõigi määratud tüübiga tippude loendi tagastamine.

      array nodes int tüüp

edges()

- Graafi kõigi seoste loendi tagastamine.

      array edges

edges(tüüp)

- Graafi kõigi määratud tüübiga seoste loendi tagastamine.

      array edges int tüüp

createNode(tüüp)

- Uue määratud tüübiga tipu loomine ja loodud tipu tagastamine. Kui tüüp ei ole registreeritud, tippu ei looda.

      GraphNode createNode int tüüp

createNode()

- Uue vaikimisi tüübiga tipu loomine ja loodud tipu tagastamine.

      GraphNode createNode

createEdge(algus, lõpp, tüüp)

- Määratud tüübiga seose loomine tipust "algus" tipuni "lõpp" ja loodud seose tagastamine. Kui tüüp ei ole registreeritud, seost ei looda.

      GraphEdge createEdge GraphNode algus GraphNode lõpp int tüüp

createEdge(algus, lõpp)

- Vaikimis tüübiga seose loomine tipust "algus" tipuni "lõpp" ja loodud seose tagastamine.

      GraphEdge createEdge GraphNode algus GraphNode lõpp

distances(algus)

- Lühimate vahemaade massiivi tagastamine sellest tipust graafi kõigi teiste tippudeni.

      Array distances GraphNode algus

## Graafi tipp

Tipp on graafi andmeelement.

### Omadused

- width :

  Andmeelemendi suurus.

- x :

  Andmeelemendi X-koordinaat.

- y :

  Andmeelemendi Y-koordinaat.

- id :

  Andmeelemendi unikaalne identifikaator.

- color :

  Andmeelemendi värv kuueteistkümnendkoodis väärtusena.

### Meetodid

neighbors()

- Kõigi selle tipuga seotud tippude loendi tagastamine. Meetod arvestab, kas seosed on orienteeritud.

      array neighbors

edges()

- Selle tipu kõigi seoste (sisenevate ja väljuvate) loendi tagastamine.

      array edges

edges(tüüp)

- Selle määratud tüübiga tipu kõigi seoste (sisenevate ja väljuvate) loendi tagastamine.

      array edges int tüüp

inEdges()

- Selle tipu sisenevate seoste loendi tagastamine.

      array inEdges

inEdges(tüüp)

- Selle määratud tüübiga tipu kõigi sisenevate seoste loendi tagastamine.

      array inEdges int tüüp

outEdges()

- Selle tipu väljuvate seoste loendi tagastamine.

      array outEdges

outEdges(tüüp)

- Selle määratud tüübiga tipu kõigi väljuvate seoste loendi tagastamine.

      array outEdges int tüüp

edgesTo(siht)

- Selle tipu ja määratud tipu kõigi seoste loendi tagastamine.

      array edgesTo GraphNode siht

## Graafi seos

Seos on kahe graafitipu ühendus. Seosed võivad sõltuvalt tüübist olla orienteeritud või orienteerimata.

### Omadused

- width :

  Ühenduse laius.

- directed :

  Kui see on tõene, on ühendus orienteeritud, vastasel juhul orienteerimata.

- from :

  Ühenduse algus.

- to :

  Ühenduse lõpp.

- color :

  Ühenduse tüübi ID.

### Meetodid

remove()

- Ühenduse eemaldamine.

      void remove

add_property(nimi, väärtus)

- Uue omaduse lisamine ühendusele.

      void add_property string nimi string väärtus

remove_property(nimi)

- Olemasoleva omaduse eemaldamine ühenduselt.

      void remove_property string nimi