lineIntersectsObjs: Difference between revisions
Jump to navigation
Jump to search
Lou Montana (talk | contribs) m (Text replacement - "<code>([^<]*)\[\[([a-zA-Z][a-zA-Z0-9_]+)\]\]([^<]*) *<\/code>" to "<code>$1$2$3</code>") |
Pabstmirror (talk | contribs) m (add optional tags) |
||
(9 intermediate revisions by one other user not shown) | |||
Line 3: | Line 3: | ||
|game1= arma3 | |game1= arma3 | ||
|version1= 1.10 | |version1= 1.10 | ||
|arg= global | |arg= global | ||
Line 12: | Line 13: | ||
|p1= begPos: [[Array]] format [[Position#PositionASL|PositionASL]] - virtual line start | |p1= begPos: [[Array]] format [[Position#PositionASL|PositionASL]] - virtual line start | ||
|p2= endPos: [[Array]] format [[Position#PositionASL|PositionASL]] - virtual line end | |p2= endPos: [[Array]] format [[Position#PositionASL|PositionASL]] - virtual line end | ||
|p3= ignoreObj1: [[Object]] - object to ignore | |||
|p4= ignoreObj2: [[Object]] - object to ignore | |p3= ignoreObj1: [[Object]] - (Optional) - object to ignore | ||
|p5= sortByDistance: [[Boolean]] - [[true]]: furthest object first, closest object last; [[false]]: unsorted | |||
|p6= flags: [[Number]] | |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 | * 1 - CF_ONLY_WATER | ||
* 2 - CF_NEAREST_CONTACT | * 2 - CF_NEAREST_CONTACT | ||
Line 25: | Line 31: | ||
Flags can be combined: 2 + 4 = 6 is CF_NEAREST_OBJECT + CF_ONLY_STATIC | Flags can be combined: 2 + 4 = 6 is CF_NEAREST_OBJECT + CF_ONLY_STATIC | ||
|r1= [[Array]] of [[Object | |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"," | |||
// | ["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]] | |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.