shun-iwasawa 5903e5
#pragma once
shun-iwasawa 5903e5
#ifndef IWA_LINEARGRADIENTFX_H
shun-iwasawa 5903e5
#define IWA_LINEARGRADIENTFX_H
shun-iwasawa 5903e5
shun-iwasawa 5903e5
#include "tfxparam.h"
shun-iwasawa 5903e5
#include "stdfx.h"
shun-iwasawa 5903e5
#include "tparamset.h"
shun-iwasawa 5903e5
shun-iwasawa 5903e5
class Iwa_LinearGradientFx final : public TStandardZeraryFx {
shun-iwasawa 5903e5
  FX_PLUGIN_DECLARATION(Iwa_LinearGradientFx)
shun-iwasawa 5903e5
shun-iwasawa 5903e5
  TIntEnumParamP m_curveType;
shun-iwasawa 5903e5
  TPointParamP m_startPoint, m_endPoint;
shun-iwasawa 5903e5
  TPixelParamP m_startColor, m_endColor;
shun-iwasawa 5903e5
shun-iwasawa 5903e5
  TDoubleParamP m_wave_amplitude;
shun-iwasawa 5903e5
  TDoubleParamP m_wave_freq;
shun-iwasawa 5903e5
  TDoubleParamP m_wave_phase;
shun-iwasawa 5903e5
shun-iwasawa 5903e5
public:
shun-iwasawa 5903e5
  Iwa_LinearGradientFx();
shun-iwasawa 5903e5
shun-iwasawa 5903e5
  bool canHandle(const TRenderSettings &info, double frame) override {
shun-iwasawa 5903e5
    return true;
shun-iwasawa 5903e5
  }
shun-iwasawa 5903e5
  bool doGetBBox(double frame, TRectD &bBox,
shun-iwasawa 5903e5
                 const TRenderSettings &ri) override;
shun-iwasawa 5903e5
  void doCompute(TTile &tile, double frame, const TRenderSettings &ri) override;
shun-iwasawa 5903e5
  void getParamUIs(TParamUIConcept *&concepts, int &length) override;
shun-iwasawa 5903e5
};
shun-iwasawa 5903e5
shun-iwasawa 5903e5
#endif