Position
Jump to navigation
Jump to search
Introduction
Positions in Arma could be either 2D, in which case it is in format [x,y], where x is the coordinate on the South – North axis and y is the coordinate on West – East axis, or 3D, in which case it is in format [x,y,z], where z is the height. The height relative to exactly what differs depending on the format of 3D position used.
Formats
- There are a number of formats available in the game:
- ASL – Presumably “At/Above Sea Level”
- ATL – Presumably “At/Above Terrain Level”
- ASLW – Presumably “At/Above Sea Level inc. Waves”
- AGL – Presumably “At/Above Generic/Ground Level”
- AGLS – Presumably “At/Above Generic/Ground Level inc. Surfaces”
- World – Raw world coordinate system
- Relative – Position relative to an object
- Config – Position used in configs
- The following diagram illustrates some of the most used formats:
PositionASL
- z is measured from the sea level which is constant across the map.
- Related commands:
- getPosASL, setPosASL, getPosASLVisual, visiblePositionASL, ASLToATL, ATLToASL, AGLToASL, ASLToAGL, eyePos, aimPos, getTerrainHeightASL, lineIntersects, lineIntersectsWith, lineIntersectsObjs, lineIntersectsSurfaces, terrainIntersectASL, playSound3D, setDefaultCamera
PositionASLW
- z is measured from the surface of the sea that could be higher or lower than sea level due to waves.
- Related commands:
PositionATL
- z is measured from the terrain level which varies across the map.
- Related commands:
PositionAGL
- z is the same as in PositionASLW when over sea and is the same as in PositionATL when over land. Most commands either take or return PositionAGL.
- Related commands:
- modelToWorld, worldToModel, modelToWorldVisual, worldToModelVisual, positionCameraToWorld, intersect, terrainIntersect, isOnRoad, drawIcon3D, drawLine3D, distance, moveTo, doMove, move, setDestination, buildingPos, screenToWorld, worldToScreen, AGLToASL, ASLToAGL
PositionAGLS
- Over land, z is measured as height over terrain level minus the height of surface over terrain level underneath. If such surface exists and is counted in, the resulting z becomes 0. The following diagram illustrates how z is obtained for a soldier standing on a rock:
- Over sea it gets even more complicated as instead of PositionATL, PositionASLW is used minus the offset for the surface height, presumably over waves too, as z seems static. As there is currently no way to obtain H of the surface, it becomes impossible to convert given PositionAGLS into other formats, unlike with other position formats.
- Related commands:
PositionWorld
- Similar to PositionASL, however z is measured from the sea level to the the model centre [0,0,0] of an object, rather than transformed boundingCenter or land contact vertices.
- Related commands:
PositionRelative
- Relative position is normally an [x,y,z] offset from the model centre.
- Related commands:
- positionCameraToWorld, selectionPosition, attachTo, modelToWorld, worldToModel, modelToWorldVisual, worldToModelVisual, camPrepareRelPos, camSetRelPos
PositionConfig
- The format used in configs, such as mission.sqm, is [x,z,y], where z and y are swapped around. One other command that uses this format is positionCameraToWorld. z in configs is measured from the sea level.