NMPB08 Shared Libraries
Public Member Functions | Protected Member Functions | Protected Attributes
EmbankmentNMPB::Embankment Class Reference

Class used to calculate the embankment attenuation. More...

#include <Embankment.h>

List of all members.

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.
Position2DGetSourceImage ()
 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

Detailed Description

Class used to calculate the embankment attenuation.

p. 43-44 - § 9.3.5

Definition at line 25 of file Embankment.h.


Constructor & Destructor Documentation

EmbankmentNMPB::Embankment::Embankment ( vector< ProfilePointNMPB * >  terrainItems,
double  freq 
)

Initialization of the Embankment class and embankment attenuation calculation.

Parameters:
terrainItemsthe terrain elements
freqthe frequency
Exceptions:
ERRFrequency

Definition at line 23 of file Embankment.cpp.

EmbankmentNMPB::Embankment::~Embankment ( void  ) [inline]

Embankment Destructor.

Definition at line 43 of file Embankment.h.


Member Function Documentation

bool EmbankmentNMPB::Embankment::CheckData ( vector< ProfilePointNMPB * >  terrainItems) [protected]

Checks the data.

Checking according § 9.3.5 p. 43

Parameters:
terrainItemsThe terrain items
Returns:
true if embankment can be calculated

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.

Parameters:
terrainItemsThe terrain items
Returns:
True if the data are OK
Exceptions:
ERREmbankment

Definition at line 165 of file Embankment.cpp.

void EmbankmentNMPB::Embankment::EmbankmentCalculation ( Position2D const *  intersect,
double  freq 
) [protected]

Calculates embankment attenuation (in _embankmentAttenuation)

Parameters:
intersectThe intersection point (I)
freqThe 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.

Parameters:
posToFillThe position the fill
posToReadThe position to read
cosThetacos(Theta)

Definition at line 144 of file Embankment.cpp.

double EmbankmentNMPB::Embankment::GetEmbankmentAttenuation ( ) [inline]

Gets the calculated embankment attenuation.

Returns:
the embankment attenuation

Definition at line 58 of file Embankment.h.

Position2D* EmbankmentNMPB::Embankment::GetSourceImage ( ) [inline]

Gets the calculated source image 2D Position.

Returns:
the 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)

Parameters:
cosAngleThetaThe theta cosines (must be != 0)
freqThe frequency (must be > 0)
SimageIThe distance between Simage and I
IRThe distance between Receiver and I
Returns:
the half-length e

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.

Parameters:
pos1The first line point
pos2The second line pont
aCoefThe a coefficient to fill
bCoefThe b coefficient to fill
Returns:
true if the line is vertical

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.

Parameters:
a1Parameter a1 of the first line
b1Parameter b1 of the first line
vert1True if the first line is vertical
a2Parameter a2 of the second line
b2Parameter b2 of the second line
vert2True if the second line is vertical
IpointThe intersection point to fill
Returns:
true if there is an only intersection

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)

Parameters:
aCoefThe a coefficient
bCoefThe b coefficient
verticalSlopetrue 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.

Returns:
the angle

Definition at line 431 of file Embankment.cpp.


Member Data Documentation

the (O1x,O1O2) angle

Definition at line 101 of file Embankment.h.

the embankment attenuation

Definition at line 109 of file Embankment.h.

the slope impedance

Definition at line 105 of file Embankment.h.

the foot of the bank position

Definition at line 89 of file Embankment.h.

the top of the bank position

Definition at line 93 of file Embankment.h.

the platform end

Definition at line 85 of file Embankment.h.

the receiver position (R)

Definition at line 81 of file Embankment.h.

the source position (S)

Definition at line 77 of file Embankment.h.

the source image position (S'')

Definition at line 97 of file Embankment.h.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines