getTerrainInfo: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
(add example) |
||
Line 26: | Line 26: | ||
|x1= <sqf>private _terrainInfo = getTerrainInfo; // Stratis: [32,256,4,2048,0]; Altis: [30,1024,7.5,4096,0] </sqf> | |x1= <sqf>private _terrainInfo = getTerrainInfo; // Stratis: [32,256,4,2048,0]; Altis: [30,1024,7.5,4096,0] </sqf> | ||
|x2= [[File:Terrain grid on Stratis.jpg|thumb|Terrain grid on Stratis]] | |||
<sqf> // Draws a 10x10 terrain grid when clicking on the map | |||
// Each triangle that forms the terrain is a diagonal of the grid cell that starts from the upper-left corner of the cell and ends and the lower-right corner. | |||
onMapSingleClick { | |||
getTerrainInfo params ["", "", "_cellsize", "_resolution"]; | |||
gridLines = []; | |||
_pos apply {floor (_x / _cellsize)} params ["_x0", "_y0"]; | |||
for "_x" from ((_x0 - 10) max 0) to ((_x0 + 10) min _resolution) do { | |||
for "_y" from ((_y0 - 10) max 0) to ((_y0 + 10) min _resolution) do { | |||
private _p1 = [_x, _y] vectorMultiply _cellsize; | |||
private _p2 = [_x, _y + 1] vectorMultiply _cellsize; | |||
private _p3 = [_x + 1, _y] vectorMultiply _cellsize; | |||
_p1 set [2, 0.1]; | |||
_p2 set [2, 0.1]; | |||
_p3 set [2, 0.1]; | |||
gridLines pushBack [_p1, _p2, [1,0,0,1]]; | |||
gridLines pushBack [_p1, _p3, [1,0,0,1]]; | |||
gridLines pushBack [_p2, _p3, [0,1,0,1]]; | |||
}; | |||
}; | |||
onEachFrame { | |||
{ | |||
drawLine3d _x; | |||
} forEach gridLines; | |||
}; | |||
}; | |||
</sqf> | |||
|seealso= [[getTerrainHeight]] [[setTerrainHeight]] | |seealso= [[getTerrainHeight]] [[setTerrainHeight]] | ||
}} | }} |
Revision as of 06:55, 23 June 2022
Description
- Description:
- Returns the terrain heightmap information, as well as sea level offset (due to tides, if available).
- Groups:
- Diagnostic
Syntax
- Syntax:
- getTerrainInfo
- Return Value:
- Array - In format [landGridWidth, landGridSize, terrainGridWidth, terrainGridSize, seaLevel]:
- landGridWidth: Number - width of each land grid
- landGridSize: Number - number of land grid pixels
- terrainGridWidth: Number width of each terrain grid (also known as "cell size")
- terrainGridSize: Number - number of terrain grid pixels (also known as "heightmap resolution")
- seaLevel: Number - sea level without waves. The value is 0 if tides are disabled.
Examples
- Example 1:
- Example 2:
-
// Draws a 10x10 terrain grid when clicking on the map // Each triangle that forms the terrain is a diagonal of the grid cell that starts from the upper-left corner of the cell and ends and the lower-right corner. onMapSingleClick { getTerrainInfo params ["", "", "_cellsize", "_resolution"]; gridLines = []; _pos apply {floor (_x / _cellsize)} params ["_x0", "_y0"]; for "_x" from ((_x0 - 10) max 0) to ((_x0 + 10) min _resolution) do { for "_y" from ((_y0 - 10) max 0) to ((_y0 + 10) min _resolution) do { private _p1 = [_x, _y] vectorMultiply _cellsize; private _p2 = [_x, _y + 1] vectorMultiply _cellsize; private _p3 = [_x + 1, _y] vectorMultiply _cellsize; _p1 set [2, 0.1]; _p2 set [2, 0.1]; _p3 set [2, 0.1]; gridLines pushBack [_p1, _p2, [1,0,0,1]]; gridLines pushBack [_p1, _p3, [1,0,0,1]]; gridLines pushBack [_p2, _p3, [0,1,0,1]]; }; }; onEachFrame { { drawLine3d _x; } forEach gridLines; }; };
Additional Information
- See also:
- getTerrainHeight setTerrainHeight
Notes
-
Report bugs on the Feedback Tracker and/or discuss them on the Arma Discord or on the Forums.
Only post proven facts here! Add Note