NMPB08 Shared Libraries
SousCalculs/Embankment.h
Go to the documentation of this file.
00001 
00008 #ifndef EMBANKMENT_H
00009 #define EMBANKMENT_H
00010 
00011 #include "../PathStructures.h"
00012 
00013 #ifndef _WIN32
00014 #define  Embankment   _Local_PROPAN8_Embankment_
00015 #endif
00016 
00017 namespace EmbankmentNMPB
00018 {
00025         class Embankment
00026         {
00027         public:
00028                 
00038                 Embankment(vector<ProfilePointNMPB*> terrainItems, double freq);
00039 
00043                 ~Embankment(void)
00044                 {
00045                         if(_source) delete _source;
00046                         if(_receiver) delete _receiver;
00047                         if(_platformEnd) delete _platformEnd;
00048                         if(_O1) delete _O1;
00049                         if(_O2) delete _O2;
00050                         if(_sourceImage) delete _sourceImage;
00051                 }
00052 
00058                 double GetEmbankmentAttenuation()
00059                 {
00060                         return _embankmentAttenuation;
00061                 }
00062 
00068                 Position2D* GetSourceImage()
00069                 {
00070                         return _sourceImage;
00071                 }
00072 
00073         protected:
00077                 Position2D* _source;
00081                 Position2D* _receiver;
00085                 Position2D* _platformEnd;
00089                 Position2D* _O1;
00093                 Position2D* _O2;
00097                 Position2D* _sourceImage;
00101                 double _angleAlpha;
00105                 double _Gembankment;
00109                 double _embankmentAttenuation;
00110 
00120                 void FillPosInPerpendicularPlane(Position2D* posToFill, Position2D const* posToRead, double cosTheta);
00121 
00132                 bool DataInPerpendicularPlane(vector<ProfilePointNMPB*> terrainItems);
00133 
00143                 bool CheckData(vector<ProfilePointNMPB*> terrainItems);
00144 
00159                 bool LineCoeff(Position2D const* pos1, Position2D const* pos2, double &aCoef, double &bCoef);
00160 
00170                 void SourceImage(double aCoef, double bCoef, bool verticalSlope);
00171 
00191                 bool LinesIntersection(double a1, double b1, bool vert1, double a2, double b2, bool vert2, Position2D* Ipoint);
00192 
00198                 double ThetaAngle();
00199 
00215                 double HalfLength(double cosAngleTheta, double freq, double SimageI, double IR);
00216 
00224                 void EmbankmentCalculation(Position2D const* intersect, double freq);
00225         };
00226 }
00227 
00228 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines