ContinuousPhysics2DEnvironment

Constructors

Link copied to clipboard
constructor(incarnation: Incarnation<T, Euclidean2DPosition>)

Properties

Link copied to clipboard
Link copied to clipboard
val nodes: ListSet<Node<T>>
Link copied to clipboard
open override val origin: Euclidean2DPosition
Link copied to clipboard

A factory of shapes compatible with this environment.

Functions

Link copied to clipboard
open override fun addGlobalReaction(p0: GlobalReaction<T>)
Link copied to clipboard
override fun addLayer(p0: Molecule, p1: Layer<T, Euclidean2DPosition>)
Link copied to clipboard
override fun addNode(p0: Node<T>, p1: Euclidean2DPosition): Boolean
Link copied to clipboard
Link copied to clipboard
open override fun farthestPositionReachable(node: Node<T>, desiredPosition: Euclidean2DPosition, hitboxRadius: Double): Euclidean2DPosition

Computes the farthest position reachable by a node towards a desiredPosition, avoiding node overlapping. If no node is located in between, desiredPosition is returned. Otherwise, the first position where the node collides with someone else is returned. For collision purposes, hitboxes are used: each node is given a circular hitbox of radius equal to its shape's radius (shapeless nodes can't cause overlapping). The client can specify a different radius for the hitbox of the moving node.

Link copied to clipboard
override fun forEach(p0: Consumer<in Node<T>>)
Link copied to clipboard
override fun getDimensions(): Int
Link copied to clipboard
override fun getDistanceBetweenNodes(p0: Node<T>, p1: Node<T>): Double
Link copied to clipboard
open override fun getHeading(node: Node<T>): Euclidean2DPosition

Gets the heading of a node as a direction vector.

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
override fun getLayers(): ListSet<Layer<T, Euclidean2DPosition>>
Link copied to clipboard
Link copied to clipboard
override fun getNeighborhood(@Nonnull p0: Node<T>): Neighborhood<T>
Link copied to clipboard
override fun getNodeByID(p0: Int): Node<T>
Link copied to clipboard
override fun getNodeCount(): Int
Link copied to clipboard
open override fun getNodesWithin(shape: Euclidean2DShape): List<Node<T>>

Gets all nodes whose shape.intersect is true for the given shape.

Link copied to clipboard
override fun getNodesWithinRange(p0: Node<T>, p1: Double): ListSet<Node<T>>
override fun getNodesWithinRange(p0: Euclidean2DPosition, p1: Double): ListSet<Node<T>>
Link copied to clipboard
override fun getOffset(): DoubleArray
Link copied to clipboard
@Nonnull
override fun getPosition(p0: Node<T>): Euclidean2DPosition
Link copied to clipboard
open override fun getShape(node: Node<T>): Euclidean2DShape

Gets the shape of a node relatively to its position and heading in the environment.

Link copied to clipboard
@Nonnull
override fun getSimulation(): Simulation<T, Euclidean2DPosition>
Link copied to clipboard
override fun getSize(): DoubleArray
Link copied to clipboard
open override fun getSizeInDistanceUnits(): DoubleArray
Link copied to clipboard
override fun isTerminated(): Boolean
Link copied to clipboard
@Nonnull
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

Creates an euclidean position from the given coordinates.

Link copied to clipboard
open fun moveNode(node: Node<T>, direction: Euclidean2DPosition)
Link copied to clipboard
open override fun moveNodeToPosition(node: Node<T>, newPosition: Euclidean2DPosition)

Moves the node to the farthestPositionReachable towards the desired newPosition. If the node is shapeless, it is simply moved to newPosition.

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
open override fun removeGlobalReaction(p0: GlobalReaction<T>)
Link copied to clipboard
override fun removeNode(@Nonnull p0: Node<T>)
Link copied to clipboard
open override fun setHeading(node: Node<T>, direction: Euclidean2DPosition)

Sets the heading of a node.

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
override fun spliterator(): Spliterator<Node<T>>
Link copied to clipboard
open override fun toString(): String