MoveTo


Moves the agent to a new location. If any resources are attached to the agent, they will move with it. The speed will be the agent speed regardless of the attached resources speed. The time spent by the agent in this block equals the length of the shortest route from the agent current location to the destination divided by the agent speed (note that you may modify the speed by enabling the parameter Set agent's speed and specifying new Speed below.) The agent is animated moving along the route.

Parameters

Agent
Choose whether the agent instantly jumps to the new location, or moves there.
Get value: mode
Valid values: moves to - MoveTo.MODE_MOVE_TO
is placed (jumps) to - MoveTo.MODE_PLACE_TO
Destination
Defines how the destination is defined:
Network / GIS node
- agent moves to the specified network node, GIS point, or GIS region.
Attractor
- agent moves to the specified attractor.
Seized resource unit - agent moves to the current location of the seized resource (specified below in the Resource field).
Home of seized unit - agent moves to the home location of the seized resource (specified below in the Resource field).
Agent / unit - the agent moves to the location of the specified agent.
(x,y,z) - the agent moves to the point with the specified coordinates.
Node (x,y,z) - agent moves to the specified node and then moves to the point with the specified X,Y,Z coordinates. Use this mode when you need to move agents to the particular location inside the mode. Note that you define absolute coordinates, see the X, Y, Z parameter description below.
(latitude, longitude) - the agent moves to the given point on the GIS map with the specified Latitude and Longitude.
Geographic place - the agent moves to the particular location on the GIS map. You define this place using the Name of place parameter below.
The next three destinations are for resources [res.] used in the preparation and wrap-up flowcharts.
[res.] Agent which possesses me - the resource moves to the agent that possesses it.
[res.] Other unit seized by my agent - the resource moves to some other resource unit.
[res.] Other unit's home - the resource moves to another unit's home location.
Get value: destinationType
Valid values: Network / GIS node - MoveTo.DEST_NODE
Attractor - MoveTo.DEST_ATTRACTOR
Seized resource unit - MoveTo.DEST_RESOURCE
Home of seized unit - MoveTo.DEST_RESOURCE_HOME
Agent / unit - MoveTo.DEST_AGENT
(x,y,z) - MoveTo.DEST_XYZ
Node (x,y,z) - MoveTo.DEST_NODE_XYZ
(latitude, longitude) - MoveTo.DEST_LATLON
          Geographic place - MoveTo.DEST_GEO_PLACE
[res.] Agent which possesses me - MoveTo.DEST_POSSESSING_ENTITY
          [res.] Other unit seized by my agent - MoveTo.DEST_OTHER_RESOURCE
[res.] Other unit's home - MoveTo.DEST_OTHER_RESOURCE_HOME
Node [dynamic]
[Visible if Destination is Network / GIS node] Network node, GIS point, or GIS region where the agent will move.
Local variable: agent - the agent.
Attractor [dynamic]
[Visible if Destination is Attractor] Attractor where the agent will move.
Value type: Attractor
Local variable: agent - the agent
Resource [dynamic]
[Visible if Destination is Seized resource unit, or Home of seized resource] The name of the ResourcePool block that defines the set of resource units. The agent will move to the current location (or home location, depending on the Destination parameter value) of the seized resource unit of this type. If several units of the same pool are seized, the first in the list will be chosen.
Value type: ResourcePool
Local variable: agent - the agent
Agent [dynamic]
[Visible if Destination is Agent / unit] The agent to move to (it may be e.g. a particular resource unit of some other agent).
Value type: Agent
Local variable: agent - the agent
X, Y, Z [dynamic]
[Visible ifDestination is (x, y, z) or Node (x,y,z)] X,Y,Z coordinates of the point where agents will move after reaching the specified node. Note that you define absolute coordinates, so you should make the point coordinates correspond to the node coordinates, otherwise agents will move to the point residing outside the node.
Value type: double
Local variable: agent - the agent
Latitude, Longitude [dynamic]
[Visible ifDestination is(latitude, longitude)] Latitude and longitude of the point on the GIS map where the agents will move.
Type of value: double
Local variable: agent - the agent
Name of place [dynamic]
[Visible ifDestination isGeographic place] The name of the particular location on the GIS map, where the agents will move. You specify the name as text put in quotes, e.g. "London".GIS map will search for a location with such name. The first location from the list of GIS search results will be used.
Type of value: String
Local variable: agent - the agent
Set rotation upon arrival
[Visible if Destination is (x, y, z) , Node (x,y,z), (latitude, longitude) or geographic place] Here you can set agent rotation when it arrives at destination.
Syntax: boolean destinationUseRotation
Rotation [dynamic]
[Visible if Set rotation upon arrival is enabled] Here you can set agent horizontal rotation when it arrives at destination.
Value type: double
Local variable: agent - the agent
Vertical rotation [dynamic]
[Visible if Set rotation upon arrival is enabled] Here you can set agent vertical rotation when it arrives at destination.
Value type: double
Local variable: agent - the agent
... With offset
[Visible if Destination is set to Network node, Attractor, Seized resource unit, Home of seized unit, Agent/unit and [res.] options] Select if you want to define offset from the destination point.
Syntax: boolean useOffsets
Default value: false
X, Y, Z offset [dynamic]
[Visible if ... With offset is selected] Here you can define the offset from the destination point as values along the corresponding axis.
Value type: double
Local variable: agent - the agent
Default value: 0
... in the network
[Visible if Agent: is placed (jumps)to: (x,y,z), (latitude, longitude), and geographic place] Select this option if you want to use a point with the given coordinates or a place that is in the network.
Syntax: boolean destinationInNetwork
Default value: false
Network [dynamic]
[Visible if ...in the network is selected] Select the network that contains the defined point or place.
Value type: INetwork
Local variable: agent - the agent
Level [dynamic]
[Visible ifDestination is (x, y, z)] Select the level that contains the defined point.
Value type: Level
Local variable: agent - the agent
Straight movement
Select this option if you do not want the agent to be included in the network and move along a straight line (the shortest route between locations).
Syntax: boolean straightMovement
Default value: false
Movement is defined by [dynamic]
[Visible if Agent is set to Moves to] Choose how movement is defined: by Distance / speed or by Trip time.
Local variable: agent - the agent
Set agent's speed [dynamic]
[Visible if Movement is defined by Distance / speed] Select if you want to define the speed of the agent.
Value type: boolean
Local variable: agent - the agent
Default value: false
Speed [dynamic]
[Visible if Set agent's speed is selected] Expression evaluated to obtain the speed of the agent.
Value type: double
Local variable: agent - the agent
Trip time [dynamic]
[Visible if Movement is defined by Trip time]
Value type: double
Local variable: agent - the agent
Restore speed on arrival
[Visible if Movement is defined by Trip time] When agent movement is defined by trip time, the agent changes its speed. This parameter allows to restore the original speed.
Syntax: boolean restoreSpeedOnArrival
Default value: false
Actions
On enter [code]
Code executed when the agent enters the block.
Local variable: agent - the agent
On exit [code]
Code executed when the agent exits the block.
Local variable: agent - the agent
On remove [code]
Code executed when the agent is intentionally removed from this block by calling the agent's function remove(). This code is automatically executed after the remove() function call.
Local variable: agent - the agent

Functions

int size() - returns the number of agents moving in this block.

Agent remove(Agent agent) - removes the given agent from the block and returns it. Returns null if agent doesn't belong to this block.

Iterator<Agent> iterator() - returns the iterator over agents (ordering: the first is at the exit, the last has the largest remaining time to be delayed).

Ports

in
The input port.
out
The output port.