AbstractNavigationAction

abstract class AbstractNavigationAction<T, P : Position<P>, Vector<P>, A : Transformation<P>, L : ConvexShape<P, A>, R, N : ConvexShape<P, A>, E>(val environment: EnvironmentWithGraph<*, T, P, A, N, E>, reaction: Reaction<T>, pedestrian: PedestrianProperty<T>) : AbstractSteeringAction<T, P, A> , NavigationAction<T, P, A, L, R, N, E>

An abstract NavigationAction, taking care of properly moving the node in the environment while delegating the decision on where to move it to a NavigationStrategy.

Parameters

T

the concentration type.

P

the Position type and Vector type for the space the node is into.

A

the transformations supported by the shapes in this space.

L

the type of landmarks of the node's cognitive map.

R

the type of edges of the node's cognitive map, representing the Relations between landmarks.

N

the type of nodes of the navigation graph provided by the environment.

E

the type of edges of the navigation graph provided by the environment.

Inheritors

Constructors

Link copied to clipboard
constructor(environment: EnvironmentWithGraph<*, T, P, A, N, E>, reaction: Reaction<T>, pedestrian: PedestrianProperty<T>)

Properties

Link copied to clipboard
open override var currentRoom: N?

The room (= environment's area) the navigatingNode is into, this is cached and updated every time update is called so as to avoid potentially costly re-computations.

Link copied to clipboard

The position the node wants to reach.

Link copied to clipboard
open override val environment: EnvironmentWithGraph<*, T, P, A, N, E>

The environment the navigatingNode is into.

Link copied to clipboard
open val maxWalk: Double

The maximum distance the node can walk, this is a length.

Link copied to clipboard
open override val navigatingNode: Node<T>

The owner of this action.

Link copied to clipboard

The navigatingNode's orientingProperty.

Link copied to clipboard
open lateinit override var pedestrianPosition: P

The position of the navigatingNode in the environment, this is cached and updated every time update is called so as to avoid potentially costly re-computations.

Functions

Link copied to clipboard
abstract override fun cloneAction(node: Node<T>, reaction: Reaction<T>): AbstractSteeringAction<T, P, A>

This method allows to clone this action on a new node. It may result useful to support runtime creation of nodes with the same reaction programming, e.g. for morphogenesis.

Link copied to clipboard
abstract fun crossDoor(door: E)

Moves the node across the provided door, which must be among doorsInSight.

Link copied to clipboard
open override fun doorsInSight(): List<E>
Link copied to clipboard
open override fun execute()
Link copied to clipboard
override fun getContext(): Context
Link copied to clipboard
open override fun getNextPosition(): P
Link copied to clipboard
@Nonnull
override fun getOutboundDependencies(): ListSet<out Dependency>
Link copied to clipboard
open override fun moveToFinal(destination: P)

Moves the node to the given final destination, which must be inside currentRoom.

Link copied to clipboard
abstract fun nextPosition(): P

The position the owner of this action moves to when it is executed, in relative coordinates with respect to its current position.

Link copied to clipboard
open fun stop()

Stops moving the node.

Link copied to clipboard
open override fun toString(): String
Link copied to clipboard
open fun update()

Updates the internal state but does not move the node.