ImageEnvironmentWithGraph

class ImageEnvironmentWithGraph<T> @JvmOverloads constructor(incarnation: Incarnation<T, Euclidean2DPosition>, path: String, zoom: Double = 1.0, dx: Double = 0.0, dy: Double = 0.0, obstaclesColor: Int = Color.BLACK.rgb, roomsColor: Int = Color.BLUE.rgb) : ImageEnvironment<T> , EuclideanPhysics2DEnvironmentWithGraph<RectObstacle2D<Euclidean2DPosition>, T, ConvexPolygon, Euclidean2DPassage>

An ImageEnvironment providing an Euclidean2DNavigationGraph. The NaviGator algorithm is used to produce such graph (see generateNavigationGraph). The positions where to plant initial seeds should be specified directly in the image, marking each area of the environment with one or more pixels of a given color (defaults to blue).

Constructors

Link copied to clipboard
constructor(incarnation: Incarnation<T, Euclidean2DPosition>, path: String, zoom: Double = 1.0, dx: Double = 0.0, dy: Double = 0.0, obstaclesColor: Int = Color.BLACK.rgb, roomsColor: Int = Color.BLUE.rgb)

Properties

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
val nodes: ListSet<Node<T>>
Link copied to clipboard
@get:Nonnull
override val obstacles: List<RectObstacle2D<Euclidean2DPosition>>
Link copied to clipboard
open override val origin: Euclidean2DPosition
Link copied to clipboard

Functions

Link copied to clipboard
Link copied to clipboard
abstract fun addLayer(p0: Molecule, p1: Layer<T, Euclidean2DPosition>)
Link copied to clipboard
abstract fun addNode(p0: Node<T>, p1: Euclidean2DPosition): Boolean
Link copied to clipboard
override fun addObstacle(@Nonnull obstacle: RectObstacle2D<Euclidean2DPosition>)
Link copied to clipboard
Link copied to clipboard
open override fun farthestPositionReachable(node: Node<T>, desiredPosition: Euclidean2DPosition, hitboxRadius: Double): Euclidean2DPosition
Link copied to clipboard
open fun forEach(p0: Consumer<in Node<T>>)
Link copied to clipboard
abstract fun getDimensions(): Int
Link copied to clipboard
abstract fun getDistanceBetweenNodes(p0: Node<T>, p1: Node<T>): Double
Link copied to clipboard
open override fun getHeading(node: Node<T>): Euclidean2DPosition
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
abstract fun getLayers(): ListSet<Layer<T, Euclidean2DPosition>>
Link copied to clipboard
Link copied to clipboard
abstract fun getNeighborhood(p0: Node<T>): Neighborhood<T>
Link copied to clipboard
abstract fun getNodeByID(p0: Int): Node<T>
Link copied to clipboard
abstract fun getNodeCount(): Int
Link copied to clipboard
open override fun getNodesWithin(shape: Euclidean2DShape): List<Node<T>>
Link copied to clipboard
abstract fun getNodesWithinRange(p0: Node<T>, p1: Double): ListSet<Node<T>>
abstract fun getNodesWithinRange(p0: Euclidean2DPosition, p1: Double): ListSet<Node<T>>
Link copied to clipboard
@Nonnull
override fun getObstaclesInRange(@Nonnull center: Euclidean2DPosition, range: Double): List<RectObstacle2D<Euclidean2DPosition>>
@Nonnull
override fun getObstaclesInRange(centerx: Double, centery: Double, range: Double): List<RectObstacle2D<Euclidean2DPosition>>
Link copied to clipboard
abstract fun getOffset(): DoubleArray
Link copied to clipboard
@Nonnull
abstract fun getPosition(p0: Node<T>): Euclidean2DPosition
Link copied to clipboard
open override fun getShape(node: Node<T>): Euclidean2DShape
Link copied to clipboard
Link copied to clipboard
abstract fun getSize(): DoubleArray
Link copied to clipboard
Link copied to clipboard
open override fun hasMobileObstacles(): Boolean
Link copied to clipboard
Link copied to clipboard
abstract fun isTerminated(): Boolean
Link copied to clipboard
abstract operator override fun iterator(): MutableIterator<Node<T>>
Link copied to clipboard
open override fun makePosition(vararg coordinates: Double): Euclidean2DPosition
open override fun makePosition(vararg coordinates: Number): Euclidean2DPosition
Link copied to clipboard
open fun moveNode(node: Node<T>, direction: Euclidean2DPosition)
Link copied to clipboard
open override fun moveNodeToPosition(@Nonnull node: Node<T>, newPosition: Euclidean2DPosition)
Link copied to clipboard
@Nonnull
override fun next(@Nonnull current: Euclidean2DPosition, @Nonnull desired: Euclidean2DPosition): Euclidean2DPosition
override fun next(p0: Double, p1: Double, p2: Double, p3: Double): Euclidean2DPosition
Link copied to clipboard
fun <R> Iterable<R>.randomElement(randomGenerator: RandomGenerator): R

Returns a random element of the Iterable using the provided randomGenerator.

Link copied to clipboard
Link copied to clipboard
abstract fun removeNode(p0: Node<T>)
Link copied to clipboard
override fun removeObstacle(@Nonnull obstacle: RectObstacle2D<Euclidean2DPosition>): Boolean
Link copied to clipboard
open override fun setHeading(node: Node<T>, direction: Euclidean2DPosition)
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
fun <R> Iterable<R>.shuffled(randomGenerator: RandomGenerator): Iterable<R>

Fisher–Yates shuffle algorithm using a RandomGenerator. More information on Wikipedia.

Link copied to clipboard