ACE3/addons/missileguidance/functions/fnc_checkSeekerAngle.sqf

31 lines
804 B
Plaintext

/*
* Author: jaynus
* Returns whether the target position is within the maximum angle FOV of the provided seeker
* objects current direction.
*
* Argument:
* 0: Seeker [Object]
* 1: Target [Position]
* 2: Max Angle [Degrees]
*
* Return value:
* Boolean
*/
#include "script_component.hpp"
private["_seeker", "_targetPos", "_seekerMaxAngle", "_sensorPos", "_testPointVector", "_testDotProduct"];
_seeker = _this select 0;
_targetPos = _this select 1;
_seekerMaxAngle = _this select 2;
_sensorPos = getPosASL _seeker;
_testPointVector = vectorNormalized (_targetPos vectorDiff _sensorPos);
_testDotProduct = (vectorNormalized (velocity _seeker)) vectorDotProduct _testPointVector;
if(_testDotProduct < (cos _seekerMaxAngle)) exitWith {
false
};
true