Shinya Kitaoka 810553
#pragma once
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
#ifndef BLEND_INCLUDE
Toshihiro Shimizu 890ddd
#define BLEND_INCLUDE
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
#include "traster.h"
Toshihiro Shimizu 890ddd
#include "trastercm.h"
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
#include "ttoonzimage.h"
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//------------------------------------------------------------------------------------------
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
struct BlendParam {
Shinya Kitaoka 120a6e
  std::vector<int>
Shinya Kitaoka 120a6e
      colorsIndexes;    // List of color indexes to be blended together
Shinya Kitaoka 120a6e
  double intensity;     // Blur radius
Shinya Kitaoka 120a6e
  int smoothness;       // Number of neighbouring Blur Samples per pixel
Shinya Kitaoka 120a6e
  bool stopAtCountour;  // Blur is obstacled by not chosen color indexes
Shinya Kitaoka 120a6e
  int superSampling;
Toshihiro Shimizu 890ddd
};
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//------------------------------------------------------------------------------------------
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
template <typename PIXEL>
Shinya Kitaoka 120a6e
void blend(TToonzImageP ti, TRasterPT<PIXEL> rasOut,
Shinya Kitaoka 120a6e
           const std::vector<BlendParam> &params);
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
#endif  // BLEND_INCLUDE