@@ -565,12 +565,15 @@ void GUIMain::load(irr::IrrlichtDevice* device, Lang* language, std::vector<std:
565565 radarGainScrollbar = new irr::gui::ScrollDial (irr::core::vector2d<irr::s32>(0.0850 *su,0.040 *sh),0.02 *su,guienv,mainRadarTab,GUI_ID_RADAR_GAIN_SCROLL_BAR);
566566 radarClutterScrollbar = new irr::gui::ScrollDial (irr::core::vector2d<irr::s32>(0.1425 *su,0.040 *sh),0.02 *su,guienv,mainRadarTab,GUI_ID_RADAR_CLUTTER_SCROLL_BAR);
567567 radarRainScrollbar = new irr::gui::ScrollDial (irr::core::vector2d<irr::s32>(0.2000 *su,0.040 *sh),0.02 *su,guienv,mainRadarTab,GUI_ID_RADAR_RAIN_SCROLL_BAR);
568+ radarBrillScrollbar = new irr::gui::ScrollDial (irr::core::vector2d<irr::s32>(0.2000 * su, 0.115 * sh), 0.01 * su, guienv, mainRadarTab, GUI_ID_RADAR_BRILL_SCROLL_BAR);
568569 (guienv->addStaticText (language->translate (" gain" ).c_str (),irr::core::rect<irr::s32>(0.0600 *su,0.070 *sh,0.1100 *su,0.100 *sh),false ,true ,mainRadarTab))->setTextAlignment (irr::gui::EGUIA_CENTER,irr::gui::EGUIA_CENTER);
569570 (guienv->addStaticText (language->translate (" clutter" ).c_str (),irr::core::rect<irr::s32>(0.1165 *su,0.070 *sh,0.1675 *su,0.100 *sh),false ,true ,mainRadarTab))->setTextAlignment (irr::gui::EGUIA_CENTER,irr::gui::EGUIA_CENTER);
570571 (guienv->addStaticText (language->translate (" rain" ).c_str (),irr::core::rect<irr::s32>(0.1750 *su,0.070 *sh,0.2250 *su,0.100 *sh),false ,true ,mainRadarTab))->setTextAlignment (irr::gui::EGUIA_CENTER,irr::gui::EGUIA_CENTER);
572+ (guienv->addStaticText (language->translate (" brill" ).c_str (), irr::core::rect<irr::s32>(0.1750 * su, 0.125 * sh, 0.2250 * su, 0.155 * sh), false , true , mainRadarTab))->setTextAlignment (irr::gui::EGUIA_CENTER, irr::gui::EGUIA_CENTER);
571573 radarGainScrollbar->setSmallStep (2 );
572574 radarClutterScrollbar->setSmallStep (2 );
573575 radarRainScrollbar->setSmallStep (2 );
576+ radarBrillScrollbar->setSmallStep (2 );
574577
575578 eblLeftButton = guienv->addButton (irr::core::rect<irr::s32>(0.060 *su,0.160 *sh,0.115 *su,0.190 *sh),mainRadarTab,GUI_ID_RADAR_EBL_LEFT_BUTTON,language->translate (" eblLeft" ).c_str ());
576579 eblRightButton = guienv->addButton (irr::core::rect<irr::s32>(0.170 *su,0.160 *sh,0.225 *su,0.190 *sh),mainRadarTab,GUI_ID_RADAR_EBL_RIGHT_BUTTON,language->translate (" eblRight" ).c_str ());
@@ -585,15 +588,18 @@ void GUIMain::load(irr::IrrlichtDevice* device, Lang* language, std::vector<std:
585588 radarGainScrollbar2 = new irr::gui::ScrollDial (irr::core::vector2d<irr::s32>(0.040 *radarSu,0.040 *radarSu),0.03 *radarSu,guienv,largeRadarControls,GUI_ID_RADAR_GAIN_SCROLL_BAR);
586589 radarClutterScrollbar2 = new irr::gui::ScrollDial (irr::core::vector2d<irr::s32>(0.105 *radarSu,0.040 *radarSu),0.03 *radarSu,guienv,largeRadarControls,GUI_ID_RADAR_CLUTTER_SCROLL_BAR);
587590 radarRainScrollbar2 = new irr::gui::ScrollDial (irr::core::vector2d<irr::s32>(0.170 *radarSu,0.040 *radarSu),0.03 *radarSu,guienv,largeRadarControls,GUI_ID_RADAR_RAIN_SCROLL_BAR);
591+ radarBrillScrollbar2 = new irr::gui::ScrollDial (irr::core::vector2d<irr::s32>(radarTL.X + 0.050 * radarSu, radarTL.Y + 0.700 * radarSu), 0.03 * radarSu, guienv, guienv->getRootGUIElement (), GUI_ID_RADAR_BRILL_SCROLL_BAR);
592+ radarBrillScrollbar2->setToolTipText (language->translate (" brill" ).c_str ());
588593
589594 radarGainScrollbar2->setSmallStep (2 );
590595 radarClutterScrollbar2->setSmallStep (2 );
591596 radarRainScrollbar2->setSmallStep (2 );
597+ radarBrillScrollbar2->setSmallStep (2 );
592598
593599 (guienv->addStaticText (language->translate (" gain" ).c_str (),irr::core::rect<irr::s32>(0.010 *radarSu,0.070 *radarSu,0.070 *radarSu,0.100 *radarSu),false ,true ,largeRadarControls))->setTextAlignment (irr::gui::EGUIA_CENTER,irr::gui::EGUIA_CENTER);
594600 (guienv->addStaticText (language->translate (" clutter" ).c_str (),irr::core::rect<irr::s32>(0.075 *radarSu,0.070 *radarSu,0.135 *radarSu,0.100 *radarSu),false ,true ,largeRadarControls))->setTextAlignment (irr::gui::EGUIA_CENTER,irr::gui::EGUIA_CENTER);
595601 (guienv->addStaticText (language->translate (" rain" ).c_str (),irr::core::rect<irr::s32>(0.140 *radarSu,0.070 *radarSu,0.200 *radarSu,0.100 *radarSu),false ,true ,largeRadarControls))->setTextAlignment (irr::gui::EGUIA_CENTER,irr::gui::EGUIA_CENTER);
596-
602+
597603 guienv->addButton (irr::core::rect<irr::s32>(0.025 *radarSu,0.110 *radarSu,0.085 *radarSu,0.160 *radarSu),largeRadarControls,GUI_ID_RADAR_INCREASE_BUTTON,language->translate (" increaserange" ).c_str ());
598604 guienv->addButton (irr::core::rect<irr::s32>(0.025 *radarSu,0.165 *radarSu,0.085 *radarSu,0.210 *radarSu),largeRadarControls,GUI_ID_RADAR_DECREASE_BUTTON,language->translate (" decreaserange" ).c_str ());
599605
@@ -770,10 +776,12 @@ void GUIMain::load(irr::IrrlichtDevice* device, Lang* language, std::vector<std:
770776 radarGainScrollbar->drop ();
771777 radarClutterScrollbar->drop ();
772778 radarRainScrollbar->drop ();
779+ radarBrillScrollbar->drop ();
773780
774781 radarGainScrollbar2->drop ();
775782 radarClutterScrollbar2->drop ();
776783 radarRainScrollbar2->drop ();
784+ radarBrillScrollbar2->drop ();
777785
778786 // largeRadarControls->drop();
779787
@@ -952,6 +960,7 @@ void GUIMain::load(irr::IrrlichtDevice* device, Lang* language, std::vector<std:
952960 radarCursorRightButton2->setVisible (radarLarge);
953961 radarCursorUpButton2->setVisible (radarLarge);
954962 radarCursorDownButton2->setVisible (radarLarge);
963+ radarBrillScrollbar2->setVisible (radarLarge);
955964
956965 // weatherScrollbar->setVisible(showInterface);
957966 // rainScrollbar->setVisible(showInterface);
@@ -1185,10 +1194,12 @@ void GUIMain::load(irr::IrrlichtDevice* device, Lang* language, std::vector<std:
11851194 radarGainScrollbar->setPos (Utilities::round (guiData->radarGain ));
11861195 radarClutterScrollbar->setPos (Utilities::round (guiData->radarClutter ));
11871196 radarRainScrollbar->setPos (Utilities::round (guiData->radarRain ));
1197+ radarBrillScrollbar->setPos (Utilities::round (guiData->radarBrill * 100 ));
11881198
11891199 radarGainScrollbar2->setPos (Utilities::round (guiData->radarGain ));
11901200 radarClutterScrollbar2->setPos (Utilities::round (guiData->radarClutter ));
11911201 radarRainScrollbar2->setPos (Utilities::round (guiData->radarRain ));
1202+ radarBrillScrollbar2->setPos (Utilities::round (guiData->radarBrill * 100 ));
11921203
11931204 weatherScrollbar->setPos (Utilities::round (guiData->weather *10.0 )); // (Weather scroll bar is 0-120, weather is 0-12)
11941205 rainScrollbar->setPos (Utilities::round (guiData->rain *10.0 )); // (Rain scroll bar is 0-100, rain is 0-10)
@@ -1686,6 +1697,8 @@ guiTideHeight = guiData->tideHeight;
16861697 irr::s32 centreY;
16871698 irr::s32 radius;
16881699
1700+ irr::f32 brilliance = model->getBrilliance ();
1701+
16891702 if (radarLarge) {
16901703 centreX = largeRadarScreenCentreX;
16911704 centreY = largeRadarScreenCentreY;
@@ -1700,7 +1713,7 @@ guiTideHeight = guiData->tideHeight;
17001713
17011714 // If full screen radar, draw a 4:3 box around the radar display area
17021715 if (radarLarge) {
1703- device->getVideoDriver ()->draw2DRectangleOutline (radarLargeRect,irr::video::SColor (255 ,0 ,0 ,0 ));
1716+ device->getVideoDriver ()->draw2DRectangleOutline (radarLargeRect,brill ( irr::video::SColor (255 ,0 ,0 ,0 ), brilliance ));
17041717 }
17051718
17061719 irr::f32 radarHeadingIndicator;
@@ -1713,7 +1726,7 @@ guiTideHeight = guiData->tideHeight;
17131726 irr::s32 deltaY = -1 *radius*cos (irr::core::DEGTORAD*radarHeadingIndicator);
17141727 irr::core::position2d<irr::s32> radarCentre (centreX,centreY);
17151728 irr::core::position2d<irr::s32> radarHeading (centreX+deltaX,centreY+deltaY);
1716- device->getVideoDriver ()->draw2DLine (radarCentre,radarHeading,irr::video::SColor (255 , 255 , 255 , 255 )); // Todo: Make these colours configurable
1729+ device->getVideoDriver ()->draw2DLine (radarCentre,radarHeading,brill ( irr::video::SColor (255 , 255 , 255 , 255 ), brilliance )); // Todo: Make these colours configurable
17171730
17181731 // draw a look direction line
17191732 if (radarHeadUp) {
@@ -1725,19 +1738,19 @@ guiTideHeight = guiData->tideHeight;
17251738 irr::s32 deltaYView = -1 *radius*cos (irr::core::DEGTORAD*radarHeadingIndicator);
17261739 irr::core::position2d<irr::s32> lookInner (centreX + 0.9 *deltaXView,centreY + 0.9 *deltaYView);
17271740 irr::core::position2d<irr::s32> lookOuter (centreX + deltaXView,centreY + deltaYView);
1728- device->getVideoDriver ()->draw2DLine (lookInner,lookOuter,irr::video::SColor (255 , 255 , 0 , 0 )); // Todo: Make these colours configurable
1741+ device->getVideoDriver ()->draw2DLine (lookInner,lookOuter,brill ( irr::video::SColor (255 , 255 , 0 , 0 ), brilliance )); // Todo: Make these colours configurable
17291742
17301743 // draw an EBL line
17311744 irr::s32 deltaXEBL = radius*sin (irr::core::DEGTORAD*guiRadarEBLBrg);
17321745 irr::s32 deltaYEBL = -1 *radius*cos (irr::core::DEGTORAD*guiRadarEBLBrg);
17331746 irr::core::position2d<irr::s32> eblOuter (centreX + deltaXEBL,centreY + deltaYEBL);
1734- device->getVideoDriver ()->draw2DLine (radarCentre,eblOuter,irr::video::SColor (255 , 255 , 0 , 0 ));
1747+ device->getVideoDriver ()->draw2DLine (radarCentre,eblOuter,brill ( irr::video::SColor (255 , 255 , 0 , 0 ), brilliance ));
17351748 // draw EBL range
17361749 if (guiRadarEBLRangeNm > 0 && guiRadarRangeNm >= guiRadarEBLRangeNm) {
17371750 irr::f32 eblRangePx = radius*guiRadarEBLRangeNm/guiRadarRangeNm;
17381751 irr::u8 noSegments = eblRangePx/2 ;
17391752 if (noSegments < 10 ) {noSegments=10 ;}
1740- device->getVideoDriver ()->draw2DPolygon (radarCentre,eblRangePx,irr::video::SColor (255 , 255 , 0 , 0 ),noSegments); // An n segment polygon, to approximate a circle
1753+ device->getVideoDriver ()->draw2DPolygon (radarCentre,eblRangePx,brill ( irr::video::SColor (255 , 255 , 0 , 0 ), brilliance ),noSegments); // An n segment polygon, to approximate a circle
17411754 }
17421755
17431756 // draw radar cursor
@@ -1747,7 +1760,7 @@ guiTideHeight = guiData->tideHeight;
17471760 // Plot if within the display and not at zero range
17481761 if (cursorPixelRadius <= radius && guiRadarCursorRangeNm > 0 ) {
17491762 irr::core::position2d<irr::s32> cursorCentre (centreX + deltaXCursor,centreY + deltaYCursor);
1750- device->getVideoDriver ()->draw2DPolygon (cursorCentre,radius/20 ,irr::video::SColor (255 , 255 , 0 , 0 ),4 ); // a 4 segment polygon, i.e. a square!
1763+ device->getVideoDriver ()->draw2DPolygon (cursorCentre,radius/20 ,brill ( irr::video::SColor (255 , 255 , 0 , 0 ), brilliance ),4 ); // a 4 segment polygon, i.e. a square!
17511764 }
17521765
17531766 // Draw compass rose around radar (?Rotate with radar in head up and course up?)
@@ -1772,7 +1785,7 @@ guiTideHeight = guiData->tideHeight;
17721785 irr::core::position2d<irr::s32> ticInner (centreX + scaling*deltaXTic,centreY + scaling*deltaYTic);
17731786 irr::core::position2d<irr::s32> ticOuter (centreX + deltaXTic,centreY + deltaYTic);
17741787
1775- device->getVideoDriver ()->draw2DLine (ticInner,ticOuter,irr::video::SColor (255 , 128 , 128 , 128 ));
1788+ device->getVideoDriver ()->draw2DLine (ticInner,ticOuter,brill ( irr::video::SColor (255 , 128 , 128 , 128 ), brilliance ));
17761789
17771790 // Show the angle if needed
17781791 if (showValue) {
@@ -1785,7 +1798,7 @@ guiTideHeight = guiData->tideHeight;
17851798 irr::s32 textEndX = textStartX+textWidth;
17861799 irr::s32 textStartY = centreY + 0.8 *deltaYTic-0.5 *textHeight;
17871800 irr::s32 textEndY = textStartY+textHeight;
1788- guienv->getSkin ()->getFont ()->draw (angleText,irr::core::rect<irr::s32>(textStartX,textStartY,textEndX,textEndY),irr::video::SColor (255 ,128 ,128 ,128 ));
1801+ guienv->getSkin ()->getFont ()->draw (angleText,irr::core::rect<irr::s32>(textStartX,textStartY,textEndX,textEndY),brill ( irr::video::SColor (255 ,128 ,128 ,128 ), brilliance ));
17891802 }
17901803
17911804 }
@@ -1802,7 +1815,7 @@ guiTideHeight = guiData->tideHeight;
18021815 for (unsigned int i = 1 ; i<rangeRings; i++) {
18031816 irr::f32 ringRadius = radius*i/(float )rangeRings;
18041817 irr::u8 noSegments = ringRadius/2 ;
1805- device->getVideoDriver ()->draw2DPolygon (radarCentre,ringRadius,irr::video::SColor (128 , 128 , 128 , 128 ),noSegments);
1818+ device->getVideoDriver ()->draw2DPolygon (radarCentre,ringRadius,brill ( irr::video::SColor (128 , 128 , 128 , 128 ), brilliance ),noSegments);
18061819 }
18071820
18081821 }
@@ -1867,3 +1880,10 @@ guiTideHeight = guiData->tideHeight;
18671880 {
18681881 linesText->setText (irr::core::stringw (textToShow.c_str ()).c_str ());
18691882 }
1883+
1884+ irr::video::SColor GUIMain::brill (irr::video::SColor originalColour, irr::f32 brilliance) const
1885+ {
1886+ irr::video::SColor black = irr::video::SColor (255 , 0 , 0 , 0 );
1887+ return originalColour.getInterpolated (black, brilliance);
1888+
1889+ }
0 commit comments