|
shun-iwasawa |
af8f7a |
#pragma once
|
|
shun-iwasawa |
af8f7a |
#ifndef IWA_CORRIDORGRADIENTFX_H
|
|
shun-iwasawa |
af8f7a |
#define IWA_CORRIDORGRADIENTFX_H
|
|
shun-iwasawa |
af8f7a |
|
|
shun-iwasawa |
af8f7a |
#include "tfxparam.h"
|
|
shun-iwasawa |
af8f7a |
#include "stdfx.h"
|
|
shun-iwasawa |
af8f7a |
#include "tparamset.h"
|
|
shun-iwasawa |
af8f7a |
|
|
shun-iwasawa |
af8f7a |
struct double3 {
|
|
shun-iwasawa |
af8f7a |
double r, g, b;
|
|
shun-iwasawa |
af8f7a |
};
|
|
shun-iwasawa |
af8f7a |
|
|
shun-iwasawa |
af8f7a |
class Iwa_RainbowFx final : public TStandardZeraryFx {
|
|
shun-iwasawa |
af8f7a |
FX_PLUGIN_DECLARATION(Iwa_RainbowFx)
|
|
shun-iwasawa |
af8f7a |
|
|
shun-iwasawa |
af8f7a |
TPointParamP m_center;
|
|
shun-iwasawa |
af8f7a |
|
|
shun-iwasawa |
af8f7a |
TDoubleParamP m_intensity;
|
|
shun-iwasawa |
af8f7a |
TDoubleParamP m_radius;
|
|
shun-iwasawa |
af8f7a |
TDoubleParamP m_width_scale;
|
|
shun-iwasawa |
af8f7a |
TDoubleParamP m_inside;
|
|
shun-iwasawa |
af8f7a |
TDoubleParamP m_secondary_rainbow;
|
|
shun-iwasawa |
af8f7a |
TBoolParamP m_alpha_rendering;
|
|
shun-iwasawa |
af8f7a |
|
|
shun-iwasawa |
af8f7a |
double getSizePixelAmount(const double val, const TAffine affine);
|
|
shun-iwasawa |
481b59 |
void buildRainbowColorMap(double3 *core, double3 *wide, double intensity,
|
|
shun-iwasawa |
481b59 |
double inside, double secondary, bool doClamp);
|
|
shun-iwasawa |
af8f7a |
inline double3 angleToColor(double angle, double3 *core, double3 *wide);
|
|
shun-iwasawa |
af8f7a |
|
|
shun-iwasawa |
af8f7a |
template <typename pixel="" raster,="" typename=""></typename>
|
|
shun-iwasawa |
af8f7a |
void setOutputRaster(const RASTER ras, TDimensionI dim, double3 *outBuf_p);
|
|
shun-iwasawa |
af8f7a |
|
|
shun-iwasawa |
af8f7a |
public:
|
|
shun-iwasawa |
af8f7a |
Iwa_RainbowFx();
|
|
shun-iwasawa |
af8f7a |
|
|
shun-iwasawa |
af8f7a |
bool canHandle(const TRenderSettings &info, double frame) override {
|
|
shun-iwasawa |
af8f7a |
return true;
|
|
shun-iwasawa |
af8f7a |
}
|
|
shun-iwasawa |
af8f7a |
bool doGetBBox(double frame, TRectD &bBox,
|
|
shun-iwasawa |
af8f7a |
const TRenderSettings &ri) override;
|
|
shun-iwasawa |
af8f7a |
void doCompute(TTile &tile, double frame, const TRenderSettings &ri) override;
|
|
shun-iwasawa |
af8f7a |
void getParamUIs(TParamUIConcept *&concepts, int &length) override;
|
|
shun-iwasawa |
481b59 |
|
|
shun-iwasawa |
481b59 |
bool toBeComputedInLinearColorSpace(bool settingsIsLinear,
|
|
shun-iwasawa |
481b59 |
bool tileIsLinear) const override;
|
|
shun-iwasawa |
af8f7a |
};
|
|
shun-iwasawa |
af8f7a |
|
|
shun-iwasawa |
af8f7a |
#endif
|