PhysicsEnvironment

An environment supporting physics and nodes shapes. Note: due to the high number of parameters it's highly recommended not to use this interface directly, but to create an apposite interface extending this one instead.

Parameters

factory of shapes compatible with this environment

Inheritors

Properties

Link copied to clipboard
open val Node<T>.currentPosition: P
Link copied to clipboard
abstract val dimensions: Int
Link copied to clipboard
abstract val incarnation: Incarnation<T, P>
Link copied to clipboard
abstract val isTerminated: Boolean
Link copied to clipboard
abstract val layers: Map<Molecule, Layer<T, P>>
Link copied to clipboard
Link copied to clipboard
abstract var networkModel: NetworkModel<T>
Link copied to clipboard
abstract val nodeCount: Observable<Int>
Link copied to clipboard
abstract val nodes: ObservableList<Node<T>>
Link copied to clipboard
abstract val offset: DoubleArray
Link copied to clipboard
open val origin: P
Link copied to clipboard
open val Node<T>.position: Observable<P>
Link copied to clipboard
Link copied to clipboard
abstract val shapeFactory: F

A factory of shapes compatible with this environment.

Link copied to clipboard
abstract var simulation: Simulation<T, P>
Link copied to clipboard
abstract val simulationOrNull: Simulation<T, P>?
Link copied to clipboard
abstract val size: DoubleArray
Link copied to clipboard

Functions

Link copied to clipboard
abstract fun addLayer(molecule: Molecule, layer: Layer<T, P>)
Link copied to clipboard
abstract fun addNode(node: Node<T>, position: P): Boolean
Link copied to clipboard
abstract fun addReaction(reaction: Reaction<T>)
Link copied to clipboard
abstract fun addTerminator(terminator: TerminationPredicate<T, P>)
open fun addTerminator(terminator: (Environment<T, P>) -> Boolean)
Link copied to clipboard
open operator fun contains(node: Node<T>): Boolean
Link copied to clipboard
open fun currentPositionOf(node: Node<T>): P
Link copied to clipboard
abstract fun distanceBetween(n1: Node<T>, n2: Node<T>): Double
Link copied to clipboard
open fun Node<T>.distanceTo(other: Node<T>): Double
Link copied to clipboard
open fun farthestReachablePosition(node: Node<T>, desired: P): P
Link copied to clipboard
abstract fun getHeading(node: Node<T>): P

Gets the heading of a node as a direction vector.

Link copied to clipboard
abstract fun getNodesWithin(shape: Shape<P, A>): List<Node<T>>

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

Link copied to clipboard
abstract fun getShape(node: Node<T>): Shape<P, A>

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

Link copied to clipboard
abstract fun layerFor(molecule: Molecule): Layer<T, P>?
Link copied to clipboard
abstract fun makePosition(coordinates: DoubleArray): P
open fun makePosition(coordinates: List<Number>): P
abstract fun makePosition(vararg coordinates: Number): P
Link copied to clipboard
open fun Node<T>.moveBy(displacement: P)
Link copied to clipboard
open fun moveNodeBy(node: Node<T>, displacement: P)
Link copied to clipboard
abstract fun moveNodeTo(node: Node<T>, position: P)
Link copied to clipboard
open fun Node<T>.moveTo(position: P)
Link copied to clipboard
abstract fun neighborhoodOf(node: Node<T>): Observable<Neighborhood<T>>
Link copied to clipboard
abstract fun nodesAround(position: P, range: Double): List<Node<T>>
abstract fun nodesAround(node: Node<T>, range: Double): List<Node<T>>
Link copied to clipboard
open fun P.nodesInRange(range: Double): List<Node<T>>
open fun Node<T>.nodesInRange(range: Double): List<Node<T>>
Link copied to clipboard
abstract fun nodeWithId(id: Int): Node<T>
Link copied to clipboard
abstract fun observeLayerValue(molecule: Molecule, node: Node<T>): Observable<T?>
Link copied to clipboard
abstract fun observeNodesAround(position: P, range: Double): ObservableSet<Node<T>>
abstract fun observeNodesAround(node: Node<T>, range: Double): ObservableSet<Node<T>>
Link copied to clipboard
Link copied to clipboard
abstract fun positionOf(node: Node<T>): Observable<P>
Link copied to clipboard
open fun Node<T>.remove()
open fun Reaction<T>.remove()
Link copied to clipboard
abstract fun removeNode(node: Node<T>)
Link copied to clipboard
abstract fun removeReaction(reaction: Reaction<T>)
Link copied to clipboard
abstract fun setHeading(node: Node<T>, direction: P)

Sets the heading of a node.

Link copied to clipboard