Commit e85144b4 authored by Alexander Bock's avatar Alexander Bock
Browse files

Performance optimization of ImageSequencer::instrumentActive

parent 6a2624db
master content/2012EventProfile elumenati/spout-implementation elumenati/spoutImplementation feature/2012Fieldlines feature/DSGWrapper feature/WSA feature/apollo-missions feature/arrow-renderable feature/asset-helper feature/asset-meta-update-part2 feature/asset-require feature/atmosphere-stars-rendering feature/bufferTransferTestings feature/camera-control-during-path feature/camera-path-stability feature/cef-update feature/change-renderbin-runtime feature/cmake feature/codegen-lua feature/codegen-lua-jenkins feature/compile-times feature/direction-hint-renderable feature/downscaledATM feature/du-meshes-selection feature/dynamicRootGraph feature/fieldlines feature/gamma-correction feature/geojson feature/geojson-renderable feature/getting-started-tour feature/grid-labels feature/grids-update feature/gui-mouseinteraction-fix feature/horizons-framework feature/horizons-unit-tests feature/iSWA feature/idle-behavior-updates feature/imageTestKeys2Actions feature/jenkins-codegen feature/jenkins-fix feature/jenkins-timeout feature/juice feature/jwst-pointing feature/jwst-trail-update feature/jwst-update feature/kameleonvolume-merge feature/labels-rendering feature/location-measure feature/macos feature/mars-moons feature/mas-model feature/missions feature/model-opacity feature/molecule_rendering feature/mollwide-projection feature/multiple-endpoints feature/multiresvolume feature/orientation-check feature/paper-atmosphere feature/properties-visibility feature/renderable-enabled-event feature/rover-visualization feature/roverterrain feature/roverterrain-mergefix feature/satellites feature/saturn-shepherd-moons feature/science-on-the-sphere feature/sgct-framebuffer-fixes feature/sgct-gui feature/sgct-gui-editable feature/sgct-gui-jenkins feature/sgct-json feature/sgct-ui feature/side-by-side-removal feature/skybrowser feature/skybrowser-cleanup feature/skybrowser-drag-and-drop feature/skybrowser-reload feature/solarbrowsing feature/spacecraft-instruments feature/spaceweather-stream feature/spice-update feature/state-with-time feature/tileprovider-minlevel feature/tileproviders feature/tle-bodymass feature/touchEventListener feature/transparency-rendering-last feature/ubuntu2204 feature/unit-tests feature/updateTSP feature/userproperties feature/various-changes feature/video-on-globe feature/visual-testing feature/visual-testing-try2 feature/volume-fixes feature/warnings feature/wormhole feature/xbox-update hotfix/scaling integration/atm-paper-fixes-2 integration/moon-mars-show integration/paper-atmosphere issue/1043 issue/1161 issue/1279 issue/1366-2 issue/1479 issue/1559 issue/1607 issue/1666 issue/1707 issue/1751 issue/1814 issue/1827 issue/1842 issue/1845 issue/1851 issue/1905 issue/1908 issue/1910 issue/1911 issue/1964 issue/1989 issue/1995 issue/2029 issue/2055 issue/2093 issue/2111 issue/2118 issue/2121 issue/2127 issue/2133 issue/2137 issue/2194 issue/2207 issue/2209 issue/2212 issue/2236 issue/2259 issue/2261 issue/2266 issue/2269 issue/843 issue/888 issue/hdrModels jenkins/1 jenkins/2 jenkins/2286 jenkins/utah-test-1 project/2021-wisdome-installation project/climate project/exoplanet-explorer project/exoplanets-expert-tool project/lights-2020-installation project/spaceship-installation project/spvl rc/0.18.1 temp/skybrowser-animation-fixes-merge thesis/2017/mars-rover-visualization thesis/2018/data-loader thesis/2018/dsn thesis/2018/flightcontroller thesis/2018/mas-model thesis/2019/spaceDebris thesis/2019/spaceweather-stream thesis/2020/software-integration thesis/2020/sonification thesis/2021/airtraffic thesis/2021/fieldlines thesis/2021/multiuser-collab thesis/2021/multiuser-collab3 thesis/2021/skybrowser thesis/2022/climate thesis/2022/cosmic-view thesis/2022/fieldline-rendering thesis/2022/remote-streaming thesis/2022/software-integration thesis/2022/software-integration_dod thesis/2022/software-integration_receive-ra-dec thesis/2022/software-integration_refactor-simp thesis/2022/software-integration_velocity-support thesis/2022/streaming 0 vislabs/release/2.1 research/dynamic-scene-graph research/atmospheres releases/v0.18.0 releases/v0.17.2 releases/v0.17.1 releases/v0.17.0 releases/v0.16.1 releases/v0.16.0 releases/v0.15.2 releases/v0.15.1 releases/v0.15.0 releases/v0.14.1 releases/v0.14.0 releases/v0.13.0 releases/v0.12.0 releases/v0.11.1 releases/v0.11.0 releases/v0.10.0 releases/v0.9.0 releases/v0.8.0 releases/v0.7.0 releases/v0.6.0 releases/v0.5.0 releases/v0.4.0 releases/v0.3.4 releases/v0.3.3 releases/prerelease/kulturnatten-2016 releases/prerelease/ips-2016 releases/prerelease/eurovis-2016 releases/prerelease/earth-day-2017 releases/prerelease/astronomylive-2017 releases/prerelease/astc-2017 releases/prerelease/agu-2016 releases/beta/beta-9 releases/beta/beta-8 releases/beta/beta-7 releases/beta/beta-5 releases/beta/beta-4_2 releases/beta/beta-4 releases/beta/beta-3 releases/beta/beta-2 releases/beta/beta-1_2 releases/beta/beta-1 rc/ccmc-panelreview dev/fc-port-change beta/beta-4_2 beta/beta-4 beta/beta-3 beta/beta-2 beta/beta-1_2 beta/beta-1
No related merge requests found
Showing with 17 additions and 8 deletions
+17 -8
......@@ -191,15 +191,16 @@ std::map<std::string, bool> ImageSequencer::getActiveInstruments(){
// return entire map, seen in GUI.
return _switchingMap;
}
bool ImageSequencer::instrumentActive(std::string instrumentID){
for (auto i : _instrumentTimes){
bool ImageSequencer::instrumentActive(std::string instrumentID) {
for (const auto& i : _instrumentTimes) {
//check if this instrument is in range
if (i.second.inRange(_currentTime)){
if (i.second.inRange(_currentTime)) {
//if so, then get the corresponding spiceID
std::vector<std::string> spiceIDs = _fileTranslation[i.first]->getTranslation();
//check which specific subinstrument is firing
for (auto s : spiceIDs){
if (s == instrumentID){
for (auto s : spiceIDs) {
if (s == instrumentID) {
return true;
}
}
......@@ -209,7 +210,7 @@ bool ImageSequencer::instrumentActive(std::string instrumentID){
}
float ImageSequencer::instrumentActiveTime(const std::string& instrumentID) const {
for (auto i : _instrumentTimes){
for (const auto& i : _instrumentTimes){
//check if this instrument is in range
if (i.second.inRange(_currentTime)){
//if so, then get the corresponding spiceID
......@@ -319,6 +320,14 @@ void ImageSequencer::sortData() {
std::sort(_subsetMap[sub.first]._subset.begin(),
_subsetMap[sub.first]._subset.end(), imageComparer);
}
std::sort(
_instrumentTimes.begin(),
_instrumentTimes.end(),
[](const std::pair<std::string, TimeRange>& a, const std::pair<std::string, TimeRange>& b) {
return a.second._min < b.second._min;
}
);
}
void ImageSequencer::runSequenceParser(SequenceParser* parser){
......
......@@ -54,7 +54,7 @@ struct TimeRange {
bool inRange(double min, double max){
return (min >= _min && max <= _max);
}
bool inRange(double val){
bool inRange(double val) const {
return (val >= _min && val <= _max);
}
double _min;
......
......@@ -142,7 +142,7 @@ void GuiPerformanceComponent::render() {
std::sort(
indices.begin(),
indices.end(),
[sortIndex, &averages](int a, int b) {
[sortIndex, &averages](size_t a, size_t b) {
return averages[a][sortIndex] > averages[b][sortIndex];
}
);
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment