|
Shinya Kitaoka |
810553 |
#pragma once
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
#ifndef TTZPIMAGEFX_H
|
|
Toshihiro Shimizu |
890ddd |
#define TTZPIMAGEFX_H
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
// TnzCore includes
|
|
Toshihiro Shimizu |
890ddd |
#include "tpalette.h"
|
|
Toshihiro Shimizu |
890ddd |
#include "trastercm.h"
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
// TnzBase includes
|
|
Toshihiro Shimizu |
890ddd |
#include "trasterfxrenderdata.h"
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
// STD includes
|
|
Toshihiro Shimizu |
890ddd |
#include <vector></vector>
|
|
Toshihiro Shimizu |
890ddd |
#include <set></set>
|
|
Toshihiro Shimizu |
890ddd |
#include <string></string>
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
#undef DVAPI
|
|
Toshihiro Shimizu |
890ddd |
#undef DVVAR
|
|
Toshihiro Shimizu |
890ddd |
#ifdef TFX_EXPORTS
|
|
Toshihiro Shimizu |
890ddd |
#define DVAPI DV_EXPORT_API
|
|
Toshihiro Shimizu |
890ddd |
#define DVVAR DV_EXPORT_VAR
|
|
Toshihiro Shimizu |
890ddd |
#else
|
|
Toshihiro Shimizu |
890ddd |
#define DVAPI DV_IMPORT_API
|
|
Toshihiro Shimizu |
890ddd |
#define DVVAR DV_IMPORT_VAR
|
|
Toshihiro Shimizu |
890ddd |
#endif
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//**********************************************************************************************
|
|
Toshihiro Shimizu |
890ddd |
// ExternalPaletteFxRenderData declaration
|
|
Toshihiro Shimizu |
890ddd |
//**********************************************************************************************
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
d1f6c4 |
class DVAPI ExternalPaletteFxRenderData final : public TRasterFxRenderData {
|
|
Toshihiro Shimizu |
890ddd |
public:
|
|
Shinya Kitaoka |
120a6e |
TPaletteP m_palette;
|
|
Shinya Kitaoka |
120a6e |
std::string m_name;
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
public:
|
|
Shinya Kitaoka |
120a6e |
ExternalPaletteFxRenderData(TPaletteP palette, const std::string &name);
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
473e70 |
float typeIndex() const override { return 0.0f; }
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
473e70 |
bool operator==(const TRasterFxRenderData &data) const override;
|
|
Shinya Kitaoka |
473e70 |
std::string toString() const override;
|
|
Toshihiro Shimizu |
890ddd |
};
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//**********************************************************************************************
|
|
Toshihiro Shimizu |
890ddd |
// PaletteFilterFxRenderData declaration
|
|
Toshihiro Shimizu |
890ddd |
//**********************************************************************************************
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
enum FilterType {
|
|
Shinya Kitaoka |
120a6e |
eApplyToInksAndPaints = 0,
|
|
Shinya Kitaoka |
120a6e |
eApplyToInksKeepingAllPaints,
|
|
Shinya Kitaoka |
120a6e |
eApplyToPaintsKeepingAllInks,
|
|
Shinya Kitaoka |
120a6e |
eApplyToInksAndPaints_NoGap,
|
|
Shinya Kitaoka |
120a6e |
eApplyToInksDeletingAllPaints,
|
|
Shinya Kitaoka |
120a6e |
eApplyToPaintsDeletingAllInks
|
|
Shinya Kitaoka |
120a6e |
};
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//------------------------------------------------------------------------------
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
d1f6c4 |
class DVAPI PaletteFilterFxRenderData final : public TRasterFxRenderData {
|
|
Toshihiro Shimizu |
890ddd |
public:
|
|
Shinya Kitaoka |
120a6e |
bool m_keep;
|
|
Shinya Kitaoka |
120a6e |
FilterType m_type;
|
|
Shinya Kitaoka |
120a6e |
std::set<int> m_colors;</int>
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
public:
|
|
Shinya Kitaoka |
120a6e |
PaletteFilterFxRenderData();
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
473e70 |
float typeIndex() const override {
|
|
Shinya Kitaoka |
120a6e |
return (m_type == eApplyToInksAndPaints) ? 0.5f : 1.0f;
|
|
Shinya Kitaoka |
120a6e |
}
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
473e70 |
bool operator==(const TRasterFxRenderData &data) const override;
|
|
Shinya Kitaoka |
473e70 |
std::string toString() const override;
|
|
Toshihiro Shimizu |
890ddd |
};
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//------------------------------------------------------------------------------
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
void DVAPI insertIndexes(std::vector<std::string> items,</std::string>
|
|
Shinya Kitaoka |
120a6e |
PaletteFilterFxRenderData *t);
|
|
Shinya Kitaoka |
3bfa54 |
void DVAPI parseIndexes(std::string indexes, std::vector<std::string> &items);</std::string>
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//**********************************************************************************************
|
|
Toshihiro Shimizu |
890ddd |
// SandorFxRenderData (possible) parameters
|
|
Toshihiro Shimizu |
890ddd |
//**********************************************************************************************
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
enum Type { BlendTz, Calligraphic, ArtAtContour, OutBorder };
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//------------------------------------------------------------------------------
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
class DVAPI BlendTzParams {
|
|
Toshihiro Shimizu |
890ddd |
public:
|
|
Shinya Kitaoka |
120a6e |
std::wstring m_colorIndex;
|
|
Shinya Kitaoka |
120a6e |
bool m_noBlending;
|
|
Shinya Kitaoka |
120a6e |
double m_amount;
|
|
Shinya Kitaoka |
120a6e |
double m_smoothness;
|
|
Shinya Kitaoka |
120a6e |
int m_superSampling;
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
public:
|
|
Shinya Kitaoka |
120a6e |
BlendTzParams()
|
|
Shinya Kitaoka |
120a6e |
: m_colorIndex(L"")
|
|
Shinya Kitaoka |
120a6e |
, m_noBlending(false)
|
|
Shinya Kitaoka |
120a6e |
, m_amount(0.0)
|
|
Shinya Kitaoka |
120a6e |
, m_smoothness(0.0)
|
|
Shinya Kitaoka |
120a6e |
, m_superSampling(0) {}
|
|
Toshihiro Shimizu |
890ddd |
};
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//------------------------------------------------------------------------------
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
class DVAPI CalligraphicParams {
|
|
Toshihiro Shimizu |
890ddd |
public:
|
|
Shinya Kitaoka |
120a6e |
std::wstring m_colorIndex;
|
|
Shinya Kitaoka |
120a6e |
double m_thickness;
|
|
Shinya Kitaoka |
120a6e |
double m_horizontal;
|
|
Shinya Kitaoka |
120a6e |
double m_vertical;
|
|
Shinya Kitaoka |
120a6e |
double m_upWDiagonal;
|
|
Shinya Kitaoka |
120a6e |
double m_doWDiagonal;
|
|
Shinya Kitaoka |
120a6e |
double m_accuracy;
|
|
Shinya Kitaoka |
120a6e |
double m_noise;
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
public:
|
|
Shinya Kitaoka |
120a6e |
CalligraphicParams()
|
|
Shinya Kitaoka |
120a6e |
: m_thickness(0.0)
|
|
Shinya Kitaoka |
120a6e |
, m_horizontal(0.0)
|
|
Shinya Kitaoka |
120a6e |
, m_vertical(0.0)
|
|
Shinya Kitaoka |
120a6e |
, m_upWDiagonal(0.0)
|
|
Shinya Kitaoka |
120a6e |
, m_doWDiagonal(0.0)
|
|
Shinya Kitaoka |
120a6e |
, m_accuracy(0.0)
|
|
Shinya Kitaoka |
120a6e |
, m_noise(0.0)
|
|
Shinya Kitaoka |
120a6e |
, m_colorIndex(L"") {}
|
|
Toshihiro Shimizu |
890ddd |
};
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//------------------------------------------------------------------------------
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
class DVAPI ArtAtContourParams {
|
|
Toshihiro Shimizu |
890ddd |
public:
|
|
Shinya Kitaoka |
120a6e |
double m_maxSize;
|
|
Shinya Kitaoka |
120a6e |
double m_minSize;
|
|
Shinya Kitaoka |
120a6e |
double m_maxOrientation;
|
|
Shinya Kitaoka |
120a6e |
double m_minOrientation;
|
|
Shinya Kitaoka |
120a6e |
bool m_randomness;
|
|
Shinya Kitaoka |
120a6e |
double m_maxDistance;
|
|
Shinya Kitaoka |
120a6e |
double m_minDistance;
|
|
Shinya Kitaoka |
120a6e |
double m_density;
|
|
Shinya Kitaoka |
120a6e |
bool m_keepLine;
|
|
Shinya Kitaoka |
120a6e |
bool m_keepColor;
|
|
Shinya Kitaoka |
120a6e |
bool m_includeAlpha;
|
|
Shinya Kitaoka |
120a6e |
std::wstring m_colorIndex;
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
public:
|
|
Shinya Kitaoka |
120a6e |
ArtAtContourParams()
|
|
Shinya Kitaoka |
120a6e |
: m_maxSize(0.0)
|
|
Shinya Kitaoka |
120a6e |
, m_minSize(0.0)
|
|
Shinya Kitaoka |
120a6e |
, m_maxOrientation(0.0)
|
|
Shinya Kitaoka |
120a6e |
, m_minOrientation(0.0)
|
|
Shinya Kitaoka |
120a6e |
, m_randomness(false)
|
|
Shinya Kitaoka |
120a6e |
, m_maxDistance(0.0)
|
|
Shinya Kitaoka |
120a6e |
, m_minDistance(0.0)
|
|
Shinya Kitaoka |
120a6e |
, m_density(0.0)
|
|
Shinya Kitaoka |
120a6e |
, m_keepLine(false)
|
|
Shinya Kitaoka |
120a6e |
, m_keepColor(false)
|
|
Shinya Kitaoka |
120a6e |
, m_includeAlpha(true)
|
|
Shinya Kitaoka |
120a6e |
, m_colorIndex(L"") {}
|
|
Toshihiro Shimizu |
890ddd |
};
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//**********************************************************************************************
|
|
Toshihiro Shimizu |
890ddd |
// SandorFxRenderData declaration
|
|
Toshihiro Shimizu |
890ddd |
//**********************************************************************************************
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
d1f6c4 |
class DVAPI SandorFxRenderData final : public TRasterFxRenderData {
|
|
Toshihiro Shimizu |
890ddd |
public:
|
|
Shinya Kitaoka |
120a6e |
Type m_type;
|
|
Shinya Kitaoka |
120a6e |
BlendTzParams m_blendParams;
|
|
Shinya Kitaoka |
120a6e |
CalligraphicParams m_callParams;
|
|
Shinya Kitaoka |
120a6e |
ArtAtContourParams m_contourParams;
|
|
Shinya Kitaoka |
120a6e |
int m_border, m_shrink;
|
|
Shinya Kitaoka |
120a6e |
int m_argc;
|
|
Shinya Kitaoka |
120a6e |
const char *m_argv[12];
|
|
Shinya Kitaoka |
120a6e |
TRectD m_controllerBBox;
|
|
Shinya Kitaoka |
120a6e |
TRasterP m_controller;
|
|
Shinya Kitaoka |
120a6e |
std::string m_controllerAlias;
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
public:
|
|
Shinya Kitaoka |
120a6e |
SandorFxRenderData(Type type, int argc, const char *argv[], int border,
|
|
Shinya Kitaoka |
120a6e |
int shrink, const TRectD &controllerBBox = TRectD(),
|
|
Shinya Kitaoka |
120a6e |
const TRasterP &controller = TRasterP());
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
473e70 |
float typeIndex() const override { return (m_type == BlendTz) ? 2.0f : 3.0f; }
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
473e70 |
bool operator==(const TRasterFxRenderData &data) const override;
|
|
Shinya Kitaoka |
473e70 |
std::string toString() const override;
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
473e70 |
TRectD getBBoxEnlargement(const TRectD &bbox) override;
|
|
Toshihiro Shimizu |
890ddd |
};
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
#endif
|