drawIcon: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Some wiki formatting)
(Add missing parameters… and hide them)
Line 18: Line 18:
|gr1= GUI Control - Map
|gr1= GUI Control - Map


|descr= Draws an icon on the map. This command needs to be called every frame, preferably using the [[User_Interface_Event_Handlers#onDraw|onDraw]] UI Event Handler. Some useful icons can be found in <sqf inline>configfile >> "CfgVehicleIcons"</sqf>.
|descr= Draws an icon on the map. This command needs to be called every frame, preferably using the [[User_Interface_Event_Handlers#onDraw|onDraw]] UI Event Handler. Some useful icons can be found in <sqf inline>configFile >> "CfgVehicleIcons"</sqf>.


|s1= map [[drawIcon]] [texture, color, position, width, height, angle, text, shadow, textSize, font, align]
|s1= map [[drawIcon]] [texture, color, position, width, height, angle, text, shadow, textSize, font, align<!--, drawSideArrows, offsetX, offsetY-->]


|p1= map: [[Control]]
|p1= map: [[Control]]
Line 36: Line 36:
|p7= angle: [[Number]] - rotation angle of the icon (but not the text)
|p7= angle: [[Number]] - rotation angle of the icon (but not the text)


|p8= text: [[String]] - (Optional)
|p8= text: [[String]] - (Optional, default "")


|p9= shadow: [[Number]] or [[Boolean]] - (Optional) can be one of:
|p9= shadow: [[Number]] or [[Boolean]] - (Optional, default [[false]]) can be one of:
* 0 ([[false]]): no shadow
* 0 ([[false]]): no shadow
* 1: shadow (for text)
* 1: shadow (for text)
* 2 ([[true]]): outline (works for text and for icon only if icon angle is 0)
* 2 ([[true]]): outline (works for text and for icon only if icon angle is 0)


|p10= textSize: [[Number]] - (Optional) size of the text in UI units
|p10= textSize: [[Number]] - (Optional, default -1) size of the text in UI units
|p10since= arma3 0.72
|p10since= arma3 0.72


|p11= font: [[String]] - (Optional) text's font
|p11= font: [[String]] - (Optional, default "") text's font
|p11since= arma3 0.72
|p11since= arma3 0.72


|p12= align: [[String]] - (Optional, default "right") text alignment. Can be:
|p12= align: [[String]] - (Optional, default "right") text alignment. Can be:
* "left"  
* "left"
* "right"
* "right"
* "center"
* "center"
|p12since= arma3 0.72
|p12since= arma3 0.72
<!--
|p13= drawSideArrows: [[Boolean]] - (Optional, default [[false]]) unused
|p13since= arma3 2.04
|p14= offsetX: [[Number]] - (Optional, default 0) unused
|p14since= arma3 2.04
|p15= offsetY: [[Number]] - (Optional, default 0) unused
|p15since= arma3 2.04
-->


|r1= [[Nothing]]
|r1= [[Nothing]]


|x1= Red icon with text:
|x1= Red icon with text:
<sqf>findDisplay 12 displayCtrl 51 ctrlAddEventHandler ["Draw", {
<sqf>
findDisplay 12 displayCtrl 51 ctrlAddEventHandler ["Draw", {
_this select 0 drawIcon [
_this select 0 drawIcon [
"iconStaticMG", // Custom images can also be used: getMissionPath "\myFolder\myIcon.paa"
"iconStaticMG", // custom images can also be used: getMissionPath "\myFolder\myIcon.paa"
[1,0,0,1],
[1,0,0,1],
getPosASLVisual player,
getPosASLVisual player,
Line 72: Line 86:
"right"
"right"
]
]
}];</sqf>
}];
</sqf>


|x2= Green text only:
|x2= Green text only:
<sqf>findDisplay 12 displayCtrl 51 ctrlAddEventHandler ["Draw", {
<sqf>
findDisplay 12 displayCtrl 51 ctrlAddEventHandler ["Draw", {
_this select 0 drawIcon [
_this select 0 drawIcon [
"#(rgb,1,1,1)color(1,1,1,1)",
"#(rgb,1,1,1)color(1,1,1,1)",
Line 85: Line 101:
name player
name player
]
]
}];</sqf>
}];
</sqf>


|seealso= [[drawArrow]] [[drawEllipse]] [[drawLine]] [[drawRectangle]] [[drawPolygon]] [[drawTriangle]]
|seealso= [[drawArrow]] [[drawEllipse]] [[drawLine]] [[drawRectangle]] [[drawPolygon]] [[drawTriangle]]

Revision as of 18:05, 2 December 2022

Hover & click on the images for description

Description

Description:
Draws an icon on the map. This command needs to be called every frame, preferably using the onDraw UI Event Handler. Some useful icons can be found in configFile >> "CfgVehicleIcons".
Groups:
GUI Control - Map

Syntax

Syntax:
map drawIcon [texture, color, position, width, height, angle, text, shadow, textSize, font, align]
Parameters:
map: Control
texture: String - icon texture
color: Array - text and icon color in format Color(RGBA)
position: Object, Array format Position2D or Position3D
width: Number - width of the icon (but not the text)
height: Number - height of the icon (but not the text)
angle: Number - rotation angle of the icon (but not the text)
text: String - (Optional, default "")
shadow: Number or Boolean - (Optional, default false) can be one of:
  • 0 (false): no shadow
  • 1: shadow (for text)
  • 2 (true): outline (works for text and for icon only if icon angle is 0)
since Arma 3 logo black.png0.72
textSize: Number - (Optional, default -1) size of the text in UI units
since Arma 3 logo black.png0.72
font: String - (Optional, default "") text's font
since Arma 3 logo black.png0.72
align: String - (Optional, default "right") text alignment. Can be:
  • "left"
  • "right"
  • "center"
Return Value:
Nothing

Examples

Example 1:
Red icon with text:
findDisplay 12 displayCtrl 51 ctrlAddEventHandler ["Draw", { _this select 0 drawIcon [ "iconStaticMG", // custom images can also be used: getMissionPath "\myFolder\myIcon.paa" [1,0,0,1], getPosASLVisual player, 24, 24, getDirVisual player, "Player Vehicle", 1, 0.03, "TahomaB", "right" ] }];
Example 2:
Green text only:
findDisplay 12 displayCtrl 51 ctrlAddEventHandler ["Draw", { _this select 0 drawIcon [ "#(rgb,1,1,1)color(1,1,1,1)", [0,1,0,1], player, 0, 0, 0, name player ] }];

Additional Information

See also:
drawArrow drawEllipse drawLine drawRectangle drawPolygon drawTriangle

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
Benargee - c
Posted on Jan 04, 2016 - 05:41 (UTC)
Arma 3 1.54
This command does not seem to play nice with onEachFrame. It seems to draw on the main screen while maintaing position relative to the map position
Example:
onEachFrame { findDisplay 12 displayCtrl 51 drawIcon ['iconStaticMG', [1,0,0,1], getPosASL player, 24, 24, getDir player, 'Player Vehicle', 1, 0.03, 'TahomaB', 'right']; };
Leopard20 - c
Posted on May 09, 2022 - 19:34 (UTC)
The icon size always stays the same, even after zooming in/out. To make the icon get bigger with map zoom, use this for width and height size:
private _scale = 6.4 * worldSize / 8192 * ctrlMapScale _map; private _size = _sizeInMeters / _scale;
For example, the following icon has an exact size of 50 meters on the map, even after zooming in/out:
private _scale = 6.4 * worldSize / 8192 * ctrlMapScale _map; private _size = 50 / _scale; _map drawIcon ["iconStaticMG", [1,0,0,1], getPosASLVisual player, _size, _size, 0]