![]() |
VR-Link API Documentation for HLA 1516
|
00001 /********************************************************************* 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 #ifndef DtBeamAntennaPatternRecord_H_ 00006 #define DtBeamAntennaPatternRecord_H_ 00007 00012 00013 #include <vlpi/disEnums.h> 00014 #include <matrix/vlMath.h> 00015 #include "antPatRec.h" 00016 #include "packets/transmitterP.h" 00017 00018 struct DT_DLL_VL DtNetBeamAntennaPatternRecord; 00019 00029 class DT_DLL_VL DtBeamAntennaPatternRecord : public DtAntennaPatternRecord 00030 { 00031 public: 00032 00034 DtBeamAntennaPatternRecord(); 00035 00037 DtBeamAntennaPatternRecord(const DtBeamAntennaPatternRecord& orig); 00038 00040 virtual ~DtBeamAntennaPatternRecord(); 00041 00043 DtBeamAntennaPatternRecord& operator=( 00044 const DtBeamAntennaPatternRecord& orig); 00045 00047 DtBeamAntennaPatternRecord(const DtAntennaPatternRecord& orig); 00048 00050 virtual void setAngles(const DtTaitBryan &angles); 00051 virtual const DtTaitBryan &angles() const; 00052 00054 virtual void setBeamwidth(DtFloat32 azimuth, 00055 DtFloat32 elevation); 00056 00058 virtual DtFloat32 azimuthBeamwidth() const; 00059 00061 virtual DtFloat32 elevationBeamwidth() const; 00062 00064 virtual void setReferenceSystem(const DtReferenceSys sys); 00065 virtual DtReferenceSys referenceSystem() const; 00066 00068 virtual void setElectricField(DtFloat32 z, DtFloat32 x); 00069 00071 virtual DtFloat32 electricFieldZ() const; 00072 00074 virtual DtFloat32 electricFieldX() const; 00075 00077 virtual void setPhase(DtFloat32 phase); 00078 virtual DtFloat32 phase() const; 00079 00081 virtual void printData() const; 00082 virtual void printDataToStream(std::ostream& stream) const; 00083 00085 virtual DtAntennaPatternRecord* clone() const; 00086 00088 virtual void setFromNet(const void* net, int size); 00089 00091 virtual const void* netRep(int* size = NULL) const; 00092 00094 virtual int netSize() const; 00095 00097 virtual void setFromNetBeam(const DtNetBeamAntennaPatternRecord& net); 00098 00101 virtual void setFromNet(const DtNetBeamAntennaPatternRecord& net); 00102 00104 virtual const DtNetBeamAntennaPatternRecord& netBeam() const; 00105 00108 virtual const DtNetBeamAntennaPatternRecord& networkRepresentation() const; 00109 00110 protected: 00111 DtTaitBryan myBeamDirection; 00112 DtFloat32 myAzimuthBandwidth; 00113 DtFloat32 myElevationBeamwidth; 00114 DtReferenceSys myReferenceSystem; 00115 DtFloat32 myEz; 00116 DtFloat32 myEx; 00117 DtFloat32 myPhase; 00118 00119 DtNetBeamAntennaPatternRecord myNetBeam; 00120 }; 00121 00122 inline const DtNetBeamAntennaPatternRecord& 00123 DtBeamAntennaPatternRecord::networkRepresentation() const 00124 { 00125 return netBeam(); 00126 } 00127 00128 inline void DtBeamAntennaPatternRecord::setFromNet( 00129 const DtNetBeamAntennaPatternRecord& net) 00130 { 00131 setFromNetBeam(net); 00132 } 00133 00134 #endif //DtBeamAntennaPatternRecord_H_ 00135