Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_transform_utils.cpp File Reference
#include "kis_transform_utils.h"
#include <cmath>
#include <QPainterPath>
#include <QTransform>
#include <QVector3D>
#include <KoUnit.h>
#include "tool_transform_args.h"
#include "kis_paint_device.h"
#include "kis_algebra_2d.h"
#include "transform_transaction_properties.h"
#include "kis_painter.h"
#include <kis_transform_worker.h>
#include <kis_perspectivetransform_worker.h>
#include <kis_warptransform_worker.h>
#include <kis_cage_transform_worker.h>
#include <kis_liquify_transform_worker.h>
#include "commands_new/kis_saved_commands.h"
#include "kis_transform_mask.h"
#include "kis_transform_mask_adapter.h"
#include "krita_container_utils.h"
#include "kis_selection.h"
#include "kis_image.h"
#include "kis_image_animation_interface.h"

Go to the source code of this file.

Classes

struct  TransformExtraData
 

Functions

QRectF handleRectImpl (qreal radius, const QTransform &t, const QRectF &limitingRect, const QPointF &basePoint, qreal *dOutX, qreal *dOutY)
 

Function Documentation

◆ handleRectImpl()

QRectF handleRectImpl ( qreal radius,
const QTransform & t,
const QRectF & limitingRect,
const QPointF & basePoint,
qreal * dOutX,
qreal * dOutY )

Definition at line 80 of file kis_transform_utils.cpp.

80 {
81 const qreal handlesExtraScaleX =
83 const qreal handlesExtraScaleY =
85
86 const qreal maxD = 0.2 * KisTransformUtils::effectiveSize(limitingRect);
87 const qreal dX = qMin(maxD, radius / handlesExtraScaleX);
88 const qreal dY = qMin(maxD, radius / handlesExtraScaleY);
89
90 QRectF handleRect(-0.5 * dX, -0.5 * dY, dX, dY);
91
92 if (dOutX) {
93 *dOutX = dX;
94 }
95
96 if (dOutY) {
97 *dOutY = dY;
98 }
99
100 return handleRect;
101
102}
static qreal scaleFromPerspectiveMatrixY(const QTransform &t, const QPointF &basePt)
static qreal scaleFromPerspectiveMatrixX(const QTransform &t, const QPointF &basePt)
static qreal effectiveSize(const QRectF &rc)

References KisTransformUtils::effectiveSize(), KisTransformUtils::scaleFromPerspectiveMatrixX(), and KisTransformUtils::scaleFromPerspectiveMatrixY().