Skip to content

Commit 9d51f5f

Browse files
committed
Sky: move AUTO mode out of sky selection list
1 parent f42f331 commit 9d51f5f

2 files changed

Lines changed: 18 additions & 10 deletions

File tree

src/OpenCOVER/plugins/general/Sky/Sky.cpp

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -145,25 +145,30 @@ bool Sky::init()
145145
{
146146
if (selection >= skyListNameStart)
147147
{
148-
m_mode = TEXTURE;
149148
setSkyEntry(m_skies[selection - skyListNameStart]);
150149
}
151150
else if (selection == 0)
152151
{
153152
setSkyDisabled();
154153
}
155154
else if (selection == 1)
156-
{
157-
setSkyAuto();
158-
}
159-
else if (selection == 2)
160155
{
161156
setSkyEphemeris();
162157
} });
163158

164159
skyPath = configString("sky", "skyDir", "/data/Geodata/sky")->value();
165160
loadSkies();
166161

162+
autoSkyButton = new ui::Button(skyGroup, "autoSky");
163+
autoSkyButton->setText("Auto Sky");
164+
autoSkyButton->setState(false);
165+
autoSkyButton->setCallback([this](bool state)
166+
{
167+
if (state)
168+
setSkyAuto();
169+
else
170+
m_mode = TEXTURE; });
171+
167172
northAngle = 0;
168173
update();
169174

@@ -315,7 +320,6 @@ void Sky::updateSkyMenu()
315320

316321
std::vector<std::string> skyNames = {
317322
"None",
318-
"Auto",
319323
#ifdef HAVE_EPHEMERIS
320324
"Ephemeris",
321325
#endif
@@ -371,6 +375,7 @@ void Sky::setSky(std::string_view nameOrFile)
371375
void Sky::setSkyDisabled()
372376
{
373377
m_mode = DISABLED;
378+
autoSkyButton->setState(false);
374379
removeExistingSky();
375380
}
376381

@@ -379,6 +384,7 @@ void Sky::setSkyEphemeris()
379384
#ifdef HAVE_EPHEMERIS
380385
removeExistingSky();
381386
m_mode = EPHEMERIS;
387+
autoSkyButton->setState(false);
382388
m_ephemeralSky = std::make_unique<EphemeralSky>(skyGroup, skyRootNode);
383389
#else
384390
std::cerr << "Cannot switch to Ephemeris sky, compiled without osgEphemeris. Disabling sky." << std::endl;
@@ -389,6 +395,7 @@ void Sky::setSkyEphemeris()
389395
void Sky::setSkyAuto()
390396
{
391397
m_mode = AUTO;
398+
autoSkyButton->setState(true);
392399
m_currentAutoSky = nullptr;
393400
updateAutoSky();
394401
}
@@ -495,17 +502,17 @@ void Sky::updateAutoSky()
495502
double lon = globalPosition.x();
496503
double lat = globalPosition.y();
497504

498-
const auto dist2 = [](const SkyEntry* s, double lon, double lat)
505+
const auto dist2 = [](const SkyEntry *s, double lon, double lat)
499506
{
500507
const double dx = s->longitude - lon;
501508
const double dy = s->latitude - lat;
502-
return dx*dx + dy*dy;
509+
return dx * dx + dy * dy;
503510
};
504511

505512
const double currentDistSq = dist2(m_currentAutoSky, lon, lat);
506-
const double closestDistSq = dist2(closestSky, lon, lat);
513+
const double closestDistSq = dist2(closestSky, lon, lat);
507514

508-
constexpr double SKY_THRESHOLD = 1e-4 ; // roughly 1 km
515+
constexpr double SKY_THRESHOLD = 1e-4; // roughly 1 km
509516

510517
if (closestSky != m_currentAutoSky && ((currentDistSq - closestDistSq) > SKY_THRESHOLD))
511518
{

src/OpenCOVER/plugins/general/Sky/Sky.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,7 @@ class Sky : public opencover::coVRPlugin, public opencover::ui::Owner
109109
opencover::ui::Group *skyGroup;
110110
opencover::ui::SelectionList *skyList;
111111
int skyListNameStart = 0;
112+
opencover::ui::Button *autoSkyButton;
112113
opencover::ui::Slider *skyNorthSlider = nullptr;
113114

114115
float northAngle;

0 commit comments

Comments
 (0)