lineIntersectsObjs: Difference between revisions
Jump to navigation
Jump to search
m (Text replacement - "|gr1= Geometry |GROUP1=" to "|gr1= Math - Geometry |GROUP1=") |
Pabstmirror (talk | contribs) m (add optional tags) |
||
(51 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
{{ | {{RV|type=command | ||
| arma3 | | |game1= arma3 | ||
|version1= 1.10 | |||
| | |arg= global | ||
| | |gr1= Math - Geometry | ||
| ''' | |descr= Returns a list of objects intersected by the line from ''begPos'' to ''endPos''. | ||
| | |s1= [[lineIntersectsObjs]] [begPos, endPos, ignoreObj1, ignoreObj2, sortByDistance, flags] | ||
| [[Array]] | |p1= begPos: [[Array]] format [[Position#PositionASL|PositionASL]] - virtual line start | ||
| | |p2= endPos: [[Array]] format [[Position#PositionASL|PositionASL]] - virtual line end | ||
|p3= ignoreObj1: [[Object]] - (Optional) - object to ignore | |||
|p4= ignoreObj2: [[Object]] - (Optional) - object to ignore | |||
|p5= sortByDistance: [[Boolean]] - (Optional) - [[true]]: furthest object first, closest object last; [[false]]: unsorted | |||
| [[ | |p6= 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) | |||
Flags can be combined: 2 + 4 = 6 is CF_NEAREST_OBJECT + CF_ONLY_STATIC | |||
|r1= [[Array]] of [[Object]]s - intersecting objects | |||
|x1= <sqf> | |||
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 | |||
</sqf> | |||
[[ | |seealso= [[lineIntersectsSurfaces]] [[lineIntersectsWith]] [[terrainIntersect]] [[terrainIntersectASL]] [[terrainIntersectAtASL]] [[lineIntersects]] [[intersect]] [[cursorObject]] [[cursorTarget]] [[checkVisibility]] | ||
[[ | }} | ||
{{Note | |||
|user= AgentRev | |||
|timestamp= 20160329060700 | |||
|text= Distance sorting is relative to object model center, and not intersect position. | |||
}} | |||
Distance sorting is relative to object model center, and not intersect position. | |||
Latest revision as of 16:58, 4 October 2024
Description
- Description:
- Returns a list of objects intersected by the line from begPos to endPos.
- Groups:
- Math - Geometry
Syntax
- Syntax:
- lineIntersectsObjs [begPos, endPos, ignoreObj1, ignoreObj2, sortByDistance, flags]
- Parameters:
- begPos: Array format PositionASL - virtual line start
- endPos: Array format 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
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
Additional Information
- See also:
- lineIntersectsSurfaces lineIntersectsWith terrainIntersect terrainIntersectASL terrainIntersectAtASL lineIntersects 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 Mar 29, 2016 - 06:07 (UTC)
- Distance sorting is relative to object model center, and not intersect position.