|
Open PaperOpt
|
00001 #ifndef FIBERGENERATOR_H 00002 #define FIBERGENERATOR_H 00003 #include "Distribution.h" 00004 #include "WavePacket.h" 00005 #include "Fiber.h" 00006 #include "ComponentGenerator.h" 00007 #include "ScatteringParameters.h" 00008 #include <string> 00009 #include <vector> 00010 #include <complex> 00011 #include "Basesheet.h" 00012 #include "Fluorescence.h" 00013 using namespace std; 00014 class Fiber; 00015 class FiberGenerator : public ComponentGenerator 00016 { 00017 public: 00018 FiberGenerator(void); 00019 00034 FiberGenerator(ScatteringParameters* pWallScat, ScatteringParameters* pLumenScat, double contactReduction, V2<float>* pRoughness, 00035 Distributions::Distribution* pDistTheta, Distributions::Distribution* pDistPhi, 00036 Distributions::Distribution* pDistPolAngle, Distributions::Distribution* pDistEllipticity, Distributions::Distribution* pDistLength, 00037 Distributions::Distribution* pDistWidth, Distributions::Distribution* pDistWallThickness, Fluorescence* f); 00038 00039 ~FiberGenerator(void); 00040 00041 00042 Fiber* GenerateFiber(const Basesheet* const pBasesheet); 00043 00044 Component* GenerateComponent(const Basesheet* const pBasesheet); 00045 00046 private: 00047 00048 double mContactReduction; 00049 Distributions::Distribution* mpDistScat; 00050 Distributions::Distribution* mpDistTheta; 00051 Distributions::Distribution* mpDistPhi; 00052 Distributions::Distribution* mpDistPolAngle; 00053 Distributions::Distribution* mpDistEllipticity; 00054 Distributions::Distribution* mpDistLength; 00055 Distributions::Distribution* mpDistWidth; 00056 Distributions::Distribution* mpDistWallThickness; 00057 00058 vector<complex_LC> mRefrIndexLu; 00059 }; // FiberGenerator 00060 00061 #endif // FIBERGENERATOR_H