Difference between revisions of "lineIntersectsSurfaces"
Das Attorney (talk | contribs) |
Das Attorney (talk | contribs) m |
||
Line 68: | Line 68: | ||
arrow setPosASL (_ins select 0 select 0); | arrow setPosASL (_ins select 0 select 0); | ||
arrow setVectorUp (_ins select 0 select 1); | arrow setVectorUp (_ins select 0 select 1); | ||
+ | _intDist = (_ins select 0 select 0) distance (ATLToASL positionCameraToWorld [0,0,0]); | ||
_sel = ""; | _sel = ""; | ||
_dist = 10000; | _dist = 10000; | ||
Line 73: | Line 74: | ||
_ins2 = [_ins select 0 select 3,_x] intersect [ | _ins2 = [_ins select 0 select 3,_x] intersect [ | ||
positionCameraToWorld [0,0,0], | positionCameraToWorld [0,0,0], | ||
− | positionCameraToWorld [0,0, | + | positionCameraToWorld [0,0,_intDist + 0.1] |
]; | ]; | ||
Line 83: | Line 84: | ||
} forEach _ins2; | } forEach _ins2; | ||
if (_sel != "") exitWith {}; | if (_sel != "") exitWith {}; | ||
− | } forEach [" | + | } forEach ["GEOM","IFIRE","FIRE","VIEW"]; |
− | hintsilent format [" | + | hintsilent format ["GEOM: %1",_sel]; |
}; | }; | ||
["sample_id","onEachFrame","testFunc"] call BIS_fnc_addStackedEventHandler; | ["sample_id","onEachFrame","testFunc"] call BIS_fnc_addStackedEventHandler; |
Revision as of 00:01, 13 August 2015
Notes
Bottom Section
You can combine with intersect command to find selection names on intersected objects (in this example priority is geom >> ifire >> fire >> view):
<nowiki>arrow = "Sign_Arrow_F" createVehicle [0,0,0];
testFunc = { _ins = lineIntersectsSurfaces [ ATLToASL positionCameraToWorld [0,0,0], ATLToASL positionCameraToWorld [0,0,1000], player ]; if (count _ins == 0) exitWith { arrow setPosASL [0,0,0] }; arrow setPosASL (_ins select 0 select 0); arrow setVectorUp (_ins select 0 select 1); _intDist = (_ins select 0 select 0) distance (ATLToASL positionCameraToWorld [0,0,0]); _sel = ""; _dist = 10000; { _ins2 = [_ins select 0 select 3,_x] intersect [ positionCameraToWorld [0,0,0], positionCameraToWorld [0,0,_intDist + 0.1] ];
{ if (_x select 1 < _dist) then { _dist = _x select 1; _sel = _x select 0 }; } forEach _ins2; if (_sel != "") exitWith {}; } forEach ["GEOM","IFIRE","FIRE","VIEW"];
hintsilent format ["GEOM: %1",_sel]; }; ["sample_id","onEachFrame","testFunc"] call BIS_fnc_addStackedEventHandler;