|
Toshihiro Shimizu |
890ddd |
|
|
Campbell Barton |
40cabe |
#include <cstring></cstring>
|
|
Toshihiro Shimizu |
890ddd |
#include "tcolorfunctions.h"
|
|
Toshihiro Shimizu |
890ddd |
#include "tpixelutils.h"
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
TPixel32 TColorFader::operator()(const TPixel32 &color) const {
|
|
Shinya Kitaoka |
120a6e |
TPixel32 ret = blend(color, m_color, m_fade);
|
|
Shinya Kitaoka |
120a6e |
return ret;
|
|
Toshihiro Shimizu |
890ddd |
}
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
bool TColorFader::getParameters(Parameters &p) const {
|
|
Shinya Kitaoka |
120a6e |
p.m_mR = p.m_mG = p.m_mB = p.m_mM = (1 - m_fade);
|
|
Shinya Kitaoka |
120a6e |
p.m_cR = m_fade * m_color.r;
|
|
Shinya Kitaoka |
120a6e |
p.m_cG = m_fade * m_color.g;
|
|
Shinya Kitaoka |
120a6e |
p.m_cB = m_fade * m_color.b;
|
|
Shinya Kitaoka |
120a6e |
p.m_cM = m_fade * m_color.m;
|
|
Shinya Kitaoka |
120a6e |
return true;
|
|
Toshihiro Shimizu |
890ddd |
}
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//---------------------------------------
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
TGenericColorFunction::TGenericColorFunction(const double m[4],
|
|
Shinya Kitaoka |
120a6e |
const double c[4]) {
|
|
Shinya Kitaoka |
120a6e |
memcpy(m_m, m, 4 * sizeof(double));
|
|
Shinya Kitaoka |
120a6e |
memcpy(m_c, c, 4 * sizeof(double));
|
|
Toshihiro Shimizu |
890ddd |
}
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//---------------------------------------
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
TPixel32 TGenericColorFunction::operator()(const TPixel32 &color) const {
|
|
Shinya Kitaoka |
120a6e |
return TPixel32(tcrop(m_m[0] * color.r + m_c[0], 0.0, 255.0),
|
|
Shinya Kitaoka |
120a6e |
tcrop(m_m[1] * color.g + m_c[1], 0.0, 255.0),
|
|
Shinya Kitaoka |
120a6e |
tcrop(m_m[2] * color.b + m_c[2], 0.0, 255.0),
|
|
Shinya Kitaoka |
120a6e |
tcrop(m_m[3] * color.m + m_c[3], 0.0, 255.0));
|
|
Toshihiro Shimizu |
890ddd |
}
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//---------------------------------------
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
bool TGenericColorFunction::getParameters(Parameters &p) const {
|
|
Shinya Kitaoka |
120a6e |
p.m_mR = m_m[0], p.m_mG = m_m[1], p.m_mB = m_m[2], p.m_mM = m_m[3];
|
|
Shinya Kitaoka |
120a6e |
p.m_cR = m_c[0], p.m_cG = m_c[1], p.m_cB = m_c[2], p.m_cM = m_c[3];
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
return true;
|
|
Toshihiro Shimizu |
890ddd |
}
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//---------------------------------------
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
TPixel32 TTranspFader::operator()(const TPixel32 &color) const {
|
|
Shinya Kitaoka |
120a6e |
return TPixel32(color.r, color.g, color.b, m_transp * color.m);
|
|
Toshihiro Shimizu |
890ddd |
}
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//---------------------------------------
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
bool TTranspFader::getParameters(Parameters &p) const {
|
|
Shinya Kitaoka |
120a6e |
assert(false);
|
|
Shinya Kitaoka |
120a6e |
return true;
|
|
Toshihiro Shimizu |
890ddd |
}
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//----------------------------------
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
TPixel32 TOnionFader::operator()(const TPixel32 &color) const {
|
|
Shinya Kitaoka |
120a6e |
if (color.m == 0) return color;
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
TPixel32 blendColor = blend(color, m_color, m_fade);
|
|
Shinya Kitaoka |
120a6e |
blendColor.m = 180;
|
|
Shinya Kitaoka |
120a6e |
return blendColor;
|
|
Toshihiro Shimizu |
890ddd |
}
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
bool TOnionFader::getParameters(Parameters &p) const {
|
|
Shinya Kitaoka |
120a6e |
p.m_mR = p.m_mG = p.m_mB = (1 - m_fade);
|
|
Shinya Kitaoka |
120a6e |
p.m_mM = 1;
|
|
Shinya Kitaoka |
120a6e |
p.m_cR = m_fade * m_color.r;
|
|
Shinya Kitaoka |
120a6e |
p.m_cG = m_fade * m_color.g;
|
|
Shinya Kitaoka |
120a6e |
p.m_cB = m_fade * m_color.b;
|
|
Shinya Kitaoka |
120a6e |
p.m_cM = m_color.m;
|
|
Shinya Kitaoka |
120a6e |
return true;
|
|
Toshihiro Shimizu |
890ddd |
}
|
|
shun_iwasawa |
2c0f50 |
|
|
shun_iwasawa |
2c0f50 |
//---------------------------------------
|
|
shun_iwasawa |
2c0f50 |
|
|
shun_iwasawa |
2c0f50 |
TPixel32 TColumnColorFilterFunction::operator()(const TPixel32 &color) const {
|
|
shun_iwasawa |
2c0f50 |
int r = 255 - (255 - color.r) * (255 - m_colorScale.r) / 255;
|
|
shun_iwasawa |
2c0f50 |
int g = 255 - (255 - color.g) * (255 - m_colorScale.g) / 255;
|
|
shun_iwasawa |
2c0f50 |
int b = 255 - (255 - color.b) * (255 - m_colorScale.b) / 255;
|
|
shun_iwasawa |
2c0f50 |
return TPixel32(r, g, b, color.m * m_colorScale.m / 255);
|
|
shun_iwasawa |
2c0f50 |
}
|
|
shun_iwasawa |
2c0f50 |
|
|
shun_iwasawa |
2c0f50 |
bool TColumnColorFilterFunction::getParameters(Parameters &p) const {
|
|
shun_iwasawa |
2c0f50 |
assert(false);
|
|
shun_iwasawa |
2c0f50 |
return true;
|
|
shun_iwasawa |
2c0f50 |
}
|