1 #ifndef SZA_UTIL_DELAY_H
2 #define SZA_UTIL_DELAY_H
13 #include "carma/szautil/Length.h"
45 nanoSeconds_ = delayInMeters / lightSpeed_ * nanoSecPerSec_;
52 dNanoSeconds_ = delayRateInMeters / lightSpeed_ * nanoSecPerSec_;
59 nanoSeconds_ = delayInNanoSec;
66 dNanoSeconds_ = delayRateInNanoSec;
73 return nanoSeconds_ / nanoSecPerSec_ * lightSpeed_;
80 return dNanoSeconds_ / nanoSecPerSec_ * lightSpeed_;
87 return nanoSeconds_ / nanoSecPerSec_;
101 return dNanoSeconds_;
108 return dNanoSeconds_ / nanoSecPerSec_;
131 inline void flipDelay() {
135 inline void flipRate() {
144 static const double lightSpeed_;
145 static const double nanoSecPerSec_;
148 double dNanoSeconds_;
152 std::ostream& operator<<(std::ostream& os, Delay delay);
159 #endif // End #ifndef SZA_UTIL_DELAY_H
double nanoSecondsPerSecond()
Get the delay rate, in nanoseconds/sec.
Trivial class for handling delays.
void setDelayRateInNanoSeconds(double delayRateInNanoSec)
Set the delay rate, in nanoSeconds/second.
Delay operator+(Delay &delay)
Add two Delays.
void setDelayRateInMeters(double delayRateInMeters)
Set the delay rate, in meters/second.
virtual ~Delay()
Destructor.
double nanoSeconds()
Get the delay, in nanoseconds.
double meters()
Get the delay, in meters.
void setDelay(Length length)
Set the delay.
double secondsPerSecond()
Get the delay rate, in seconds/sec.
void setDelayInMeters(double delayInMeters)
Set the delay, in meters.
Delay operator-(Delay &delay)
Subtract two Delays.
double seconds()
Get the delay, in seconds.
friend std::ostream & operator<<(std::ostream &os, Delay delay)
Allows cout << Delay.
double metersPerSecond()
Get the delay rate, in meters/sec.
void setDelayInNanoSeconds(double delayInNanoSec)
Set the delay, in nanoSeconds.