20#ifndef KIS_TRANSFORM_WORKER_H_
21#define KIS_TRANSFORM_WORKER_H_
24#include "kis_progress_subject.h"
27class KisProgressDisplayInterface;
29class KisVLineIteratorPixel;
30class KisFilterStrategy;
32class KisTransformWorker : public KisProgressSubject {
33 typedef KisProgressSubject super;
36 KisTransformWorker(KisPaintDeviceSP dev, double xscale, double yscale,
37 double xshear, double yshear, double rotation,
38 TQ_INT32 xtranslate, TQ_INT32 ytranslate,
39 KisProgressDisplayInterface *progress, KisFilterStrategy *filter, bool fixBorderAlpha= false);
40 ~KisTransformWorker();
43 bool isCanceled() { return m_cancelRequested;};
49 template < class T> void transformPass( KisPaintDevice *src, KisPaintDevice *dst, double xscale, double shear, TQ_INT32 dx, KisFilterStrategy *filterStrategy, bool fixBorderAlpha);
52 void rotateNone(KisPaintDeviceSP src, KisPaintDeviceSP dst);
53 void rotateRight90(KisPaintDeviceSP src, KisPaintDeviceSP dst);
54 void rotateLeft90(KisPaintDeviceSP src, KisPaintDeviceSP dst);
55 void rotate180(KisPaintDeviceSP src, KisPaintDeviceSP dst);
58 KisPaintDeviceSP m_dev;
59 double m_xscale, m_yscale;
60 double m_xshear, m_yshear, m_rotation;
61 TQ_INT32 m_xtranslate, m_ytranslate;
62 KisProgressDisplayInterface *m_progress;
63 KisFilterStrategy *m_filter;
65 bool m_cancelRequested;
66 virtual void cancel() { m_cancelRequested = true; }
67 TQ_INT32 m_progressTotalSteps;
68 TQ_INT32 m_progressStep;
69 TQ_INT32 m_progressScaler;
70 TQ_INT32 m_lastProgressReport;
71 bool m_fixBorderAlpha;
75inline KisTransformWorker::~KisTransformWorker()
The pixel iterators are high level iterarators.
A paint device contains the actual pixel data and offers methods to read and write pixels.
|