| #pragma once |
| |
| #ifndef T_BLUREDBRUSH |
| #define T_BLUREDBRUSH |
| |
| #include "traster.h" |
| #include "trastercm.h" |
| #include "tcurves.h" |
| #include <QPainter> |
| #include <QImage> |
| |
| |
| |
| |
| |
| |
| |
| class BluredBrush |
| { |
| TRaster32P m_ras; |
| QImage m_rasImage; |
| int m_size; |
| QRadialGradient m_gradient; |
| TThickPoint m_lastPoint; |
| double m_oldOpacity; |
| bool m_enableDinamicOpacity; |
| |
| double getNextPadPosition(const TThickQuadratic &q, double t) const; |
| |
| public: |
| BluredBrush(const TRaster32P &ras, int size, const QRadialGradient &gradient, bool doDinamicOpacity); |
| ~BluredBrush(); |
| |
| void addPoint(const TThickPoint &p, double opacity); |
| void addArc(const TThickPoint &pa, const TThickPoint &pb, const TThickPoint &pc, double opacityA, double opacityC); |
| TRect getBoundFromPoints(const std::vector<TThickPoint> &points) const; |
| |
| void updateDrawing(const TRasterCM32P rasCM, const TRasterCM32P rasBackupCM, const TRect &bbox, |
| int styleId, bool selective) const; |
| void eraseDrawing(const TRasterCM32P rasCM, const TRasterCM32P rasBackupCM, const TRect &bbox, |
| bool selective, int selectedStyleId, const std::wstring &mode) const; |
| |
| |
| void updateDrawing(const TRasterP ras, const TRasterP rasBackup, const TPixel32 &color, |
| const TRect &bbox, double opacity) const; |
| void eraseDrawing(const TRasterP ras, const TRasterP rasBackup, const TRect &bbox, double opacity) const; |
| }; |
| |
| #endif |