45 lines
No EOL
1.2 KiB
C++
45 lines
No EOL
1.2 KiB
C++
#pragma once
|
|
#ifndef IWA_CORRIDORGRADIENTFX_H
|
|
#define IWA_CORRIDORGRADIENTFX_H
|
|
|
|
#include "tfxparam.h"
|
|
#include "stdfx.h"
|
|
#include "tparamset.h"
|
|
|
|
struct double3 {
|
|
double r, g, b;
|
|
};
|
|
|
|
class Iwa_RainbowFx final : public TStandardZeraryFx {
|
|
FX_PLUGIN_DECLARATION(Iwa_RainbowFx)
|
|
|
|
TPointParamP m_center;
|
|
|
|
TDoubleParamP m_intensity;
|
|
TDoubleParamP m_radius;
|
|
TDoubleParamP m_width_scale;
|
|
TDoubleParamP m_inside;
|
|
TDoubleParamP m_secondary_rainbow;
|
|
TBoolParamP m_alpha_rendering;
|
|
|
|
double getSizePixelAmount(const double val, const TAffine affine);
|
|
void buildRanbowColorMap(double3 *core, double3 *wide, double intensity,
|
|
double inside, double secondary);
|
|
inline double3 angleToColor(double angle, double3 *core, double3 *wide);
|
|
|
|
template <typename RASTER, typename PIXEL>
|
|
void setOutputRaster(const RASTER ras, TDimensionI dim, double3 *outBuf_p);
|
|
|
|
public:
|
|
Iwa_RainbowFx();
|
|
|
|
bool canHandle(const TRenderSettings &info, double frame) override {
|
|
return true;
|
|
}
|
|
bool doGetBBox(double frame, TRectD &bBox,
|
|
const TRenderSettings &ri) override;
|
|
void doCompute(TTile &tile, double frame, const TRenderSettings &ri) override;
|
|
void getParamUIs(TParamUIConcept *&concepts, int &length) override;
|
|
};
|
|
|
|
#endif |