# Script API voor backend van graaf

In de dialoog voor de eigenschappen van de gegevensstructuur kunt u instellingen doen die behoren tot de backend van de graaf. Hierin, met Graaftype, kunt u het type kiezen van de graaf. De betekenis van deze typen is als volgt:

- Graaf: Graaf waarin dezelfde kanten (met dezelfde begin- en eindpunten) niet meerdere keren kunnen voorkomen.

- Multigraaf: Graaf waarin dezelfde kanten (met dezelfde begin- en eindpunten) meerdere keren kunnen voorkomen.

## Gegevensstructuur graaf

Een graafobject bevat de informatie van een gegevensstructuur van het type Graph.

### Eigenschappen

- naam :

  De unieke naam voor deze gegevensstructuur.

### Methodes

nodes()

  Tonen van alle knooppunten in de graaf.

      array nodes

nodes(type)

  Tonen van alle knooppunten in de graaf, van een opgegeven type.

      array nodes int type

edges()

  Tonen van alle kanten in de graaf.

      array edges

edges(type)

  Tonen van alle kanten in de graaf van een opgegeven type.

      array edges int type

createNode(type)

  Aanmaken van een nieuw knooppunt van het opgegeven type, en dit teruggeven. Indien het type niet wordt opgegeven, wordt het knooppunt niet aangemaakt.

      GraphNode createNode int type

createNode()

  Aanmaken van een nieuw knooppunt van het standaard type, en dit teruggeven.

      GraphNode createNode

createEdge(van, tot, type)

  Aanmaken van een kant vanaf knooppunt "vanaf" naar knooppunt "tot", van het opgegeven type, en deze teruggeven. Indien het type niet is opgegeven, wordt er geen kant aangemaakt.

      GraphEdge createEdge GraphNode van GraphNode tot int type

createEdge(van, tot)

  Aanmaken van een kant vanaf knooppunt "van" naar knooppunt "tot", van het standaard type, en deze teruggeven.

      GraphEdge createEdge GraphNode van GraphNode tot

distances(from)

  Geeft een lijst terug van de kortste weglengten vanaf dit knooppunt naar alle andere knooppunten in de graaf.

      Array distances GraphNode van

## Knooppunt van de graaf

Een knooppunt is het gegevenselement van de graaf.

### Eigenschappen

- breedte :

  De grootte van dit gegevenselement.

- x :

  De x-coördinaat van dit gegevenselement.

- y :

  De y-coördinaat van dit gegevenselement.

- id :

  Dit is de unieke naam van dit gegevenselement.

- color :

  De kleur van dit gegevenselement, uitgedrukt in een hexadecimaal getal.

### Methodes

neighbors()

  Geef een lijst terug van alle met dit knooppunt verbonden knooppunten. Deze methode houdt rekening met het eventueel gericht zijn van kanten.

      array neighbors

edges()

  Geef een lijst terug van alle kanten (inkomend en uitgaand), verbonden met dit knooppunt.

      array edges

edges(type)

  Geef een lijst terug van alle kanten (inkomend en uitgaand), verbonden met dit knooppunt, en van een opgegeven type.

      array edges int type

inEdges()

  Geef een lijst terug van alle inkomende kanten, verbonden met dit knooppunt.

      array inEdges

inEdges(type)

  Geef een lijst terug van alle inkomende kanten, verbonden met dit knooppunt, en van een opgegeven type.

      array inEdges int type

outEdges()

  Geef een lijst terug van alle uitgaande kanten, verbonden met dit knooppunt.

      array outEdges

outEdges(type)

  Geef een lijst terug van alle uitgaande kanten, verbonden met dit knooppunt, en van een opgegeven type.

      array outEdges int type

edgesTo(doel)

  Geef een lijst terug van alle kanten tussen dit knooppunt en het opgegeven knooppunt.

      array edgesTo GraphNode doel

## Graafkant

Een kant is de verbinding van twee knooppunten in de graaf. Afhankelijk van hun type kunnen kanten gericht of ongericht zijn.

### Eigenschappen

- breedte :

  De breedte van de verbinding.

- gericht :

  Indien waar, is de verbinding gericht. Anders is de verbinding niet gericht.

- van :

  Begin van de verbinding.

- tot :

  Einde van de verbinding

- color :

  Naam van het type verbinding.

### Methodes

remove()

  Deze verbinding verwijderen.

      void remove

add_property(naam, waarde)

  Een nieuwe eigenschap aan de verbinding toevoegen.

      void add_property string naam string waarde

remove_property(naam)

  Een bestaande eigenschap van de verbinding verwijderen.

      void remove_property string naam