tahoma2d/toonz/sources/include/tools/stylepicker.h

84 lines
2.4 KiB
C
Raw Normal View History

2016-05-17 03:04:11 +12:00
#pragma once
2016-03-19 06:57:51 +13:00
#ifndef STYLE_PICKER_H
#define STYLE_PICKER_H
//#include "timage.h"
#include "tcommon.h"
#include "tpalette.h"
class TStroke;
#undef DVAPI
#undef DVVAR
#ifdef TNZTOOLS_EXPORTS
#define DVAPI DV_EXPORT_API
#define DVVAR DV_EXPORT_VAR
#else
#define DVAPI DV_IMPORT_API
#define DVVAR DV_IMPORT_VAR
#endif
2016-06-15 18:43:10 +12:00
class DVAPI StylePicker {
TImageP m_image;
TPaletteP m_palette;
2016-03-19 06:57:51 +13:00
public:
2016-06-15 18:43:10 +12:00
StylePicker() {}
// usa come palette la palette dell'immagine
StylePicker(const TImageP &image);
// palette esterna (ad es. se image e' di tipo raster)
StylePicker(const TImageP &image, const TPaletteP &palette);
// pickStyleId(point, radius)
//
// point e' espresso in inches (eventualmente utilizzando il dpi
// dell'immagine)
// point == (0,0) indica il centro dell'immagine
//
// immagini tzp:
// ritorna l'indice del colore che si trova nel pixel individuato da point
// (radius viene ignorato)
// se tone<maxtone/2 ritorna l'inchiostro altrimenti il paint
//
// immagini pli
// ritorna l'indice del colorstyle dello stroke che si trova
// piu' vicini a point (ma non oltre radius) o dell'area fillata che
// comprende point
//
// immagine fullcolor
// ritorna l'indice del colorstyle della palette fornita nel costruttore
// il cui maincolor e' piu' vicino al colore del pixel individuato da point
// (radius viene ignorato)
//
// Nota: se non trova niente ritorna -1
/*-- (StylePickerTool内で)LineとAreaを切り替えてPickできる。mode: 0=Area,
* 1=Line, 2=Line&Areas(default) --*/
int pickStyleId(const TPointD &point, double radius2 = 1, int mode = 2) const;
/*--- Toonz Raster LevelのToneを拾う。 ---*/
2019-08-30 18:19:05 +12:00
int pickTone(const TPointD &pos) const;
2016-06-15 18:43:10 +12:00
// per pli come sopra, ma ritorna il maincolor
// per tzp e fullcolor ritorna il colore effettivo del pixel
TPixel32 pickColor(const TPointD &point, double radius2 = 1) const;
2019-08-30 18:19:05 +12:00
TPixel32 pickAverageColor(const TRectD &rect) const;
2016-06-15 18:43:10 +12:00
// ritorna il colore medio presente nell'area della finestra corrente openGL
TPixel32 pickColor(const TRectD &area) const;
// ritorna il colore medio presente nell'area interna all stroke della
// finestra corrente openGL
TPixel32 pickColor(TStroke *stroke) const;
// helper function. conversione di coordinate:
// p e' nel sist. di rif. descritto sopra
// il valore di ritorno si riferisce all'eventuale raster: (0,0)==leftbottom
TPoint getRasterPoint(const TPointD &p) const;
2016-03-19 06:57:51 +13:00
};
#endif