|
Shinya Kitaoka |
810553 |
#pragma once
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
#ifndef STYLE_PICKER_H
|
|
Toshihiro Shimizu |
890ddd |
#define STYLE_PICKER_H
|
|
Toshihiro Shimizu |
890ddd |
|
|
shun-iwasawa |
481b59 |
// #include "timage.h"
|
|
Toshihiro Shimizu |
890ddd |
#include "tcommon.h"
|
|
Toshihiro Shimizu |
890ddd |
#include "tpalette.h"
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
class TStroke;
|
|
shun-iwasawa |
f2e168 |
class QWidget;
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
#undef DVAPI
|
|
Toshihiro Shimizu |
890ddd |
#undef DVVAR
|
|
Toshihiro Shimizu |
890ddd |
#ifdef TNZTOOLS_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 |
|
|
Shinya Kitaoka |
120a6e |
class DVAPI StylePicker {
|
|
Shinya Kitaoka |
120a6e |
TImageP m_image;
|
|
Shinya Kitaoka |
120a6e |
TPaletteP m_palette;
|
|
shun-iwasawa |
f2e168 |
const QWidget *m_widget;
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
public:
|
|
shun-iwasawa |
f2e168 |
StylePicker(const QWidget *parent) : m_widget(parent) {}
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
// usa come palette la palette dell'immagine
|
|
shun-iwasawa |
f2e168 |
StylePicker(const QWidget *parent, const TImageP &image);
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
// palette esterna (ad es. se image e' di tipo raster)
|
|
shun-iwasawa |
f2e168 |
StylePicker(const QWidget *parent, const TImageP &image,
|
|
shun-iwasawa |
f2e168 |
const TPaletteP &palette);
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
// pickStyleId(point, radius)
|
|
Shinya Kitaoka |
120a6e |
//
|
|
Shinya Kitaoka |
120a6e |
// point e' espresso in inches (eventualmente utilizzando il dpi
|
|
Shinya Kitaoka |
120a6e |
// dell'immagine)
|
|
Shinya Kitaoka |
120a6e |
// point == (0,0) indica il centro dell'immagine
|
|
Shinya Kitaoka |
120a6e |
//
|
|
Shinya Kitaoka |
120a6e |
// immagini tzp:
|
|
Shinya Kitaoka |
120a6e |
// ritorna l'indice del colore che si trova nel pixel individuato da point
|
|
Shinya Kitaoka |
120a6e |
// (radius viene ignorato)
|
|
Shinya Kitaoka |
120a6e |
// se tone
|
|
Shinya Kitaoka |
120a6e |
//
|
|
Shinya Kitaoka |
120a6e |
// immagini pli
|
|
Shinya Kitaoka |
120a6e |
// ritorna l'indice del colorstyle dello stroke che si trova
|
|
Shinya Kitaoka |
120a6e |
// piu' vicini a point (ma non oltre radius) o dell'area fillata che
|
|
Shinya Kitaoka |
120a6e |
// comprende point
|
|
Shinya Kitaoka |
120a6e |
//
|
|
Shinya Kitaoka |
120a6e |
// immagine fullcolor
|
|
Shinya Kitaoka |
120a6e |
// ritorna l'indice del colorstyle della palette fornita nel costruttore
|
|
Shinya Kitaoka |
120a6e |
// il cui maincolor e' piu' vicino al colore del pixel individuato da point
|
|
Shinya Kitaoka |
120a6e |
// (radius viene ignorato)
|
|
Shinya Kitaoka |
120a6e |
//
|
|
Shinya Kitaoka |
120a6e |
// Nota: se non trova niente ritorna -1
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
/*-- (StylePickerTool内で)LineとAreaを切り替えてPickできる。mode: 0=Area,
|
|
Shinya Kitaoka |
120a6e |
* 1=Line, 2=Line&Areas(default) --*/
|
|
shun-iwasawa |
2d0135 |
int pickStyleId(const TPointD &point, double radius, double scale2,
|
|
shun-iwasawa |
2d0135 |
int mode = 2) const;
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
/*--- Toonz Raster LevelのToneを拾う。 ---*/
|
|
shun-iwasawa |
21c135 |
int pickTone(const TPointD &pos) const;
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
// per pli come sopra, ma ritorna il maincolor
|
|
Shinya Kitaoka |
120a6e |
// per tzp e fullcolor ritorna il colore effettivo del pixel
|
|
shun-iwasawa |
2d0135 |
TPixel32 pickColor(const TPointD &point, double radius, double scale2) const;
|
|
shun-iwasawa |
d5045c |
TPixel64 pickColor16(const TPointD &point, double radius,
|
|
shun-iwasawa |
d5045c |
double scale2) const;
|
|
shun-iwasawa |
481b59 |
TPixelF pickColor32F(const TPointD &point, double radius,
|
|
shun-iwasawa |
481b59 |
double scale2) const;
|
|
shun-iwasawa |
21c135 |
TPixel32 pickAverageColor(const TRectD &rect) const;
|
|
shun-iwasawa |
d5045c |
TPixel64 pickAverageColor16(const TRectD &rect) const;
|
|
shun-iwasawa |
481b59 |
TPixelF pickAverageColor32F(const TRectD &rect) const;
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
// ritorna il colore medio presente nell'area della finestra corrente openGL
|
|
Shinya Kitaoka |
120a6e |
TPixel32 pickColor(const TRectD &area) const;
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
// ritorna il colore medio presente nell'area interna all stroke della
|
|
Shinya Kitaoka |
120a6e |
// finestra corrente openGL
|
|
Shinya Kitaoka |
120a6e |
TPixel32 pickColor(TStroke *stroke) const;
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
// helper function. conversione di coordinate:
|
|
Shinya Kitaoka |
120a6e |
// p e' nel sist. di rif. descritto sopra
|
|
Shinya Kitaoka |
120a6e |
// il valore di ritorno si riferisce all'eventuale raster: (0,0)==leftbottom
|
|
Shinya Kitaoka |
120a6e |
TPoint getRasterPoint(const TPointD &p) const;
|
|
Toshihiro Shimizu |
890ddd |
};
|
|
Toshihiro Shimizu |
890ddd |
#endif
|