NMPB08 Shared Libraries
|
Class used to calculate the embankment attenuation. More...
#include <Embankment.h>
Public Member Functions | |
Embankment (vector< ProfilePointNMPB * > terrainItems, double freq) | |
Initialization of the Embankment class and embankment attenuation calculation. | |
~Embankment (void) | |
Embankment Destructor. | |
double | GetEmbankmentAttenuation () |
Gets the calculated embankment attenuation. | |
Position2D * | GetSourceImage () |
Gets the calculated source image 2D Position. | |
Protected Member Functions | |
void | FillPosInPerpendicularPlane (Position2D *posToFill, Position2D const *posToRead, double cosTheta) |
Calculates the 2D position in the perpendicular plane to road. | |
bool | DataInPerpendicularPlane (vector< ProfilePointNMPB * > terrainItems) |
Calculates the 2D position of needed items in the perpendicular plane to road and check data. | |
bool | CheckData (vector< ProfilePointNMPB * > terrainItems) |
Checks the data. | |
bool | LineCoeff (Position2D const *pos1, Position2D const *pos2, double &aCoef, double &bCoef) |
Calculates line coefficients : z = a*d + b (or d = b if line vertical) Warning The 2 positions must be different. | |
void | SourceImage (double aCoef, double bCoef, bool verticalSlope) |
Calculates the source image by the line z = a * d + b (or d = b if vertical) | |
bool | LinesIntersection (double a1, double b1, bool vert1, double a2, double b2, bool vert2, Position2D *Ipoint) |
Calculates the lines intersection. | |
double | ThetaAngle () |
Calculates the Theta angle in the formula (28) p.43. | |
double | HalfLength (double cosAngleTheta, double freq, double SimageI, double IR) |
Calculates half-length e. | |
void | EmbankmentCalculation (Position2D const *intersect, double freq) |
Calculates embankment attenuation (in _embankmentAttenuation) | |
Protected Attributes | |
Position2D * | _source |
the source position (S) | |
Position2D * | _receiver |
the receiver position (R) | |
Position2D * | _platformEnd |
the platform end | |
Position2D * | _O1 |
the foot of the bank position | |
Position2D * | _O2 |
the top of the bank position | |
Position2D * | _sourceImage |
the source image position (S'') | |
double | _angleAlpha |
the (O1x,O1O2) angle | |
double | _Gembankment |
the slope impedance | |
double | _embankmentAttenuation |
the embankment attenuation |
Class used to calculate the embankment attenuation.
p. 43-44 - § 9.3.5
Definition at line 25 of file Embankment.h.
EmbankmentNMPB::Embankment::Embankment | ( | vector< ProfilePointNMPB * > | terrainItems, |
double | freq | ||
) |
Initialization of the Embankment class and embankment attenuation calculation.
terrainItems | the terrain elements |
freq | the frequency |
ERRFrequency |
Definition at line 23 of file Embankment.cpp.
EmbankmentNMPB::Embankment::~Embankment | ( | void | ) | [inline] |
Embankment Destructor.
Definition at line 43 of file Embankment.h.
bool EmbankmentNMPB::Embankment::CheckData | ( | vector< ProfilePointNMPB * > | terrainItems | ) | [protected] |
Checks the data.
Checking according § 9.3.5 p. 43
terrainItems | The terrain items |
Definition at line 256 of file Embankment.cpp.
bool EmbankmentNMPB::Embankment::DataInPerpendicularPlane | ( | vector< ProfilePointNMPB * > | terrainItems | ) | [protected] |
Calculates the 2D position of needed items in the perpendicular plane to road and check data.
terrainItems | The terrain items |
ERREmbankment |
Definition at line 165 of file Embankment.cpp.
void EmbankmentNMPB::Embankment::EmbankmentCalculation | ( | Position2D const * | intersect, |
double | freq | ||
) | [protected] |
Calculates embankment attenuation (in _embankmentAttenuation)
intersect | The intersection point (I) |
freq | The frequency |
Definition at line 81 of file Embankment.cpp.
void EmbankmentNMPB::Embankment::FillPosInPerpendicularPlane | ( | Position2D * | posToFill, |
Position2D const * | posToRead, | ||
double | cosTheta | ||
) | [protected] |
Calculates the 2D position in the perpendicular plane to road.
posToFill | The position the fill |
posToRead | The position to read |
cosTheta | cos(Theta) |
Definition at line 144 of file Embankment.cpp.
double EmbankmentNMPB::Embankment::GetEmbankmentAttenuation | ( | ) | [inline] |
Gets the calculated embankment attenuation.
Definition at line 58 of file Embankment.h.
Position2D* EmbankmentNMPB::Embankment::GetSourceImage | ( | ) | [inline] |
Gets the calculated source image 2D Position.
Definition at line 68 of file Embankment.h.
double EmbankmentNMPB::Embankment::HalfLength | ( | double | cosAngleTheta, |
double | freq, | ||
double | SimageI, | ||
double | IR | ||
) | [protected] |
Calculates half-length e.
p. 43 - § 9.3.5 formula (28)
cosAngleTheta | The theta cosines (must be != 0) |
freq | The frequency (must be > 0) |
SimageI | The distance between Simage and I |
IR | The distance between Receiver and I |
Definition at line 456 of file Embankment.cpp.
bool EmbankmentNMPB::Embankment::LineCoeff | ( | Position2D const * | pos1, |
Position2D const * | pos2, | ||
double & | aCoef, | ||
double & | bCoef | ||
) | [protected] |
Calculates line coefficients : z = a*d + b (or d = b if line vertical) Warning The 2 positions must be different.
pos1 | The first line point |
pos2 | The second line pont |
aCoef | The a coefficient to fill |
bCoef | The b coefficient to fill |
Definition at line 316 of file Embankment.cpp.
bool EmbankmentNMPB::Embankment::LinesIntersection | ( | double | a1, |
double | b1, | ||
bool | vert1, | ||
double | a2, | ||
double | b2, | ||
bool | vert2, | ||
Position2D * | Ipoint | ||
) | [protected] |
Calculates the lines intersection.
a1 | Parameter a1 of the first line |
b1 | Parameter b1 of the first line |
vert1 | True if the first line is vertical |
a2 | Parameter a2 of the second line |
b2 | Parameter b2 of the second line |
vert2 | True if the second line is vertical |
Ipoint | The intersection point to fill |
Definition at line 383 of file Embankment.cpp.
void EmbankmentNMPB::Embankment::SourceImage | ( | double | aCoef, |
double | bCoef, | ||
bool | verticalSlope | ||
) | [protected] |
Calculates the source image by the line z = a * d + b (or d = b if vertical)
aCoef | The a coefficient |
bCoef | The b coefficient |
verticalSlope | true if vertical line |
Definition at line 344 of file Embankment.cpp.
double EmbankmentNMPB::Embankment::ThetaAngle | ( | ) | [protected] |
Calculates the Theta angle in the formula (28) p.43.
Definition at line 431 of file Embankment.cpp.
double EmbankmentNMPB::Embankment::_angleAlpha [protected] |
the (O1x,O1O2) angle
Definition at line 101 of file Embankment.h.
double EmbankmentNMPB::Embankment::_embankmentAttenuation [protected] |
the embankment attenuation
Definition at line 109 of file Embankment.h.
double EmbankmentNMPB::Embankment::_Gembankment [protected] |
the slope impedance
Definition at line 105 of file Embankment.h.
Position2D* EmbankmentNMPB::Embankment::_O1 [protected] |
the foot of the bank position
Definition at line 89 of file Embankment.h.
Position2D* EmbankmentNMPB::Embankment::_O2 [protected] |
the top of the bank position
Definition at line 93 of file Embankment.h.
Position2D* EmbankmentNMPB::Embankment::_platformEnd [protected] |
the platform end
Definition at line 85 of file Embankment.h.
Position2D* EmbankmentNMPB::Embankment::_receiver [protected] |
the receiver position (R)
Definition at line 81 of file Embankment.h.
Position2D* EmbankmentNMPB::Embankment::_source [protected] |
the source position (S)
Definition at line 77 of file Embankment.h.
Position2D* EmbankmentNMPB::Embankment::_sourceImage [protected] |
the source image position (S'')
Definition at line 97 of file Embankment.h.