Interface PhysicalPedestrian

    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
    • Field Summary

      Fields 
      Modifier and Type Field Description
    • Constructor Summary

      Constructors 
      Constructor Description
    • Enum Constant Summary

      Enum Constants 
      Enum Constant Description
    • Method Summary

      Modifier and Type Method Description
      abstract Unit checkAndPossiblyFall() Turn this node into a fallen pedestrian if it shouldFall.
      abstract Boolean shouldFall(List<P> pushingForces) Determines if this pedestrian subject to pushingForces should fall.
      abstract P repulse(Node<T> other) Computes the repulsion force caused by a node that entered the comfortArea.
      abstract P avoid(Node<T> other) Computes the repulsion force caused by a node that entered the rectangleOfInfluence.
      abstract List<P> repulsionForces() Computes the total repulsion force this node is subject to.
      abstract List<P> avoidanceForces() Computes the total avoidance force this node is subject to.
      abstract List<P> fallenAgentAvoidanceForces() Computes the avoidance force from a fallen pedestrian.
      abstract Unit onFall(Function1<Node<T>, Unit> listener) Adds a listener to be called when node falls.
      abstract Boolean isFallen() Whether the pedestrian has fallen and it is thus an obstacle.
      abstract Double getComfortRay() The comfort ray of this pedestrian, this is added to the radius of its Shape to obtain the comfortArea.
      abstract Shape<P, A> getComfortArea() The comfort area of this pedestrian, it's a circle of radius Shape.
      abstract Shape<P, A> getRectangleOfInfluence() Rectangle of influence.
      • Methods inherited from class it.unibo.alchemist.model.physics.properties.PhysicalProperty

        physicalForces
      • Methods inherited from class it.unibo.alchemist.model.NodeProperty

        cloneOnNewNode, getNode
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

    • Method Detail

      • shouldFall

         abstract Boolean shouldFall(List<P> pushingForces)

        Determines if this pedestrian subject to pushingForces should fall. According to the work of Pelechano et al this should happen when the majority of pushing forces affecting one individual are approximately in the same direction and the sum of forces have a magnitude high enough to make it lose equilibrium.

      • repulse

         abstract P repulse(Node<T> other)

        Computes the repulsion force caused by a node that entered the comfortArea. This is derived from the work of Pelechano et al.

      • avoid

         abstract P avoid(Node<T> other)

        Computes the repulsion force caused by a node that entered the rectangleOfInfluence. This is derived from the work of Pelechano et al.

      • repulsionForces

         abstract List<P> repulsionForces()

        Computes the total repulsion force this node is subject to.

      • avoidanceForces

         abstract List<P> avoidanceForces()

        Computes the total avoidance force this node is subject to.

      • onFall

         abstract Unit onFall(Function1<Node<T>, Unit> listener)

        Adds a listener to be called when node falls.

      • isFallen

         abstract Boolean isFallen()

        Whether the pedestrian has fallen and it is thus an obstacle.

      • getComfortRay

         abstract Double getComfortRay()

        The comfort ray of this pedestrian, this is added to the radius of its Shape to obtain the comfortArea.

      • getComfortArea

         abstract Shape<P, A> getComfortArea()

        The comfort area of this pedestrian, it's a circle of radius Shape.radius + comfortRay.

      • getRectangleOfInfluence

         abstract Shape<P, A> getRectangleOfInfluence()

        Rectangle of influence. When a pedestrian enters this area, the node could experience a tangential avoidance force. See avoid.