BaseNavigationGraph

open class BaseNavigationGraph<V : Vector<V>, A : Transformation<V>, N : ConvexShape<V, A>, E>(vertexSupplier: Supplier<N>?, edgeSupplier: Supplier<E>?, graphType: GraphType) : AbstractBaseGraph<N, E> , NavigationGraph<V, A, N, E>

An implementation of NavigationGraph, deriving from AbstractBaseGraph. The user can specify the GraphType so as to obtain a custom graph (e.g. weighted or not, directed or undirected, etc). AbstractBaseGraph guarantees deterministic ordering for the collection it maintains, as stated in its api documentation. Note that vertices and edges are used as keys inside AbstractBaseGraph, so when choosing their types, you must follow these rules:

  • You must follow the contract defined in java.lang.Object for both equals and hashCode.

  • In particular, if you override either equals or hashCode, you must override them both.

  • Your implementation for hashCode must produce a value which does not change over the lifetime of the object. Further information available here.

Inheritors

Constructors

Link copied to clipboard
constructor(edgeClass: Class<out E>, directed: Boolean)
constructor(vertexSupplier: Supplier<N>?, edgeSupplier: Supplier<E>?, graphType: GraphType)

Properties

Link copied to clipboard
Link copied to clipboard
val type: GraphType
Link copied to clipboard

Functions

Link copied to clipboard
abstract fun addEdge(p0: N, p1: N): E
abstract fun addEdge(p0: N, p1: N, p2: E): Boolean
Link copied to clipboard
abstract fun addVertex(): N
abstract fun addVertex(p0: N): Boolean
Link copied to clipboard
open override fun clone(): Any
Link copied to clipboard
abstract fun containsEdge(p0: E): Boolean
abstract fun containsEdge(p0: N, p1: N): Boolean
Link copied to clipboard
abstract fun containsVertex(p0: N): Boolean
Link copied to clipboard
abstract fun degreeOf(p0: N): Int
Link copied to clipboard
abstract fun edgeSet(): MutableSet<E>
Link copied to clipboard
abstract fun edgesOf(p0: N): MutableSet<E>
Link copied to clipboard
abstract fun getAllEdges(p0: N, p1: N): MutableSet<E>
Link copied to clipboard
abstract fun getEdge(p0: N, p1: N): E
Link copied to clipboard
abstract fun getEdgeSource(p0: E): N
Link copied to clipboard
abstract fun getEdgeTarget(p0: E): N
Link copied to clipboard
abstract fun getEdgeWeight(p0: E): Double
Link copied to clipboard
abstract fun incomingEdgesOf(p0: N): MutableSet<E>
Link copied to clipboard
abstract fun inDegreeOf(p0: N): Int
Link copied to clipboard
open fun iterables(): GraphIterables<N, E>
Link copied to clipboard
open fun nodeContaining(position: V): N?
Link copied to clipboard
abstract fun outDegreeOf(p0: N): Int
Link copied to clipboard
abstract fun outgoingEdgesOf(p0: N): MutableSet<E>
Link copied to clipboard
fun <V> Graph<V, *>.pathExists(source: V, sink: V): Boolean

Checks whether a path exists between source and sink. DijkstraShortestPath is used instead of org.jgrapht.alg.connectivity.ConnectivityInspector.pathExists, because, in case of directed graph, the latter checks whether the given vertices lay in the same weakly connected component, which is not the desired behavior. As unweighted graphs have a default edge weight of 1.0, shortest path algorithms can always be applied meaningfully.

Link copied to clipboard
abstract fun removeAllEdges(p0: MutableCollection<out E>): Boolean
abstract fun removeAllEdges(p0: N, p1: N): MutableSet<E>
Link copied to clipboard
Link copied to clipboard
abstract fun removeEdge(p0: E): Boolean
abstract fun removeEdge(p0: N, p1: N): E
Link copied to clipboard
abstract fun removeVertex(p0: N): Boolean
Link copied to clipboard
abstract fun setEdgeWeight(p0: E, p1: Double)
open fun setEdgeWeight(p0: N, p1: N, p2: Double)
Link copied to clipboard
abstract fun vertexSet(): MutableSet<N>