lineIntersectsObjs: Difference between revisions
m (fixed alt syntax and example 4) |
BrettMayson (talk | contribs) mNo edit summary |
||
| Line 12: | Line 12: | ||
|s1= [[lineIntersectsObjs]] [begPos, endPos, ignoreObj1, ignoreObj2, sortByDistance, flags] | |s1= [[lineIntersectsObjs]] [begPos, endPos, ignoreObj1, ignoreObj2, sortByDistance, flags] | ||
|p1= begPos: | |p1= begPos: [[Position#PositionASL|PositionASL]] - virtual line start | ||
|p2= endPos: | |p2= endPos: [[Position#PositionASL|PositionASL]] - virtual line end | ||
|p3= ignoreObj1: [[Object]] - (Optional) - object to ignore | |p3= ignoreObj1: [[Object]] - (Optional) - object to ignore | ||
| Line 38: | Line 38: | ||
|p21= elementN: [[Array]] format [begPos, endPos, ignoreObj1, ignoreObj2, sortByDistance, flags] | |p21= elementN: [[Array]] format [begPos, endPos, ignoreObj1, ignoreObj2, sortByDistance, flags] | ||
* begPos: | * begPos: [[Position#PositionASL|PositionASL]] - virtual line start | ||
* endPos: | * endPos: [[Position#PositionASL|PositionASL]] - virtual line end | ||
* ignoreObj1: [[Object]] - (Optional) - object to ignore | * ignoreObj1: [[Object]] - (Optional) - object to ignore | ||
* ignoreObj2: [[Object]] - (Optional) - object to ignore | * ignoreObj2: [[Object]] - (Optional) - object to ignore | ||
Revision as of 07:47, 2 January 2026
Description
- Description:
- Returns a list of objects intersected by the line from begPos to endPos. Since
2.20, there is an alternative syntax that does multiple checks in parallel, faster than multiple calls. - Groups:
- Math - Geometry
Syntax
- Syntax:
- lineIntersectsObjs [begPos, endPos, ignoreObj1, ignoreObj2, sortByDistance, flags]
- Parameters:
- begPos: PositionASL - virtual line start
- endPos: PositionASL - virtual line end
- ignoreObj1: Object - (Optional) - object to ignore
- ignoreObj2: Object - (Optional) - object to ignore
- sortByDistance: Boolean - (Optional) - true: furthest object first, closest object last; false: unsorted
- flags: Number - (Optional)
- 1 - CF_ONLY_WATER
- 2 - CF_NEAREST_CONTACT
- 4 - CF_ONLY_STATIC
- 8 - CF_ONLY_DYNAMIC
- 16 - CF_FIRST_CONTACT
- 32 - CF_ALL_OBJECTS (Usable only with CF_FIRST_CONTACT and it will check one contact per object)
- Return Value:
- Array of Objects - intersecting objects
Alternative Syntax
- Syntax:
- lineIntersectsObjs [[element1, element2, ...]]
- Parameters:
- elementN: Array format [begPos, endPos, ignoreObj1, ignoreObj2, sortByDistance, flags]
- begPos: PositionASL - virtual line start
- endPos: PositionASL - virtual line end
- ignoreObj1: Object - (Optional) - object to ignore
- ignoreObj2: Object - (Optional) - object to ignore
- sortByDistance: Boolean - (Optional) - true: furthest object first, closest object last; false: unsorted
- flags: Number - (Optional)
- 1 - CF_ONLY_WATER
- 2 - CF_NEAREST_CONTACT
- 4 - CF_ONLY_STATIC
- 8 - CF_ONLY_DYNAMIC
- 16 - CF_FIRST_CONTACT
- 32 - CF_ALL_OBJECTS (Usable only with CF_FIRST_CONTACT and it will check one contact per object)
- Return Value:
- Array format [result1, result2, ...] - each result is an Array of intersecting objects for the Nth element
Examples
- Example 1:
- data = []; displayFunction = { { data set [_foreachindex, lineIntersectsObjs [eyePos player, ATLToASL screenToWorld [0.5, 0.5], objNull, objNull, false, _x]]; } forEach [1, 2, 4, 8, 16, 32]; hintSilent format ["ONLY_WATER: %1\nNEAREST_CONTACT: %2\nONLY_STATIC: %3\nONLY_DYNAMIC: %4\nFIRST_CONTACT: %5\nALL_OBJECTS: %6", data select 0, data select 1, data select 2, data select 3, data select 4, data select 5]; }; ["sample_id", "onEachFrame", "displayFunction"] call BIS_fnc_addStackedEventHandler; // example display objects' array in the middle of the screen sorted by 6 flags
- Example 2:
- Alternative syntax to check intersections in parallel:
Additional Information
- See also:
- lineIntersectsSurfaces lineIntersectsWith lineIntersects terrainIntersectASL terrainIntersectAtASL terrainIntersect 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 Mar 29, 2016 - 06:07 (UTC)
- Distance sorting is relative to object model center, and not intersect position.