00001 #include "simpleFuncs.h"
00002 #include "vuTFLinear.h"
00003
00004 void vuTFLinear::addLinear(dword channels,
00005 byte density,
00006 byte width,
00007 float max_value,
00008 float min_value)
00009 {
00010 float m;
00011 float b;
00012 float v;
00013 byte i;
00014
00015 m = (max_value-min_value)/(float)width;
00016 b = max_value - m*((float)density);
00017 for(i=density-width; i<=density+width; ++i)
00018 {
00019 v = m*((float)i)+b;
00020
00021 if (channels & vuTFRed)
00022 m_Table[i<<2] = snapToZeroOne(m_Table[i<<2]+v);
00023
00024 if (channels & vuTFGreen)
00025 m_Table[(i<<2)+1] = snapToZeroOne(m_Table[(i<<2)+1]+v);
00026
00027 if (channels & vuTFBlue)
00028 m_Table[(i<<2)+2] = snapToZeroOne(m_Table[(i<<2)+2]+v);
00029
00030 if (channels & vuTFAlpha)
00031 m_Table[(i<<2)+3] = snapToZeroOne(m_Table[(i<<2)+3]+v);
00032
00033 if (i == density)
00034 {
00035 m *= -1.0f;
00036 b = max_value*2 - b;
00037 }
00038 }
00039 }