added extension of signal activity with regards to light time travel

This commit is contained in:
Lovisa Hassler
2018-11-28 11:08:15 -05:00
parent fcb991b986
commit 01aefbee9a
4 changed files with 31 additions and 21 deletions

View File

@@ -291,8 +291,8 @@ void RenderableSignals::update(const UpdateData& data) {
for (int i = 0; i < SignalManager::_signalData.signals.size(); i++) {
SignalManager::Signal currentSignal = SignalManager::_signalData.signals[i];
if (isSignalActive(currentTime, currentSignal.startTime, currentSignal.endTime, currentSignal.lightTravelTime)) {
currentSignal.timeSinceStart = currentTime - Time::convertTime(currentSignal.startTime);
if (isSignalActive(currentTime, currentSignal)) {
currentSignal.timeSinceStart = currentTime - (Time::convertTime(currentSignal.startTime) - currentSignal.startTimeExtension);
pushSignalDataToVertexArray(currentSignal);
}
};
@@ -343,10 +343,10 @@ int RenderableSignals::findFileIndexForCurrentTime(double time, std::vector<doub
}
// Todo: handle signalIsSending, not only signalIsActive for the signal segments
bool RenderableSignals::isSignalActive(double currentTime, std::string signalStartTime,
std::string signalEndTime, double lightTravelTime) {
double startTimeInSeconds = SpiceManager::ref().ephemerisTimeFromDate(signalStartTime);
double endTimeInSeconds = SpiceManager::ref().ephemerisTimeFromDate(signalEndTime) + lightTravelTime;
bool RenderableSignals::isSignalActive(double currentTime, SignalManager::Signal signal) {
double startTimeInSeconds = SpiceManager::ref().ephemerisTimeFromDate(signal.startTime) - signal.startTimeExtension;
double endTimeInSeconds = SpiceManager::ref().ephemerisTimeFromDate(signal.endTime) + signal.endTimeExtension;
if (startTimeInSeconds <= currentTime && endTimeInSeconds >= currentTime)
return true;