14#include "kritaglobal_export.h"
23#include <boost/operators.hpp>
31constexpr qreal
POINT_TO_MM(qreal px) {
return (px)*0.352777167;}
33constexpr qreal
POINT_TO_CM(qreal px) {
return (px)*0.0352777167;}
34constexpr qreal
CM_TO_POINT(qreal cm) {
return (cm)*28.3465058;}
35constexpr qreal
POINT_TO_DM(qreal px) {
return (px)*0.00352777167;}
36constexpr qreal
DM_TO_POINT(qreal dm) {
return (dm)*283.465058;}
39constexpr qreal
MM_TO_INCH(qreal mm) {
return (mm)*0.039370147;}
40constexpr qreal
INCH_TO_MM(qreal inch) {
return (inch)*25.399956;}
41constexpr qreal
POINT_TO_PI(qreal px) {
return (px)*0.083333333;}
42constexpr qreal
POINT_TO_CC(qreal px) {
return (px)*0.077880997;}
70class KRITAGLOBAL_EXPORT
KoUnit :
public boost::equality_comparable<KoUnit>
95 static KoUnit fromListForUi(
int index, ListOptions listOptions = ListAll, qreal factor = 1.0);
100 static KoUnit fromSymbol(
const QString &symbol,
bool *ok = 0);
105 m_pixelConversion = factor;
109 m_type = unit; m_pixelConversion = 1.0;
return *
this;
113 return m_type == other.
m_type &&
123 m_pixelConversion = factor;
130 static qreal convertFromUnitToUnit(
const qreal
value,
const KoUnit &fromUnit,
const KoUnit &toUnit, qreal factor = 1.0);
138 qreal toUserValueRounded(
const qreal
value)
const;
144 qreal toUserValuePrecise(
const qreal ptValue)
const;
151 qreal toUserValue(qreal ptValue,
bool rounding =
true)
const;
157 QString toUserStringValue(qreal ptValue)
const;
161 qreal fromUserValue(qreal
value)
const;
168 qreal fromUserValue(
const QString &
value,
bool *ok = 0)
const;
174 QString symbol()
const;
177 static QStringList listOfUnitNameForUi(ListOptions listOptions = ListAll);
181 int indexInListForUi(ListOptions listOptions = ListAll)
const;
184 static qreal parseValue(
const QString &
value, qreal defaultVal = 0.0);
187 static qreal parseAngle(
const QString &
value, qreal defaultVal = 0.0);
202 static qreal approxTransformScale(
const QTransform &t);
209 void adjustByPixelTransform(
const QTransform &t);
216#ifndef QT_NO_DEBUG_STREAM
float value(const T *src, size_t ch)
Q_DECLARE_FLAGS(KisUpdaterContextSnapshotEx, KisUpdaterContextSnapshotExTag)
constexpr qreal POINT_TO_CM(qreal px)
constexpr qreal POINT_TO_DM(qreal px)
constexpr qreal CC_TO_POINT(qreal cc)
constexpr qreal POINT_TO_MM(qreal px)
constexpr qreal POINT_TO_INCH(qreal px)
constexpr qreal CM_TO_POINT(qreal cm)
KRITAGLOBAL_EXPORT QDebug operator<<(QDebug, const KoUnit &)
static const qreal IN_ROUNDING
static const qreal PT_ROUNDING
constexpr qreal INCH_TO_POINT(qreal inch)
static const qreal MM_ROUNDING
constexpr qreal POINT_TO_PI(qreal px)
static const qreal CM_ROUNDING
static const qreal DM_ROUNDING
constexpr qreal PI_TO_POINT(qreal pi)
constexpr qreal INCH_TO_MM(qreal inch)
constexpr qreal MM_TO_INCH(qreal mm)
constexpr qreal POINT_TO_CC(qreal px)
constexpr qreal MM_TO_POINT(qreal mm)
static const qreal CC_ROUNDING
static const qreal PI_ROUNDING
constexpr qreal DM_TO_POINT(qreal dm)
KoUnit & operator=(Type unit)
bool operator==(const KoUnit &other) const
ListOption
Used to control the scope of the unit types listed in the UI.
KoUnit::Type type() const
KoUnit(Type unit=Point, qreal factor=1.0)
@ Point
Postscript point, 1/72th of an Inco.
void setFactor(qreal factor)
static bool qFuzzyCompare(half p1, half p2)
Q_DECLARE_OPERATORS_FOR_FLAGS(KisBaseRectsWalker::SubtreeVisitFlags)
Q_DECLARE_METATYPE(KisPaintopLodLimitations)