checkVisibility: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Text replacement - "\| *(arg|eff|mp|serverExec|gr[0-9]) *= *(.*) * *\|([^=]{12})" to "|$1=$2 |descr=$3")
m (Some wiki formatting)
 
(24 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{RV|type=command
{{RV|type=command


|arma3
|game1= arma3
 
|version1= 1.56
|1.56


|gr1= Math - Geometry
|gr1= Math - Geometry


|descr= Checks if one position is visible from another position and how much. The results can be affected by [[getTerrainGrid]] value, especially if position is near the ground. Particle effects such as smoke can also affect the results.
|descr= {{{!}} class="wikitable float-right"
! style="width: 50%" {{!}} Affected by
! Not affected by
{{!}}-
{{!}}
* [[getTerrainGrid|terrain grid]]
* obstacles
* particles<br><span style="font-size: .9em">(with <syntaxhighlight lang="cpp" inline>blockAIVisibility = 1</syntaxhighlight>)</span>
{{!}}
* [[time|daylight]]
* [[distance]]
* [[overcast]]
* [[fog]]
{{!}}}
Checks if one position is visible from another position and how much.


|s1=  [ignore, LOD, ignore2] [[checkVisibility]] [beg, end]
{{Feature|informative|Particles that have {{hl|blockAIVisibility}} set to 1 will influence the result, but will never make [[checkVisibility]] return 0; an extremely small number will be returned instead.}}


|p1= [ignore, LOD, ignore2]: [[Array]]
|s1= [ignore, LOD, ignore2] [[checkVisibility]] [beg, end]


|p2= ignore: [[Object]] - object to exclude from calculations
|p1= ignore: [[Object]] - object to exclude from calculations


|p3= LOD: [[String]] - level of details to use. Possible values are: <tt>"FIRE"</tt>, <tt>"VIEW"</tt>, <tt>"GEOM"</tt>, <tt>"IFIRE"</tt>, <tt>"PHYSX"</tt> - PhysX geometry LOD (since Arma 3 v2.01.146666)
|p2= LOD: [[String]] - level of details to use. Possible values are: {{hl|"FIRE"}}, {{hl|"VIEW"}}, {{hl|"GEOM"}}, {{hl|"IFIRE"}}, and {{GVI|arma3|2.02|size= 0.75}} {{hl|"PHYSX"}}


|p4= ignore2 (Optional): [[Object]] - second object to exclude from calculations (Since Arma 3 v1.62)
|p3= ignore2: [[Object]] - (Optional, default [[objNull]]) second object to exclude from calculations
|p3since= arma3 1.62


|p5= [beg, end]: [[Array]]
|p4= beg: [[Array]] - start position in format [[Position#PositionASL|PositionASL]]


|p6= beg: [[Array]] - start position in format [[PositionASL]]
|p5= end: [[Array]] - end position in format [[Position#PositionASL|PositionASL]]


|p7= end: [[Array]] - end position in format [[PositionASL]]
|r1= [[Number]] - how much end position is visible to start position in range 0..1, where 1 is fully visible.


|r1=[[Number]] - how much end position is visible to start position in range 0..1, where 1 is fully visible.
|x1= <sqf>private _canSee = [objNull, "VIEW"] checkVisibility [eyePos player, eyePos unit1];</sqf>


|x1= <code>_cansee = [<nowiki/>[[objNull]], "VIEW"] [[checkVisibility]] [<nowiki/>[[eyePos]] [[player]], [[eyePos]] unit1];</code>
|seealso= [[lineIntersectsWith]] [[lineIntersectsSurfaces]] [[lineIntersectsObjs]] [[intersect]] [[terrainIntersect]] [[terrainIntersectASL]] [[terrainIntersectAtASL]] [[lineIntersects]] [[cursorObject]] [[cursorTarget]] [[disableRemoteSensors]]
|seealso= [[lineIntersectsWith]], [[lineIntersectsSurfaces]], [[lineIntersectsObjs]], [[intersect]], [[terrainIntersect]], [[terrainIntersectASL]], [[terrainIntersectAtASL]], [[lineIntersects]], [[cursorObject]], [[cursorTarget]], [[disableRemoteSensors]]
}}
}}
<dl class="command_description">
<dt></dt>
<dd class="notedate">Posted on August 8, 2016 - 22:38 (UTC)</dd>
<dt class="note">[[User:BaerMitUmlaut|BaerMitUmlaut]]</dt>
<dd class="note">
Particles that have blockAIVisibility set to 1 will influence the result, but will not make checkVisibility return 0. Instead an extremly small number will be returned.<br>
Distance, fog, overcast, rain and nighttime have no effect on the result.
</dd>
</dl>

Latest revision as of 12:25, 10 April 2023

Hover & click on the images for description

Description

Description:
Affected by Not affected by
  • terrain grid
  • obstacles
  • particles
    (with blockAIVisibility = 1)

Checks if one position is visible from another position and how much.

Particles that have blockAIVisibility set to 1 will influence the result, but will never make checkVisibility return 0; an extremely small number will be returned instead.
Groups:
Math - Geometry

Syntax

Syntax:
[ignore, LOD, ignore2] checkVisibility [beg, end]
Parameters:
ignore: Object - object to exclude from calculations
LOD: String - level of details to use. Possible values are: "FIRE", "VIEW", "GEOM", "IFIRE", and Arma 3 logo black.png2.02 "PHYSX"
since Arma 3 logo black.png1.62
ignore2: Object - (Optional, default objNull) second object to exclude from calculations
beg: Array - start position in format PositionASL
end: Array - end position in format PositionASL
Return Value:
Number - how much end position is visible to start position in range 0..1, where 1 is fully visible.

Examples

Example 1:
private _canSee = [objNull, "VIEW"] checkVisibility [eyePos player, eyePos unit1];

Additional Information

See also:
lineIntersectsWith lineIntersectsSurfaces lineIntersectsObjs intersect terrainIntersect terrainIntersectASL terrainIntersectAtASL lineIntersects cursorObject cursorTarget disableRemoteSensors

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