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 lastDocPos
 
QPointF lastMouseWidgetPos
 
const KoCanvasResourceProvidermanager
 
QPointF paintingOffset
 
QTransform paintingTransform
 
KisLiquifyTransformStrategy *const q
 
bool recalculateOnNextRedraw
 
KisToolUtils::StandardBrushSizes standardBrushSizes
 
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 295 of file kis_liquify_transform_strategy.cpp.

296{
297 return useFlakeOptimization ? converter->imageToDocument(converter->documentToFlake((pt))) : q->thumbToImageTransform().inverted().map(pt);
298}
_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 300 of file kis_liquify_transform_strategy.cpp.

301{
303
304 QTransform scaleTransform = KisTransformUtils::imageToFlakeTransform(converter);
305
306 QTransform resultThumbTransform = q->thumbToImageTransform() * scaleTransform;
307 qreal scale = KisTransformUtils::scaleFromAffineMatrix(resultThumbTransform);
308 bool useFlakeOptimization = scale < 1.0 &&
309 !KisTransformUtils::thumbnailTooSmall(resultThumbTransform, q->originalImage().rect());
310
312 if (!q->originalImage().isNull()) {
313 if (useFlakeOptimization) {
314 transformedImage = q->originalImage().transformed(resultThumbTransform);
315 paintingTransform = QTransform();
316 } else {
318 paintingTransform = resultThumbTransform;
319 }
320
321 QTransform imageToRealThumbTransform =
322 useFlakeOptimization ?
323 scaleTransform :
324 q->thumbToImageTransform().inverted();
325
326 QPointF origTLInFlake =
327 imageToRealThumbTransform.map(transaction.originalTopLeft());
328
331 origTLInFlake,
332 imageToRealThumbTransform,
334 } else {
337 paintingTransform = resultThumbTransform;
338 }
339
340 handlesTransform = scaleTransform;
342}
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 79 of file kis_liquify_transform_strategy.cpp.

◆ lastDocPos

QPointF KisLiquifyTransformStrategy::Private::lastDocPos

Definition at line 75 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 81 of file kis_liquify_transform_strategy.cpp.

◆ standardBrushSizes

KisToolUtils::StandardBrushSizes KisLiquifyTransformStrategy::Private::standardBrushSizes

◆ 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: