00001 // $Id: 00002 //################################################################### 00003 // 00004 // Optical Communication Systems Simulator 00005 // 00006 // Copyright (2000): 00007 // Optical Fiber Communications Laboratory (OFCL) 00008 // Computer Science & Electrical Engineering Department (CSEE) 00009 // University of Maryland Baltimore County (UMBC) 00010 // 00011 //################################################################### 00012 00013 #ifndef _OCS_POLARIZ_TRANSFORMER_HH_ 00014 #define _OCS_POLARIZ_TRANSFORMER_HH_ 00015 00016 #ifndef _OCS_TYPE_SCATTERING_ 00017 #define _OCS_TYPE_SCATTERING_ 00018 enum typeScattering { RX_RY_RX = 1, 00019 RY_RZ_RY = 2, 00020 RX_RZ_RY = 3}; 00021 #endif 00022 00023 #include "ocsOptSignal.hh" 00024 #include "ocsReduPolarizTransformer.hh" 00025 00026 // ##### Class PolarizTransformer 00027 class PolarizTransformer 00028 { 00029 public: 00030 PolarizTransformer( int TypeScattering2, 00031 OptSignal *oOptSignalTmp); 00032 00033 00034 void TransformPolarization( double psi 00035 ,double theta 00036 ,double phi); 00037 00038 void TransformPolarization(void); 00039 void UndoLastPolarizTransformation(void); 00040 00041 void TransformPolarization(cplx Jones0,cplx Jones1); 00042 00043 string WriteTypeScattering(void); 00044 void SwitchOptSignalData(OptSignal *oOptSignal2); 00045 00046 private: 00047 typeScattering TypeScattering; 00048 OptSignal *oOptSignal; 00049 cplx TransM[2][2]; 00050 double psiLast, thetaLast, phiLast; 00051 int qtPoints; 00052 00053 ReduPolarizTransformer * oReduPolarizTransformer; 00054 00055 }; 00056 00057 #endif /* _OCS_POLARIZ_TRANSFORMER_HH_ */