directionalScanIntersectUtil.py (1006B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\inflight\scannerFiles\directionalScanIntersectUtil.py 2 import math 3 import geo2 4 5 def IsWithinSphere(pos, range): 6 rad = geo2.Vec3Length(pos) 7 return rad <= range 8 9 10 def IsWithinHalfSphere(pos, range, direction): 11 if geo2.Vec3Dot(direction, pos) < 0: 12 return False 13 return IsWithinSphere(pos, range) 14 15 16 def IsWithinCone(pos, angle, range, direction): 17 dird0 = geo2.Vec3Dot(direction, pos) 18 c2 = math.cos(angle / 2) ** 2 19 d0d0 = geo2.Vec3Dot(pos, pos) 20 return dird0 >= 0.0 and dird0 ** 2 >= c2 * d0d0 and d0d0 <= range ** 2 21 22 23 def IsWithinScanShape(pos, egoPos, angle, range, direction): 24 if not egoPos: 25 return 26 pos = geo2.Vec3Subtract(egoPos, pos) 27 if angle <= math.pi: 28 return IsWithinCone(pos, angle, range, direction) 29 elif angle < 2 * math.pi: 30 return IsWithinHalfSphere(pos, range, direction) 31 else: 32 return IsWithinSphere(pos, range)