26 #ifndef SIMDRIVER_DISTANCETIMEINTERVAL_H 27 #define SIMDRIVER_DISTANCETIMEINTERVAL_H 29 #include "model_collection.h" 72 return !std::isinf(_startTime) || !std::isinf(_startPosition);
104 void update(
double position,
double time) {
106 _actualPosition = position;
118 if(std::isinf(timeInterval)) {
121 _startTime = INFINITY;
129 _endTime = _actualTime + timeInterval;
140 if(std::isinf(endPosition)) {
143 _startPosition = INFINITY;
144 _endPosition = INFINITY;
151 _endPosition = endPosition;
182 double ft = std::isinf(_startTime) ? 0.0 : agent_model::scale(_actualTime, _endTime, _startTime, _delta);
183 double fs = std::isinf(_startPosition) ? 0.0 : agent_model::scale(_actualPosition, _endPosition, _startPosition, _delta);
186 return (std::max)(ft, fs);
205 #endif //SIMDRIVER_DISTANCETIMEINTERVAL_H Definition: DistanceTimeInterval.h:35
void setScale(double scale)
Definition: DistanceTimeInterval.h:81
void update(double position, double time)
Definition: DistanceTimeInterval.h:104
double _actualPosition
The actual position.
Definition: DistanceTimeInterval.h:39
double _startTime
The start time.
Definition: DistanceTimeInterval.h:42
void setDelta(double delta)
Definition: DistanceTimeInterval.h:59
void setTimeInterval(double timeInterval)
Definition: DistanceTimeInterval.h:116
double getFactor() const
Definition: DistanceTimeInterval.h:172
double _scale
The factor to be scaled.
Definition: DistanceTimeInterval.h:48
double _endPosition
The end position.
Definition: DistanceTimeInterval.h:46
void setEndPosition(double endPosition)
Definition: DistanceTimeInterval.h:138
double _startPosition
The start position.
Definition: DistanceTimeInterval.h:45
Definition: DistanceTimeInterval.h:33
double _endTime
The end time.
Definition: DistanceTimeInterval.h:43
double getScale() const
Definition: DistanceTimeInterval.h:92
double getScaledFactor() const
Definition: DistanceTimeInterval.h:195
double _delta
The power to calculate the scale.
Definition: DistanceTimeInterval.h:49
bool isSet() const
Definition: DistanceTimeInterval.h:70
void reset()
Definition: DistanceTimeInterval.h:160
double _actualTime
The actual time.
Definition: DistanceTimeInterval.h:40