Krita Source Code Documentation
Loading...
Searching...
No Matches
KisLiquifyTransformStrategy::Private Struct Reference

Public Member Functions

QPointF imageToThumb (const QPointF &pt, bool useFlakeOptimization)
 
 Private (KisLiquifyTransformStrategy *_q, const KisCoordinatesConverter *_converter, ToolTransformArgs &_currentArgs, TransformTransactionProperties &_transaction, const KoCanvasResourceProvider *_manager)
 
void recalculateTransformations ()
 

Public Attributes

const KisCoordinatesConverterconverter
 standard members ///
 
ToolTransformArgscurrentArgs
 
QTransform handlesTransform
 
KisLiquifyPaintHelper helper
 
QPointF lastMouseWidgetPos
 
const KoCanvasResourceProvidermanager
 
QPointF paintingOffset
 
QTransform paintingTransform
 
KisLiquifyTransformStrategy *const q
 
bool recalculateOnNextRedraw
 
QPoint startResizeGlobalCursorPos
 
QPointF startResizeImagePos
 
TransformTransactionPropertiestransaction
 
QImage transformedImage
 custom members ///
 

Detailed Description

Definition at line 30 of file kis_liquify_transform_strategy.cpp.

Constructor & Destructor Documentation

◆ Private()

KisLiquifyTransformStrategy::Private::Private ( KisLiquifyTransformStrategy * _q,
const KisCoordinatesConverter * _converter,
ToolTransformArgs & _currentArgs,
TransformTransactionProperties & _transaction,
const KoCanvasResourceProvider * _manager )
inline

Definition at line 32 of file kis_liquify_transform_strategy.cpp.

37 : manager(_manager),
38 q(_q),
39 converter(_converter),
40 currentArgs(_currentArgs),
41 transaction(_transaction),
42 helper(_converter),
44 {
45 }
const KisCoordinatesConverter * converter
standard members ///

Member Function Documentation

◆ imageToThumb()

QPointF KisLiquifyTransformStrategy::Private::imageToThumb ( const QPointF & pt,
bool useFlakeOptimization )
inline

Definition at line 256 of file kis_liquify_transform_strategy.cpp.

257{
258 return useFlakeOptimization ? converter->imageToDocument(converter->documentToFlake((pt))) : q->thumbToImageTransform().inverted().map(pt);
259}
_Private::Traits< T >::Result documentToFlake(const T &obj) const
_Private::Traits< T >::Result imageToDocument(const T &obj) const

References converter, KisCoordinatesConverter::documentToFlake(), KisCoordinatesConverter::imageToDocument(), q, and KisTransformStrategyBase::thumbToImageTransform().

◆ recalculateTransformations()

void KisLiquifyTransformStrategy::Private::recalculateTransformations ( )

Definition at line 261 of file kis_liquify_transform_strategy.cpp.

262{
264
265 QTransform scaleTransform = KisTransformUtils::imageToFlakeTransform(converter);
266
267 QTransform resultThumbTransform = q->thumbToImageTransform() * scaleTransform;
268 qreal scale = KisTransformUtils::scaleFromAffineMatrix(resultThumbTransform);
269 bool useFlakeOptimization = scale < 1.0 &&
270 !KisTransformUtils::thumbnailTooSmall(resultThumbTransform, q->originalImage().rect());
271
273 if (!q->originalImage().isNull()) {
274 if (useFlakeOptimization) {
275 transformedImage = q->originalImage().transformed(resultThumbTransform);
276 paintingTransform = QTransform();
277 } else {
279 paintingTransform = resultThumbTransform;
280 }
281
282 QTransform imageToRealThumbTransform =
283 useFlakeOptimization ?
284 scaleTransform :
285 q->thumbToImageTransform().inverted();
286
287 QPointF origTLInFlake =
288 imageToRealThumbTransform.map(transaction.originalTopLeft());
289
292 origTLInFlake,
293 imageToRealThumbTransform,
295 } else {
298 paintingTransform = resultThumbTransform;
299 }
300
301 handlesTransform = scaleTransform;
303}
static qreal scaleFromAffineMatrix(const QTransform &t)
static QTransform imageToFlakeTransform(const KisCoordinatesConverter *converter)
static bool thumbnailTooSmall(const QTransform &resultThumbTransform, const QRect &originalImageRect)
KisLiquifyTransformWorker * liquifyWorker() const
#define KIS_ASSERT_RECOVER_RETURN(cond)
Definition kis_assert.h:75
QPointF imageToThumb(const QPointF &pt, bool useFlakeOptimization)
QImage runOnQImage(const QImage &srcImage, const QPointF &srcImageOffset, const QTransform &imageToThumbTransform, QPointF *newOffset)

References KisTransformUtils::imageToFlakeTransform(), KIS_ASSERT_RECOVER_RETURN, KisTransformUtils::scaleFromAffineMatrix(), and KisTransformUtils::thumbnailTooSmall().

Member Data Documentation

◆ converter

const KisCoordinatesConverter* KisLiquifyTransformStrategy::Private::converter

standard members ///

Definition at line 53 of file kis_liquify_transform_strategy.cpp.

◆ currentArgs

ToolTransformArgs& KisLiquifyTransformStrategy::Private::currentArgs

Definition at line 56 of file kis_liquify_transform_strategy.cpp.

◆ handlesTransform

QTransform KisLiquifyTransformStrategy::Private::handlesTransform

Definition at line 63 of file kis_liquify_transform_strategy.cpp.

◆ helper

KisLiquifyPaintHelper KisLiquifyTransformStrategy::Private::helper

Definition at line 74 of file kis_liquify_transform_strategy.cpp.

◆ lastMouseWidgetPos

QPointF KisLiquifyTransformStrategy::Private::lastMouseWidgetPos

Definition at line 70 of file kis_liquify_transform_strategy.cpp.

◆ manager

const KoCanvasResourceProvider* KisLiquifyTransformStrategy::Private::manager

Definition at line 47 of file kis_liquify_transform_strategy.cpp.

◆ paintingOffset

QPointF KisLiquifyTransformStrategy::Private::paintingOffset

Definition at line 61 of file kis_liquify_transform_strategy.cpp.

◆ paintingTransform

QTransform KisLiquifyTransformStrategy::Private::paintingTransform

Definition at line 60 of file kis_liquify_transform_strategy.cpp.

◆ q

KisLiquifyTransformStrategy* const KisLiquifyTransformStrategy::Private::q

Definition at line 49 of file kis_liquify_transform_strategy.cpp.

◆ recalculateOnNextRedraw

bool KisLiquifyTransformStrategy::Private::recalculateOnNextRedraw

Definition at line 76 of file kis_liquify_transform_strategy.cpp.

◆ startResizeGlobalCursorPos

QPoint KisLiquifyTransformStrategy::Private::startResizeGlobalCursorPos

Definition at line 72 of file kis_liquify_transform_strategy.cpp.

◆ startResizeImagePos

QPointF KisLiquifyTransformStrategy::Private::startResizeImagePos

Definition at line 71 of file kis_liquify_transform_strategy.cpp.

◆ transaction

TransformTransactionProperties& KisLiquifyTransformStrategy::Private::transaction

Definition at line 58 of file kis_liquify_transform_strategy.cpp.

◆ transformedImage

QImage KisLiquifyTransformStrategy::Private::transformedImage

custom members ///

Definition at line 67 of file kis_liquify_transform_strategy.cpp.


The documentation for this struct was generated from the following file: