|
Open PaperOpt
|
00001 #ifndef COMPONENTGENERATOR_H 00002 #define COMPONENTGENERATOR_H 00003 #include "Component.h" 00004 #include "Basesheet.h" 00005 #include "StructureObject.h" 00006 #include "Fluorescence.h" 00007 #include "Array2D.h" 00008 #include <vector> 00009 #include <complex> 00010 using namespace std; 00011 class Component; 00012 class Basesheet; 00013 class ComponentGenerator 00014 { 00015 public: 00016 ComponentGenerator(); 00017 virtual ~ComponentGenerator(void); 00018 virtual Component* GenerateComponent(const Basesheet* const pBasesheet)=0; 00019 complex_LC GetRefractionIndex(int NbrLambda) const { return mRefrIndex[NbrLambda]; } 00020 int mType; 00021 protected: 00022 vector<complex_LC> mRefrIndex; 00023 vector<double> mLambda; 00024 vector<double> mQScat; 00025 vector<double> mQAbs; 00026 vector<double> mQAbsFluo; 00027 Fluorescence* mpFluor; //Fluorescence matrix 00028 V2<float>* mRoughness; //Microroughness of components. 00029 double Interp(double X1, double X2, double Y1, double Y2, double X); 00030 double Interp2D(double X1, double X2, double Y1, double Y2, double Z1, double Z2, double Z3, double Z4, double X, double Y); 00031 00037 Component* mComponent; 00038 }; 00039 00040 #endif