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