#include <kis_perspectivetransform_worker.h>
|
| QTransform | backwardTransform () const |
| |
| bool | forceSubPixelTranslation () const |
| |
| QTransform | forwardTransform () const |
| |
| | KisPerspectiveTransformWorker (KisPaintDeviceSP dev, const QTransform &transform, bool cropDst, KoUpdaterPtr progress) |
| |
| | KisPerspectiveTransformWorker (KisPaintDeviceSP dev, QPointF center, double aX, double aY, double distance, bool cropDst, KoUpdaterPtr progress) |
| |
| void | run (SampleType sampleType=Bilinear) |
| |
| void | runPartialDst (KisPaintDeviceSP srcDev, KisPaintDeviceSP dstDev, const QRect &dstRect) |
| |
| void | setForceSubPixelTranslation (bool value) |
| |
| void | setForwardTransform (const QTransform &transform) |
| |
| | ~KisPerspectiveTransformWorker () |
| |
◆ SampleType
◆ KisPerspectiveTransformWorker() [1/2]
| KisPerspectiveTransformWorker::KisPerspectiveTransformWorker |
( |
KisPaintDeviceSP | dev, |
|
|
QPointF | center, |
|
|
double | aX, |
|
|
double | aY, |
|
|
double | distance, |
|
|
bool | cropDst, |
|
|
KoUpdaterPtr | progress ) |
Definition at line 36 of file kis_perspectivetransform_worker.cpp.
38
39{
40 QMatrix4x4 m;
41 m.rotate(180. * aX /
M_PI, QVector3D(1, 0, 0));
42 m.rotate(180. * aY /
M_PI, QVector3D(0, 1, 0));
43
44 QTransform project = m.toTransform(
distance);
45 QTransform t = QTransform::fromTranslate(center.x(), center.y());
46
48
50}
qreal distance(const QPointF &p1, const QPointF &p2)
References distance(), forwardTransform(), init(), and M_PI.
◆ KisPerspectiveTransformWorker() [2/2]
| KisPerspectiveTransformWorker::KisPerspectiveTransformWorker |
( |
KisPaintDeviceSP | dev, |
|
|
const QTransform & | transform, |
|
|
bool | cropDst, |
|
|
KoUpdaterPtr | progress ) |
◆ ~KisPerspectiveTransformWorker()
| KisPerspectiveTransformWorker::~KisPerspectiveTransformWorker |
( |
| ) |
|
◆ backwardTransform()
| QTransform KisPerspectiveTransformWorker::backwardTransform |
( |
| ) |
const |
◆ fillParams()
| void KisPerspectiveTransformWorker::fillParams |
( |
const QRectF & | srcRect, |
|
|
const QRect & | dstBaseClipRect, |
|
|
KisRegion * | dstRegion, |
|
|
QPolygonF * | dstClipPolygon ) |
|
private |
◆ forceSubPixelTranslation()
| bool KisPerspectiveTransformWorker::forceSubPixelTranslation |
( |
| ) |
const |
◆ forwardTransform()
| QTransform KisPerspectiveTransformWorker::forwardTransform |
( |
| ) |
const |
◆ init()
| void KisPerspectiveTransformWorker::init |
( |
const QTransform & | transform | ) |
|
|
private |
Definition at line 80 of file kis_perspectivetransform_worker.cpp.
81{
84
87
90
91 QPolygonF dstClipPolygonUnused;
92
96 &dstClipPolygonUnused);
97 }
98}
virtual QRect bounds() const =0
QRect exactBounds() const
KisDefaultBoundsBaseSP defaultBounds() const
T kisGrowRect(const T &rect, U offset)
References KisDefaultBoundsBase::bounds(), KisPaintDevice::defaultBounds(), KisPaintDevice::exactBounds(), fillParams(), kisGrowRect(), m_backwardTransform, m_dev, m_dstRegion, m_forwardTransform, m_isIdentity, m_isTranslating, and m_srcRect.
◆ run()
◆ runImpl()
template<class SrcAccessorWrapper >
| void KisPerspectiveTransformWorker::runImpl |
( |
| ) |
|
|
private |
Definition at line 147 of file kis_perspectivetransform_worker.cpp.
148{
150
152
153
154
155
156
157
158
159
160
161
163
164
165
167
169
171
172 SrcAccessorWrapper srcAcc(cloneDevice);
174
178
181
184 srcAcc.samplePixel(srcPoint, accessor->
rawData());
185 }
186 }
187 }
188 progressHelper.step();
189 }
190}
virtual quint8 * rawData()=0
KisRandomAccessorSP createRandomAccessorNG()
virtual void moveTo(qint32 x, qint32 y)=0
QVector< QRect > rects() const
#define KIS_ASSERT_RECOVER_RETURN(cond)
#define KIS_ASSERT_RECOVER_NOOP(cond)
References KisPaintDevice::clear(), KisPaintDevice::createRandomAccessorNG(), KisSharedPtr< T >::data(), dstPoint, KIS_ASSERT_RECOVER_NOOP, KIS_ASSERT_RECOVER_RETURN, m_backwardTransform, m_dev, m_dstRegion, m_isIdentity, m_progressUpdater, m_srcRect, KisRandomConstAccessorNG::moveTo(), KisBaseAccessor::rawData(), KisRegion::rectCount(), KisRegion::rects(), and KisProgressUpdateHelper::step().
◆ runPartialDst()
Definition at line 201 of file kis_perspectivetransform_worker.cpp.
204{
207
209 if (srcClipRect.isEmpty()) return;
210
215 } else {
217
220
221 for (
int y = dstRect.y();
y < dstRect.y() + dstRect.height(); ++
y) {
222 for (
int x = dstRect.x();
x < dstRect.x() + dstRect.width(); ++
x) {
223
226
229 srcAcc->
moveTo(srcPoint.x(), srcPoint.y());
231 }
232 }
233 progressHelper.step();
234 }
235 }
236}
const QString COMPOSITE_COPY
virtual bool wrapAroundMode() const =0
virtual QRect imageBorderRect() const
quint32 pixelSize() const
const KoColorSpace * colorSpace() const
KisRandomSubAccessorSP createRandomSubAccessor() const
void sampledOldRawData(quint8 *dst)
void moveTo(qreal x, qreal y)
#define KIS_SAFE_ASSERT_RECOVER_RETURN(cond)
#define KIS_SAFE_ASSERT_RECOVER_NOOP(cond)
References KisPainter::bitBlt(), KisPaintDevice::colorSpace(), COMPOSITE_COPY, KisPaintDevice::createRandomAccessorNG(), KisPaintDevice::createRandomSubAccessor(), KisPaintDevice::defaultBounds(), dstPoint, KisPaintDevice::exactBounds(), KisDefaultBoundsBase::imageBorderRect(), KIS_SAFE_ASSERT_RECOVER_NOOP, KIS_SAFE_ASSERT_RECOVER_RETURN, kisGrowRect(), m_backwardTransform, m_forceSubPixelTranslation, m_isIdentity, m_isTranslating, m_progressUpdater, KisRandomConstAccessorNG::moveTo(), KisRandomSubAccessor::moveTo(), KisPaintDevice::pixelSize(), KisBaseAccessor::rawData(), KisRandomSubAccessor::sampledOldRawData(), KisPainter::setCompositeOpId(), KisProgressUpdateHelper::step(), and KisDefaultBoundsBase::wrapAroundMode().
◆ setForceSubPixelTranslation()
| void KisPerspectiveTransformWorker::setForceSubPixelTranslation |
( |
bool | value | ) |
|
◆ setForwardTransform()
| void KisPerspectiveTransformWorker::setForwardTransform |
( |
const QTransform & | transform | ) |
|
◆ m_backwardTransform
| QTransform KisPerspectiveTransformWorker::m_backwardTransform |
|
private |
◆ m_cropDst
| bool KisPerspectiveTransformWorker::m_cropDst |
|
private |
◆ m_dev
◆ m_dstRegion
| KisRegion KisPerspectiveTransformWorker::m_dstRegion |
|
private |
◆ m_forceSubPixelTranslation
| bool KisPerspectiveTransformWorker::m_forceSubPixelTranslation {false} |
|
private |
◆ m_forwardTransform
| QTransform KisPerspectiveTransformWorker::m_forwardTransform |
|
private |
◆ m_isIdentity
| bool KisPerspectiveTransformWorker::m_isIdentity |
|
private |
◆ m_isTranslating
| bool KisPerspectiveTransformWorker::m_isTranslating |
|
private |
◆ m_progressUpdater
| KoUpdaterPtr KisPerspectiveTransformWorker::m_progressUpdater |
|
private |
◆ m_srcRect
| QRectF KisPerspectiveTransformWorker::m_srcRect |
|
private |
The documentation for this class was generated from the following files: