diff --git a/modules/spacecraftinstruments/util/imagesequencer.cpp b/modules/spacecraftinstruments/util/imagesequencer.cpp index 15465a5aa3..872923e61a 100644 --- a/modules/spacecraftinstruments/util/imagesequencer.cpp +++ b/modules/spacecraftinstruments/util/imagesequencer.cpp @@ -416,6 +416,8 @@ void ImageSequencer::runSequenceParser(SequenceParser& parser) { source.begin(), source.end() ); + + _subsetMap[key]._range.include(it.second._range); } _instrumentTimes.insert( diff --git a/modules/spacecraftinstruments/util/projectioncomponent.cpp b/modules/spacecraftinstruments/util/projectioncomponent.cpp index 990af24184..107d1bb2fd 100644 --- a/modules/spacecraftinstruments/util/projectioncomponent.cpp +++ b/modules/spacecraftinstruments/util/projectioncomponent.cpp @@ -51,12 +51,14 @@ namespace { constexpr const char* keyInstrumentAspect = "Instrument.Aspect"; constexpr const char* keyTranslation = "DataInputTranslation"; + constexpr const char* keyTimesTranslation = "TimesDataInputTranslation"; constexpr const char* keyProjObserver = "Observer"; constexpr const char* keyProjTarget = "Target"; constexpr const char* keyProjAberration = "Aberration"; constexpr const char* keySequenceDir = "Sequence"; + constexpr const char* keyTimesSequenceDir = "TimesSequence"; constexpr const char* keySequenceType = "SequenceType"; constexpr const char* keyNeedsTextureMapDilation = "TextureMap"; @@ -67,6 +69,7 @@ namespace { constexpr const char* sequenceTypePlaybook = "playbook"; constexpr const char* sequenceTypeHybrid = "hybrid"; constexpr const char* sequenceTypeInstrumentTimes = "instrument-times"; + constexpr const char* sequenceTypeImageAndInstrumentTimes = "image-and-instrument-times"; constexpr const char* placeholderFile = "${DATA}/placeholder.png"; @@ -149,7 +152,7 @@ documentation::Documentation ProjectionComponent::Documentation() { keySequenceType, new StringInListVerifier( { sequenceTypeImage, sequenceTypePlaybook, sequenceTypeHybrid, - sequenceTypeInstrumentTimes } + sequenceTypeInstrumentTimes, sequenceTypeImageAndInstrumentTimes } ), Optional::Yes, "This value determines which type of sequencer is used for generating " @@ -369,6 +372,27 @@ void ProjectionComponent::initialize(const std::string& identifier, ) ); } + else if (sequenceType == sequenceTypeImageAndInstrumentTimes) { + parsers.push_back( + std::make_unique( + identifier, + std::move(sequenceSource), + translationDictionary + ) + ); + + std::string timesSequenceSource = absPath(dictionary.value(keyTimesSequenceDir)); + ghoul::Dictionary timesTranslationDictionary; + dictionary.getValue(keyTimesTranslation, timesTranslationDictionary); + + parsers.push_back( + std::make_unique( + identifier, + std::move(timesSequenceSource), + timesTranslationDictionary + ) + ); + } } for (std::unique_ptr& parser : parsers) {