SteeringAction

interface SteeringAction<T, P : Position<P>> : Action<T>

An action that describes movement of a node inside its environment.

Type Parameters

T

the concentration type.

P

the Position type used by the action.

Inheritors

Properties

Link copied to clipboard
abstract val reaction: Reaction<T>

The reaction owning this action. Its Reaction.host is the model entity hosting the action, which may differ from the node it targets, if any.

Functions

Link copied to clipboard
abstract fun cloneAction(newReaction: Reaction<T>): Action<T>

Creates an equivalent action owned by newReaction, such as a reaction cloned onto a new node. An action targeting the host of its reaction targets the host of newReaction, which must then be a Node; an action targeting any other node keeps its target.

Link copied to clipboard
abstract fun execute()

Applies this action to the model.

Link copied to clipboard
abstract fun nextPosition(): P

Returns the target relative position the owner will move to when this action is executed. The position is relative to the owner's current position.

Link copied to clipboard
infix fun Action<*>.shouldEqual(other: Action<*>)