TODO: Short description for this AnalogueModel. More...
#include <IntensityModel.h>
Inherits AnalogueModel.
Public Member Functions | |
void | filterSignal (Signal &s) |
Has to be overriden by every implementation. |
TODO: Short description for this AnalogueModel.
Definition at line 36 of file IntensityModel.h.
void IntensityModel::filterSignal | ( | Signal & | s | ) | [inline, virtual] |
Has to be overriden by every implementation.
Filters a specified Signal by adding an attenuation over time to the Signal.
Implements AnalogueModel.
Definition at line 40 of file IntensityModel.h.
References Signal::addAttenuation(), Coord::distance(), Signal::getMove(), Signal::getSignalStart(), and TimeMapping< Interpolator >::setValue().
{ TimeMapping<Linear>* attMapping = new TimeMapping<Linear> (); // Determine distance between sender and receiver Move srcMove = s.getMove(); Coord srcCoord, rcvCoord; double distance = 0; srcCoord = srcMove.getPositionAt(s.getSignalStart()); rcvCoord = move->getPositionAt(s.getSignalStart()); distance = rcvCoord.distance(srcCoord); Argument arg; attMapping->setValue(arg, 4*PI*pow(distance, 2)); s.addAttenuation(attMapping); }