|
Krita Source Code Documentation
|
#include <kis_warptransform_worker.h>
Inheritance diagram for KisWarpTransformWorker:Classes | |
| struct | FunctionTransformOp |
Public Types | |
| typedef enum KisWarpTransformWorker::WarpCalculation_ | WarpCalculation |
| enum | WarpCalculation_ { GRID = 0 , DRAW } |
| typedef enum KisWarpTransformWorker::WarpType_ | WarpType |
| enum | WarpType_ { AFFINE_TRANSFORM = 0 , SIMILITUDE_TRANSFORM , RIGID_TRANSFORM , N_MODES } |
Public Member Functions | |
| QRect | approxChangeRect (const QRect &rc) |
| QRect | approxNeedRect (const QRect &rc, const QRect &fullBounds) |
| KisWarpTransformWorker (WarpType warpType, QVector< QPointF > origPoint, QVector< QPointF > transfPoint, qreal alpha, KoUpdater *progress) | |
| void | run (KisPaintDeviceSP srcDev, KisPaintDeviceSP dstDev) |
| ~KisWarpTransformWorker () override | |
Static Public Member Functions | |
| static QPointF | affineTransformMath (QPointF v, QVector< QPointF > p, QVector< QPointF > q, qreal alpha) |
| static QPointF | rigidTransformMath (QPointF v, QVector< QPointF > p, QVector< QPointF > q, qreal alpha) |
| static QPointF | similitudeTransformMath (QPointF v, QVector< QPointF > p, QVector< QPointF > q, qreal alpha) |
| static QImage | transformQImage (WarpType warpType, const QVector< QPointF > &origPoint, const QVector< QPointF > &transfPoint, qreal alpha, const QImage &srcImage, const QPointF &srcQImageOffset, QPointF *newOffset) |
Private Types | |
| typedef QPointF(* | WarpMathFunction) (QPointF, QVector< QPointF >, QVector< QPointF >, qreal) |
Private Attributes | |
| qreal | m_alpha {1.0} |
| QVector< QPointF > | m_origPoint |
| KoUpdater * | m_progress {0} |
| QVector< QPointF > | m_transfPoint |
| WarpCalculation | m_warpCalc {GRID} |
| WarpMathFunction | m_warpMathFunction |
Class to apply a transformation (affine, similitude, MLS) to a paintDevice or a QImage according an original set of points p, a new set of points q, and the constant alpha. The algorithms are based a paper entitled "Image Deformation Using Moving Least Squares", by Scott Schaefer (Texas A&M University), Travis McPhail (Rice University) and Joe Warren (Rice University)
Definition at line 32 of file kis_warptransform_worker.h.
|
private |
Definition at line 63 of file kis_warptransform_worker.h.
| Enumerator | |
|---|---|
| GRID | |
| DRAW | |
Definition at line 38 of file kis_warptransform_worker.h.
| Enumerator | |
|---|---|
| AFFINE_TRANSFORM | |
| SIMILITUDE_TRANSFORM | |
| RIGID_TRANSFORM | |
| N_MODES | |
Definition at line 37 of file kis_warptransform_worker.h.
| KisWarpTransformWorker::KisWarpTransformWorker | ( | WarpType | warpType, |
| QVector< QPointF > | origPoint, | ||
| QVector< QPointF > | transfPoint, | ||
| qreal | alpha, | ||
| KoUpdater * | progress ) |
Definition at line 172 of file kis_warptransform_worker.cc.
References AFFINE_TRANSFORM, affineTransformMath(), m_alpha, m_origPoint, m_transfPoint, m_warpMathFunction, RIGID_TRANSFORM, rigidTransformMath(), SIMILITUDE_TRANSFORM, and similitudeTransformMath().
|
override |
Definition at line 195 of file kis_warptransform_worker.cc.
|
static |
Definition at line 25 of file kis_warptransform_worker.cc.
| QRect KisWarpTransformWorker::approxChangeRect | ( | const QRect & | rc | ) |
Definition at line 254 of file kis_warptransform_worker.cc.
References KisAlgebra2D::approximateRectWithPointTransform(), KisAlgebra2D::blowRect(), m_alpha, m_origPoint, m_transfPoint, and m_warpMathFunction.
| QRect KisWarpTransformWorker::approxNeedRect | ( | const QRect & | rc, |
| const QRect & | fullBounds ) |
Definition at line 264 of file kis_warptransform_worker.cc.
|
static |
Definition at line 129 of file kis_warptransform_worker.cc.
| void KisWarpTransformWorker::run | ( | KisPaintDeviceSP | srcDev, |
| KisPaintDeviceSP | dstDev ) |
Definition at line 222 of file kis_warptransform_worker.cc.
References KisRegion::boundingRect(), KisPaintDevice::clear(), KisPaintDevice::colorSpace(), KisPaintDevice::extent(), KIS_SAFE_ASSERT_RECOVER_RETURN, m_alpha, m_origPoint, m_transfPoint, m_warpMathFunction, KisPaintDevice::makeCloneFromRough(), KisPaintDevice::moveTo(), GridIterationTools::processGrid(), KisPaintDevice::region(), KisPaintDevice::x(), and KisPaintDevice::y().
|
static |
Definition at line 82 of file kis_warptransform_worker.cc.
|
static |
Definition at line 270 of file kis_warptransform_worker.cc.
References AFFINE_TRANSFORM, affineTransformMath(), KIS_ASSERT_RECOVER, GridIterationTools::processGrid(), RIGID_TRANSFORM, rigidTransformMath(), SIMILITUDE_TRANSFORM, and similitudeTransformMath().
|
private |
Definition at line 70 of file kis_warptransform_worker.h.
|
private |
Definition at line 68 of file kis_warptransform_worker.h.
|
private |
Definition at line 71 of file kis_warptransform_worker.h.
|
private |
Definition at line 69 of file kis_warptransform_worker.h.
|
private |
Definition at line 67 of file kis_warptransform_worker.h.
|
private |
Definition at line 66 of file kis_warptransform_worker.h.