lineIntersects: Difference between revisions
|  (Clarified last parameters as optional) | m (fixed alt syntax and example 4) | ||
| (85 intermediate revisions by 16 users not shown) | |||
| Line 1: | Line 1: | ||
| {{ | {{RV|type=command | ||
| | arma2oa |=  | |game1= arma2oa | ||
| |version1= 1.62 | |||
| |1. | |game2= tkoh | ||
| |version2= 1.00 | |||
| |  | |game3= arma3 | ||
| |version3= 0.50 | |||
| |  | |arg= global | ||
| | | |gr1= Math - Geometry | ||
| |  | |descr= Checks for object intersection with a virtual line between two positions. Since {{GVI|arma3|2.20|size= 0.75}}, there is an alternative syntax that does multiple checks in parallel, faster than multiple calls. | ||
| {{Feature|informative| | |||
| * Does not work under water. | |||
| | | * Max hardcoded distance is 1000m. | ||
| }} | |||
| |s1= [[lineIntersects]] [begPos, endPos, objIgnore1, objIgnore2] | |||
| |p1= begPos: [[Array]] format [[Position#PositionASL|PositionASL]] | |||
| |p2= endPos: [[Array]] format [[Position#PositionASL|PositionASL]] | |||
| | [[ | |p3= objIgnore1: [[Object]] - (Optional, default [[objNull]]) object to ignore. When testing intersections from an object/unit/vehicle, pass that object here to prevent intersections inside of the object | ||
| |p4= objIgnore2: [[Object]] - (Optional, default [[objNull]]) another object to ignore. When testing intersections of a line between two objects, pass the second object here to prevent intersections inside of it being reported | |||
| |r1= [[Boolean]] - [[true]] if an intersection happens with an object (not with terrain) | |||
| |s2= [[lineIntersects]] <nowiki>[[</nowiki>element1, element2, ...<nowiki>]]</nowiki> | |||
| |s2since= arma3 2.20 | |||
| |p21= elementN: [[Array]] format [begPos, endPos, objIgnore1, objIgnore2]: | |||
| * begPos: [[Array]] format [[Position#PositionASL|PositionASL]] | |||
| * endPos: [[Array]] format [[Position#PositionASL|PositionASL]] | |||
| * objIgnore1: [[Object]] - (Optional, default [[objNull]]) object to ignore. When testing intersections from an object/unit/vehicle, pass that object here to prevent intersections inside of the object | |||
| * objIgnore2: [[Object]] - (Optional, default [[objNull]]) another object to ignore. When testing intersections of a line between two objects, pass the second object here to prevent intersections inside of it being reported | |||
| |r2= [[Array]] format [result1, result2, ...] - [[true]] if an intersection happens with an object (not with terrain) for the Nth element | |||
| < | |x1= <sqf>private _hasStraightLineToChopper = lineIntersects [eyePos player, aimPos chopper, player, chopper];</sqf> | ||
| </ | |||
| |x2= Alternative syntax to check intersections in parallel: | |||
| <sqf> | |||
| private _enemies = units opfor; | |||
| private _enemyDataArray = _enemies apply { [eyePos player, aimPos _x, player, _x] }; | |||
| private _result = lineIntersects [_enemyDataArray]; | |||
| </sqf> | |||
| [[ | |seealso= [[lineIntersectsSurfaces]] [[lineIntersectsObjs]] [[lineIntersectsWith]] [[terrainIntersect]] [[terrainIntersectASL]] [[terrainIntersectAtASL]] [[intersect]] [[cursorObject]] [[cursorTarget]] [[checkVisibility]] | ||
| [[ | }} | ||
| [[ | |||
| [[ | {{Note | ||
| |user= Lou Montana | |||
| |timestamp= 20120531104600 | |||
| |text= Please note the difference: | |||
| * [[terrainIntersect]] | |||
| * [[terrainIntersectASL]] | |||
| * [[lineIntersects]] | |||
| * [[lineIntersectsWith]] | |||
| * [[lineIntersectsObjs]]   | |||
| * [[intersect]] | |||
| }} | |||
Latest revision as of 17:55, 16 May 2025
Description
- Description:
- Checks for object intersection with a virtual line between two positions. Since  2.20, there is an alternative syntax that does multiple checks in parallel, faster than multiple calls. 2.20, there is an alternative syntax that does multiple checks in parallel, faster than multiple calls.
- Groups:
- Math - Geometry
Syntax
- Syntax:
- lineIntersects [begPos, endPos, objIgnore1, objIgnore2]
- Parameters:
- begPos: Array format PositionASL
- endPos: Array format PositionASL
- objIgnore1: Object - (Optional, default objNull) object to ignore. When testing intersections from an object/unit/vehicle, pass that object here to prevent intersections inside of the object
- objIgnore2: Object - (Optional, default objNull) another object to ignore. When testing intersections of a line between two objects, pass the second object here to prevent intersections inside of it being reported
- Return Value:
- Boolean - true if an intersection happens with an object (not with terrain)
Alternative Syntax
- Syntax:
- lineIntersects [[element1, element2, ...]]
- Parameters:
- elementN: Array format [begPos, endPos, objIgnore1, objIgnore2]:
- begPos: Array format PositionASL
- endPos: Array format PositionASL
- objIgnore1: Object - (Optional, default objNull) object to ignore. When testing intersections from an object/unit/vehicle, pass that object here to prevent intersections inside of the object
- objIgnore2: Object - (Optional, default objNull) another object to ignore. When testing intersections of a line between two objects, pass the second object here to prevent intersections inside of it being reported
 
- Return Value:
- Array format [result1, result2, ...] - true if an intersection happens with an object (not with terrain) for the Nth element
Examples
- Example 1:
- Example 2:
- Alternative syntax to check intersections in parallel:
Additional Information
- See also:
- lineIntersectsSurfaces lineIntersectsObjs lineIntersectsWith terrainIntersect terrainIntersectASL terrainIntersectAtASL intersect cursorObject cursorTarget checkVisibility
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
- Posted on May 31, 2012 - 10:46 (UTC)
- Please note the difference:
 
	

