lineIntersectsWith: Difference between revisions
BrettMayson (talk | contribs) mNo edit summary |
BrettMayson (talk | contribs) mNo edit summary |
||
| Line 39: | Line 39: | ||
|s2since= arma3 2.20 | |s2since= arma3 2.20 | ||
|p21= elementN: [[Array]] | |p21= elementN: [[Array]] with [begPos, endPos, objIgnore1, objIgnore2, sortByDistance] | ||
* begPos: [[Position#PositionASL|PositionASL]] - virtual line start | * begPos: [[Position#PositionASL|PositionASL]] - virtual line start | ||
* endPos: [[Position#PositionASL|PositionASL]] - virtual line end | * endPos: [[Position#PositionASL|PositionASL]] - virtual line end | ||
| Line 46: | Line 46: | ||
* sortByDistance: [[Boolean]] - (Optional) [[true]]: sort by '''desc'''ending distance (furthermost object first, closest object last); [[false]]: unsorted | * sortByDistance: [[Boolean]] - (Optional) [[true]]: sort by '''desc'''ending distance (furthermost object first, closest object last); [[false]]: unsorted | ||
|r2= [[Array]] | |r2= [[Array]] with [result1, result2, ...] - each result is an [[Array]] of intersecting objects for the Nth element | ||
|x1= <sqf>_objects = lineIntersectsWith [eyePos player, AGLToASL screenToWorld [0.5, 0.5]];</sqf> | |x1= <sqf>_objects = lineIntersectsWith [eyePos player, AGLToASL screenToWorld [0.5, 0.5]];</sqf> | ||
Latest revision as of 09:51, 2 January 2026
Description
- Description:
- Returns objects intersecting with the virtual line from begPos to endPos. By default, the resulting array of intersecting objects is unsorted (see sortByDistance).
Since
2.20, there is an alternative syntax that does multiple checks in parallel, faster than multiple calls. - Groups:
- Math - Geometry
Syntax
- Syntax:
- lineIntersectsWith [begPos, endPos, objIgnore1, objIgnore2, sortByDistance]
- Parameters:
- begPos: PositionASL - virtual line start
- endPos: PositionASL - virtual line end
- objIgnore1: Object - (Optional) 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) 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
- sortByDistance: Boolean - (Optional) true: sort by descending distance (furthermost object first, closest object last); false: unsorted
- Return Value:
- Array - intersecting objects
Alternative Syntax
- Syntax:
- lineIntersectsWith [[element1, element2, ...]]
- Parameters:
- elementN: Array with [begPos, endPos, objIgnore1, objIgnore2, sortByDistance]
- begPos: PositionASL - virtual line start
- endPos: PositionASL - virtual line end
- objIgnore1: Object - (Optional) 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) 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
- sortByDistance: Boolean - (Optional) true: sort by descending distance (furthermost object first, closest object last); false: unsorted
- Return Value:
- Array with [result1, result2, ...] - each result is an Array of intersecting objects for the Nth element
Examples
- Example 1:
- Example 2:
- Sort by distance:
- Example 3:
- Ignore objects:
- Example 4:
- Alternative syntax to check intersections in parallel:
Additional Information
- See also:
- lineIntersectsSurfaces lineIntersectsObjs lineIntersects terrainIntersect terrainIntersectASL terrainIntersectAtASL intersect cursorObject cursorTarget checkVisibility
Notes
-
Report bugs on the Feedback Tracker and/or discuss them on the Arma Discord.
Only post proven facts here! Add Note
- Posted on May 31, 2012 - 10:50 (UTC)
-
Please note the difference :
- terrainIntersect
- terrainIntersectASL
- lineIntersects
- lineIntersectsWith
- lineIntersectsObjs
- intersect