📄 path_loss.hpp
字号:
#ifndef PATH_LOSS_H #define PATH_LOSS_H #include <math.h> #include <boost/shared_ptr.hpp> #include <boost/utility.hpp> class WirelessCommSignal; class PhysicalLayer; class PathLoss : boost::noncopyable { public: typedef boost::shared_ptr<PathLoss> PathLossPtr; virtual ~PathLoss(); virtual double getRecvdStrength(const WirelessCommSignal& signal, const PhysicalLayer& receiver) const = 0; protected: static const bool m_DEBUG_SIGNAL_STRENGTH = false; PathLoss(); private: }; typedef boost::shared_ptr<PathLoss> PathLossPtr; class FreeSpace : public PathLoss { public: typedef boost::shared_ptr<FreeSpace> FreeSpacePtr; static inline FreeSpacePtr create(); static inline FreeSpacePtr create(double lossFactor); virtual double getRecvdStrength(const WirelessCommSignal& signal, const PhysicalLayer& receiver) const; protected: FreeSpace(); FreeSpace(double lossFactor); protected: static const double m_DEFAULT_LOSS_FACTOR; double m_lossFactor; private: }; typedef boost::shared_ptr<FreeSpace> FreeSpacePtr; class TwoRay : public FreeSpace { public: typedef boost::shared_ptr<TwoRay> TwoRayPtr; static inline TwoRayPtr create(); static inline TwoRayPtr create(double lossFactor); virtual double getRecvdStrength(const WirelessCommSignal& signal, const PhysicalLayer& receiver) const; protected: TwoRay(); TwoRay(double lossFactor); private: static const double m_DEFAULT_ANTENNA_HEIGHT; double m_antennaHeight; }; typedef boost::shared_ptr<TwoRay> TwoRayPtr; // Inline Functions inline FreeSpacePtr FreeSpace::create() { FreeSpacePtr p(new FreeSpace()); return p; } inline FreeSpacePtr FreeSpace::create(double lossFactor) { FreeSpacePtr p(new FreeSpace(lossFactor)); return p; } inline TwoRayPtr TwoRay::create() { TwoRayPtr p(new TwoRay()); return p; } inline TwoRayPtr TwoRay::create(double lossFactor) { TwoRayPtr p(new TwoRay(lossFactor)); return p; } // Overloaded Operators #endif // PATH_LOSS_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -