1 #ifndef CARMA_UTIL_DELAY_H
2 #define CARMA_UTIL_DELAY_H
35 nanoSeconds_ = delayInMeters / lightSpeed_ * nanoSecPerSec_;
42 dNanoSeconds_ = delayRateInMeters / lightSpeed_ * nanoSecPerSec_;
49 nanoSeconds_ = delayInNanoSec;
56 dNanoSeconds_ = delayRateInNanoSec;
63 return nanoSeconds_ / nanoSecPerSec_ * lightSpeed_;
70 return dNanoSeconds_ / nanoSecPerSec_ * lightSpeed_;
91 return dNanoSeconds_ / nanoSecPerSec_;
114 inline void flipDelay() {
118 inline void flipRate() {
127 static const double lightSpeed_ = 2.99792458e8;
128 static const double nanoSecPerSec_ = 1e9;
131 double dNanoSeconds_;
134 std::ostream&
operator<<(std::ostream& os, Delay delay);
140 #endif // End #ifndef CARMA_UTIL_DELAY_H
double metersPerSecond() const
Get the delay rate, in meters/sec.
double meters() const
Get the delay, in meters.
const Delay operator+(const Delay &delay) const
Add two Delays.
friend std::ostream & operator<<(std::ostream &os, Delay delay)
Allows cout << Delay.
void setDelayInMeters(double delayInMeters)
Set the delay, in meters.
const Delay operator-(const Delay &delay) const
Subtract two Delays.
Trivial class for handling delays.
void setDelayRateInNanoSeconds(double delayRateInNanoSec)
Set the delay rate, in nanoSeconds/second.
double secondsPerSecond() const
Get the delay rate, in seconds/sec.
void setDelayInNanoSeconds(double delayInNanoSec)
Set the delay, in nanoSeconds.
double nanoSecondsPerSecond() const
Get the delay, in nanoseconds/sec.
double nanoSeconds() const
Get the delay, in nanoseconds.
void setDelayRateInMeters(double delayRateInMeters)
Set the delay rate, in meters/second.
virtual ~Delay()
Destructor.
std::ostream & operator<<(std::ostream &os, const carma::services::Angle &angle)
Define the << operator to allow, e.g.