Open PaperOpt
OpenPaperOpt/FiberGenerator.h
Go to the documentation of this file.
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