DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено

◆ GetObjectByDegAngle()

Widget GetObjectByDegAngle ( float deg_angle)
protected

См. определение в файле RadialMenu.c строка 421

422 {
423 for (int i = 0; i < m_RadialItemCards.Count(); ++i)
424 {
425 Widget w = m_RadialItemCards.GetKey(i);
426 float w_angle = GetAngleInDegrees(m_RadialItemCards.Get(w));
427 float offset = GetAngleInDegrees(m_AngleRadOffset) / 2;
428 float min_angle = w_angle - offset;
429 float max_angle = w_angle + offset;
430
431 if (min_angle < 0) min_angle += 360; //clamp 0-360
432 if (max_angle > 360) max_angle -= 360;
433
434 if (min_angle > max_angle) //angle radius is in the cycling point 360->
435 {
436 if (min_angle <= deg_angle) //is cursor position also before this point
437 {
438 if (deg_angle > max_angle)
439 {
440 return w;
441 }
442 }
443 else //is cursor position after this point
444 {
445 if (deg_angle < max_angle)
446 {
447 return w;
448 }
449 }
450 }
451 else
452 {
453 if (deg_angle >= min_angle && deg_angle < max_angle) //min, max angles are within 0-360 radius
454 {
455 return w;
456 }
457 }
458 }
459
460 return NULL;
461 }
ref map< Widget, float > m_RadialItemCards
Определения RadialMenu.c:17
float m_AngleRadOffset
Определения RadialMenu.c:19
float GetAngleInDegrees(float rad_angle)
Определения RadialMenu.c:498
Определения EnWidgets.c:190

Перекрестные ссылки GetAngleInDegrees(), m_AngleRadOffset и m_RadialItemCards.

Используется в Update().