Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

vuColour31a.h

Go to the documentation of this file.
00001 #ifndef _VUCOLOUR31A_H_
00002 #define  _VUCOLOUR31A_H_
00003 
00004 #include <math.h>
00005 #include "vuColour.h"
00006 
00008 static float CXFRGBto31[31][3] = {
00009   { 3114.62, -795.361, 1344.83 },
00010   { 1771, -895.781, 2188.5 },
00011   { -316.973, 37.1734, -337.209 },
00012   { -209.781, 121.115, 24.6211 },
00013   { -2248.86, 6.00256, -576.98 },
00014   { 536.207, -20.1586, 335.44 },
00015   { -38.9062, -26.7664, 10.4036 },
00016   { 1191.22, -503.787, 762.416 },
00017   { -1847.7, 908.315, -2048.51 },
00018   { 526.844, -111.009, 1208.23 },
00019   { 1026.86, -105.122, 299.374 },
00020   { -39.5918, 73.5609, -65.1626 },
00021   { -362.516, -193.222, -240.738 },
00022 };
00023 
00024 class vuColourRGBa;
00025 
00030 class vuColour31a : public vuColour<32>
00031 {
00032  public:
00034   vuColour31a() : vuColour<32>() {};
00036   vuColour31a(const vuColour31a& inst) : vuColour<32>(inst) {};
00038   vuColour31a(const vuColour<32>& inst) : vuColour<32>(inst) {};
00041   vuColour31a(const float *f) : vuColour<32>(f) {};
00044   vuColour31a(const double *f) : vuColour<32>(f) {};
00046   vuColour31a(const float f) : vuColour<32>(f) {};
00047 
00049   vuColour31a(const vuColourRGBa& rgba) { from(rgba); };
00050 
00055   void from(const vuColourRGBa& rgba)
00056     {
00057       fromColourN((vuColour<4>&)(rgba), (float*)CXFRGBto31);
00058     };
00059 
00061   vuColour31a& planckian(const float T)
00062       {
00063           m_Data[0] = float(537.8239999*exp(-10277.14286/T));
00064           m_Data[1] = float(475.3580484*exp(-9399.825790/T));
00065           m_Data[2] = float(421.3991769*exp(-8564.285720/T));
00066           m_Data[3] = float(374.6259499*exp(-7767.607980/T));
00067           m_Data[4] = float(333.9463897*exp(-7007.142860/T));
00068           m_Data[5] = float(298.4541116*exp(-6280.476190/T));
00069           m_Data[6] = float(267.3935805*exp(-5585.403730/T));
00070           m_Data[7] = float(240.1324465*exp(-4919.908820/T));
00071           m_Data[8] = float(216.1394033*exp(-4282.142860/T));
00072           m_Data[9] = float(194.9663831*exp(-3670.408170/T));
00073           m_Data[10] = float(176.2341683*exp(-3083.142860/T));
00074           m_Data[11] = float(159.6207160*exp(-2518.907570/T));
00075           m_Data[12] = float(144.8516401*exp(-1976.373630/T));
00076           m_Data[13] = float(131.6924226*exp(-1454.312670/T));
00077           m_Data[14] = float(119.9420137*exp(-951.5873000/T));
00078           m_Data[15] = float(109.4275530*exp(-467.1428600/T));
00079           m_Data[16] = 100.0f;
00080           m_Data[17] = float(91.53050461*exp(450.7518800/T));
00081           m_Data[18] = float(83.90738129*exp(885.9605900/T));
00082           m_Data[19] = float(77.03357918*exp(1306.416460/T));
00083           m_Data[20] = float(70.82455967*exp(1712.857140/T));
00084           m_Data[21] = float(65.20651053*exp(2105.971890/T));
00085           m_Data[22] = float(60.11483889*exp(2486.405530/T));
00086           m_Data[23] = float(55.49289573*exp(2854.761900/T));
00087           m_Data[24] = float(51.29089355*exp(3211.607140/T));
00088           m_Data[25] = float(47.46498542*exp(3557.472520/T));
00089           m_Data[26] = float(43.97647930*exp(3892.857140/T));
00090           m_Data[27] = float(40.79116618*exp(4218.230270/T));
00091           m_Data[28] = float(37.87874413*exp(4534.033610/T));
00092           m_Data[29] = float(35.21232335*exp(4840.683230/T));
00093           m_Data[30] = float(32.76800000*exp(5138.571430/T));
00094           m_Data[31] = 1.0f;
00095           return *this;
00096       };
00097 
00098 };
00099 
00100 #endif
00101 
00102 
00103 
00104 

Generated on Wed Dec 15 21:20:33 2004 for vuVolume by  doxygen 1.3.9.1