|
Open PaperOpt
|
00001 // LightSource.h: interface for the LightSource class. 00002 // 00004 00005 #if !defined(AFX_LightSource_H__4664300F_2477_11D6_804A_00609705562A__INCLUDED_) 00006 #define AFX_LightSource_H__4664300F_2477_11D6_804A_00609705562A__INCLUDED_ 00007 00008 #if _MSC_VER >= 1000 00009 #pragma once 00010 #endif // _MSC_VER >= 1000 00011 00012 00013 #include "WavePacket.h" 00014 #include <string> 00015 #include <vector> 00016 #include "utilities.h" 00017 #include "Distribution.h" 00018 00019 00020 00021 class LightSource 00022 { 00023 public: 00024 00039 LightSource(Distributions::Distribution* pDistTarget, Distributions::Distribution* pDistDirection, V3<float> origin, 00040 int polVal, float polarizationValue, int noOfWp, vector<float>& rLambdas, vector<float>& rLambdaWeights); 00041 virtual ~LightSource(); 00042 LightSource(); 00043 00050 virtual int Process(WavePacket &wp, float lam); 00051 00052 // Setting functions 00053 /* void m_set_lightsource(char type[20],char distribution[20], int number, 00054 float polarisation,int pol_val, V3 <double> origin, V3 <double> center, float x_min, float x_max, float y_min, float y_max); 00055 */ 00056 00057 // Get functions 00058 int GetNumber(){return(mNumber);}; 00059 00060 //Public variables added by ML TEMP FIX. 00061 vector<float> mLambda; 00062 vector<float> mLambdaWeights; 00063 int nrWavePackets; 00064 00065 private: 00066 00067 00068 00069 int mPolVal; //polarised (1) or not (0) 00070 char mType[20]; // beam elrepho lambert 00071 char mDistribution[20]; //uniform, gaussian pencil 00072 //float mlambda; 00073 float mDiameter; 00074 int mNumber; 00075 float mPolarisation; 00076 float mOrigin[3]; 00077 float mCenter[3]; 00078 float mXMin,mYMin,mXMax,mYMax; // must be defined by the surface profile 00079 // for uniform distribution 00080 00081 // used for equallyn spaced imllumination points: 00082 int mNbrx,mNbry; 00083 double mDiffx,mDiffy; 00084 00085 //Distributions for target (illuminated spot) and direction (LC) 00086 Distributions::Distribution* mpDistTarget; 00087 Distributions::Distribution* mpDistDirection; 00088 00089 }; 00090 00091 #endif // !defined(AFX_LightSource_H__4664300F_2477_11D6_804A_00609705562A__INCLUDED_) 00092