# 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