42 static const int NUMBER_OF_POINTS = 17;
47 static const int NUM_CHANNELS = 5;
52 static const int MULTIPLIER_16BIT = 255;
60 typedef double CRMatrix[4][4];
77 void fillFromOtherCurves(
const ImageCurves*
const otherCurves);
83 void curvesChannelReset(
int channel);
84 void curvesCalculateCurve(
int channel);
85 void curvesCalculateAllCurves();
86 float curvesLutFunc(
int n_channels,
int channel,
float value);
87 void curvesLutSetup(
int nchannels);
88 void curvesLutProcess(uchar*
const srcPR, uchar*
const destPR,
int w,
int h);
92 void setCurveValue(
int channel,
int bin,
int val);
93 void setCurvePointX(
int channel,
int point,
int x);
94 void setCurvePointY(
int channel,
int point,
int y);
95 void setCurveType(
int channel,
CurveType type);
98 void setCurvePoint(
int channel,
int point,
const QPoint& val);
99 void setCurvePoints(
int channel,
const QPolygon& vals);
100 void setCurveValues(
int channel,
const QPolygon& vals);
102 void unsetCurvePoint(
int channel,
int point);
106 bool isDirty()
const;
107 bool isSixteenBits()
const;
109 int getCurveValue(
int channel,
int bin)
const;
110 int getCurvePointX(
int channel,
int point)
const;
111 int getCurvePointY(
int channel,
int point)
const;
112 CurveType getCurveType(
int channel)
const;
114 bool isCurvePointEnabled(
int channel,
int point)
const;
115 QPoint getCurvePoint(
int channel,
int point)
const;
116 QPolygon getCurvePoints(
int channel)
const;
117 QPolygon getCurveValues(
int channel)
const;
137 bool isLinear(
int channel)
const;
138 bool isLinear()
const;
145 QByteArray channelToBinary(
int channel)
const;
153 bool setChannelFromBinary(
int channel,
const QByteArray& array);
157 bool saveCurvesToGimpCurvesFile(
const QUrl& fileUrl)
const;
158 bool loadCurvesFromGimpCurvesFile(
const QUrl& fileUrl);
160 static QPoint getDisabledValue();
164 void curvesPlotCurve(
int channel,
int p1,
int p2,
int p3,
int p4);
165 void curvesCRCompose(CRMatrix a, CRMatrix b, CRMatrix ab);
171 QSharedDataPointer<Private> d;