EnvironmentWithDynamics

class EnvironmentWithDynamics<T> @JvmOverloads constructor(incarnation: Incarnation<T, Euclidean2DPosition>, path: String? = null, zoom: Double = 1.0, dx: Double = 0.0, dy: Double = 0.0, obstaclesColor: Int = Color.BLACK.rgb, roomsColor: Int = Color.BLUE.rgb, backingEnvironment: Physics2DEnvironment<T> = path?.let { ImageEnvironmentWithGraph(incarnation, it, zoom, dx, dy, obstaclesColor, roomsColor) } ?: ContinuousPhysics2DEnvironment(incarnation)) : Dynamics2DEnvironment<T> , EuclideanPhysics2DEnvironmentWithObstacles<RectObstacle2D<Euclidean2DPosition>, T> (source)

This Environment uses hooks provided by Dynamics2DEnvironment to update the physical world, It also applies physical properties to any added node to perform collision detection and response. If an image path is provided a backing ImageEnvironmentWithGraph is used, otherwise the Continuous2DEnvironment will be used.

Constructors

Link copied to clipboard
constructor(incarnation: Incarnation<T, Euclidean2DPosition>, path: String? = null, zoom: Double = 1.0, dx: Double = 0.0, dy: Double = 0.0, obstaclesColor: Int = Color.BLACK.rgb, roomsColor: Int = Color.BLUE.rgb, backingEnvironment: Physics2DEnvironment<T> = path?.let { ImageEnvironmentWithGraph(incarnation, it, zoom, dx, dy, obstaclesColor, roomsColor) } ?: ContinuousPhysics2DEnvironment(incarnation))

Properties

Link copied to clipboard
Link copied to clipboard
open override val dimensions: Int
Link copied to clipboard
Link copied to clipboard
open override val isTerminated: Boolean
Link copied to clipboard
open override val layers: Map<Molecule, Layer<T, Euclidean2DPosition>>
Link copied to clipboard
open override val Node<T>.neighborhood: Observable<Neighborhood<T>>
Link copied to clipboard
open override var networkModel: NetworkModel<T>
Link copied to clipboard
open override val nodeCount: Observable<Int>
Link copied to clipboard
open override val nodes: ObservableList<Node<T>>
Link copied to clipboard
Link copied to clipboard
open override val offset: DoubleArray
Link copied to clipboard
open override val origin: Euclidean2DPosition
Link copied to clipboard
Link copied to clipboard
open override val reactions: ObservableList<Reaction<T>>
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
open override val size: DoubleArray
Link copied to clipboard
open override val sizeInDistanceUnits: DoubleArray

Functions

Link copied to clipboard
open override fun addLayer(molecule: Molecule, layer: Layer<T, Euclidean2DPosition>)
Link copied to clipboard
open override fun addNode(node: Node<T>, position: Euclidean2DPosition): Boolean
Link copied to clipboard
open override fun addObstacle(obstacle: RectObstacle2D<Euclidean2DPosition>)
Link copied to clipboard
open override fun addReaction(reaction: Reaction<T>)
Link copied to clipboard
open override fun addTerminator(terminator: TerminationPredicate<T, Euclidean2DPosition>)
open override fun addTerminator(terminator: (Environment<T, Euclidean2DPosition>) -> Boolean)
Link copied to clipboard
open operator override fun contains(node: Node<T>): Boolean
Link copied to clipboard
open override fun currentPositionOf(node: Node<T>): Euclidean2DPosition
Link copied to clipboard
open override fun distanceBetween(n1: Node<T>, n2: Node<T>): Double
Link copied to clipboard
open override fun Node<T>.distanceTo(other: Node<T>): Double
Link copied to clipboard
Link copied to clipboard
open override fun getHeading(node: Node<T>): Euclidean2DPosition
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
open override fun getVelocity(node: Node<T>): Euclidean2DPosition
Link copied to clipboard
open override fun hasMobileObstacles(): Boolean
Link copied to clipboard
open override fun layerFor(molecule: Molecule): Layer<T, Euclidean2DPosition>?
Link copied to clipboard
open override fun makePosition(coordinates: DoubleArray): Euclidean2DPosition
open override fun makePosition(coordinates: List<Number>): Euclidean2DPosition
open override fun makePosition(vararg coordinates: Number): Euclidean2DPosition
open override fun makePosition(x: Double, y: Double): Euclidean2DPosition
open override fun makePosition(x: Number, y: Number): Euclidean2DPosition
Link copied to clipboard
open override fun Node<T>.moveBy(displacement: Euclidean2DPosition)
Link copied to clipboard
open override fun moveNodeBy(node: Node<T>, displacement: Euclidean2DPosition)
Link copied to clipboard
open override fun moveNodeTo(node: Node<T>, position: Euclidean2DPosition)

Moves node in the backing environment, which enforces its obstacles, then aligns its physical body.

Link copied to clipboard
open override fun Node<T>.moveTo(position: Euclidean2DPosition)
Link copied to clipboard
open override fun neighborhoodOf(node: Node<T>): Observable<Neighborhood<T>>
Link copied to clipboard
open override fun nodesAround(position: Euclidean2DPosition, range: Double): List<Node<T>>
open override fun nodesAround(node: Node<T>, range: Double): List<Node<T>>
Link copied to clipboard
open override fun Euclidean2DPosition.nodesInRange(range: Double): List<Node<T>>
open override fun Node<T>.nodesInRange(range: Double): List<Node<T>>
Link copied to clipboard
open override fun nodeWithId(id: Int): Node<T>
Link copied to clipboard
open override fun observeLayerValue(molecule: Molecule, node: Node<T>): Observable<T?>
Link copied to clipboard
open override fun observeNodesAround(position: Euclidean2DPosition, range: Double): ObservableSet<Node<T>>
open override fun observeNodesAround(node: Node<T>, range: Double): ObservableSet<Node<T>>
Link copied to clipboard
Link copied to clipboard
open override fun positionOf(node: Node<T>): Observable<Euclidean2DPosition>
Link copied to clipboard
open override fun Node<T>.remove()
open override fun Reaction<T>.remove()
Link copied to clipboard
open override fun removeNode(node: Node<T>)
Link copied to clipboard
Link copied to clipboard
open override fun removeReaction(reaction: Reaction<T>)
Link copied to clipboard
open override fun setHeading(node: Node<T>, direction: Euclidean2DPosition)
Link copied to clipboard
open override fun setVelocity(node: Node<T>, velocity: Euclidean2DPosition)
Link copied to clipboard
Link copied to clipboard
open override fun updatePhysics(elapsedTime: Double)