Add contrast curve to mask 3 ToneMapping
This commit is contained in:
parent
e8dd1c4378
commit
94bd0a7d60
@ -1010,6 +1010,7 @@ HISTORY_MSG_769;Local - Grain Scale
|
|||||||
HISTORY_MSG_770;Local - Color Mask contrast curve
|
HISTORY_MSG_770;Local - Color Mask contrast curve
|
||||||
HISTORY_MSG_771;Local - Exp Mask contrast curve
|
HISTORY_MSG_771;Local - Exp Mask contrast curve
|
||||||
HISTORY_MSG_772;Local - SH Mask contrast curve
|
HISTORY_MSG_772;Local - SH Mask contrast curve
|
||||||
|
HISTORY_MSG_773;Local - TM Mask contrast curve
|
||||||
HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors
|
HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors
|
||||||
HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction
|
HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction
|
||||||
HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction
|
HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction
|
||||||
|
@ -889,9 +889,11 @@ void Crop::update(int todo)
|
|||||||
bool localmaskutili = parent->localmaskutili;
|
bool localmaskutili = parent->localmaskutili;
|
||||||
bool localmaskexputili = parent->localmaskexputili;
|
bool localmaskexputili = parent->localmaskexputili;
|
||||||
bool localmaskSHutili = parent->localmaskSHutili;
|
bool localmaskSHutili = parent->localmaskSHutili;
|
||||||
|
bool localmasktmutili = parent->localmasktmutili;
|
||||||
LUTf lmasklocalcurve2(65536, 0);
|
LUTf lmasklocalcurve2(65536, 0);
|
||||||
LUTf lmaskexplocalcurve2(65536, 0);
|
LUTf lmaskexplocalcurve2(65536, 0);
|
||||||
LUTf lmaskSHlocalcurve2(65536, 0);
|
LUTf lmaskSHlocalcurve2(65536, 0);
|
||||||
|
LUTf lmasktmlocalcurve2(65536, 0);
|
||||||
LUTf hltonecurveloc2(65536, 0); //65536
|
LUTf hltonecurveloc2(65536, 0); //65536
|
||||||
LUTf shtonecurveloc2(65536, 0);
|
LUTf shtonecurveloc2(65536, 0);
|
||||||
LUTf tonecurveloc2(65536, 0);
|
LUTf tonecurveloc2(65536, 0);
|
||||||
@ -997,6 +999,8 @@ void Crop::update(int todo)
|
|||||||
CurveFactory::curvemaskLocal(localmaskexputili, params.locallab.spots.at(sp).Lmaskexpcurve, lmaskexplocalcurve2, sca);
|
CurveFactory::curvemaskLocal(localmaskexputili, params.locallab.spots.at(sp).Lmaskexpcurve, lmaskexplocalcurve2, sca);
|
||||||
localmaskSHutili = false;
|
localmaskSHutili = false;
|
||||||
CurveFactory::curvemaskLocal(localmaskSHutili, params.locallab.spots.at(sp).LmaskSHcurve, lmaskSHlocalcurve2, sca);
|
CurveFactory::curvemaskLocal(localmaskSHutili, params.locallab.spots.at(sp).LmaskSHcurve, lmaskSHlocalcurve2, sca);
|
||||||
|
localmasktmutili = false;
|
||||||
|
CurveFactory::curvemaskLocal(localmasktmutili, params.locallab.spots.at(sp).Lmasktmcurve, lmasktmlocalcurve2, sca);
|
||||||
|
|
||||||
|
|
||||||
double ecomp = params.locallab.spots.at(sp).expcomp;
|
double ecomp = params.locallab.spots.at(sp).expcomp;
|
||||||
@ -1038,6 +1042,7 @@ void Crop::update(int todo)
|
|||||||
lmasklocalcurve2, localmaskutili,
|
lmasklocalcurve2, localmaskutili,
|
||||||
lmaskexplocalcurve2, localmaskexputili,
|
lmaskexplocalcurve2, localmaskexputili,
|
||||||
lmaskSHlocalcurve2, localmaskSHutili,
|
lmaskSHlocalcurve2, localmaskSHutili,
|
||||||
|
lmasktmlocalcurve2, localmasktmutili,
|
||||||
locccmasCurve, lcmasutili, locllmasCurve, llmasutili, lochhmasCurve, lhmasutili, locccmasexpCurve, lcmasexputili, locllmasexpCurve, llmasexputili, lochhmasexpCurve, lhmasexputili,
|
locccmasCurve, lcmasutili, locllmasCurve, llmasutili, lochhmasCurve, lhmasutili, locccmasexpCurve, lcmasexputili, locllmasexpCurve, llmasexputili, lochhmasexpCurve, lhmasexputili,
|
||||||
locccmasSHCurve, lcmasSHutili, locllmasSHCurve, llmasSHutili, lochhmasSHCurve, lhmasSHutili,
|
locccmasSHCurve, lcmasSHutili, locllmasSHCurve, llmasSHutili, lochhmasSHCurve, lhmasSHutili,
|
||||||
locccmascbCurve, lcmascbutili, locllmascbCurve, llmascbutili, lochhmascbCurve, lhmascbutili,
|
locccmascbCurve, lcmascbutili, locllmascbCurve, llmascbutili, lochhmascbCurve, lhmascbutili,
|
||||||
@ -1058,6 +1063,7 @@ void Crop::update(int todo)
|
|||||||
lmasklocalcurve2, localmaskutili,
|
lmasklocalcurve2, localmaskutili,
|
||||||
lmaskexplocalcurve2, localmaskexputili,
|
lmaskexplocalcurve2, localmaskexputili,
|
||||||
lmaskSHlocalcurve2, localmaskSHutili,
|
lmaskSHlocalcurve2, localmaskSHutili,
|
||||||
|
lmasktmlocalcurve2, localmasktmutili,
|
||||||
locccmasCurve, lcmasutili, locllmasCurve, llmasutili, lochhmasCurve, lhmasutili, locccmasexpCurve, lcmasexputili, locllmasexpCurve, llmasexputili, lochhmasexpCurve, lhmasexputili,
|
locccmasCurve, lcmasutili, locllmasCurve, llmasutili, lochhmasCurve, lhmasutili, locccmasexpCurve, lcmasexputili, locllmasexpCurve, llmasexputili, lochhmasexpCurve, lhmasexputili,
|
||||||
locccmasSHCurve, lcmasSHutili, locllmasSHCurve, llmasSHutili, lochhmasSHCurve, lhmasSHutili,
|
locccmasSHCurve, lcmasSHutili, locllmasSHCurve, llmasSHutili, lochhmasSHCurve, lhmasSHutili,
|
||||||
locccmascbCurve, lcmascbutili, locllmascbCurve, llmascbutili, lochhmascbCurve, lhmascbutili,
|
locccmascbCurve, lcmascbutili, locllmascbCurve, llmascbutili, lochhmascbCurve, lhmascbutili,
|
||||||
@ -1076,6 +1082,7 @@ void Crop::update(int todo)
|
|||||||
lmasklocalcurve2.clear();
|
lmasklocalcurve2.clear();
|
||||||
lmaskexplocalcurve2.clear();
|
lmaskexplocalcurve2.clear();
|
||||||
lmaskSHlocalcurve2.clear();
|
lmaskSHlocalcurve2.clear();
|
||||||
|
lmasktmlocalcurve2.clear();
|
||||||
hltonecurveloc2.clear();
|
hltonecurveloc2.clear();
|
||||||
shtonecurveloc2.clear();
|
shtonecurveloc2.clear();
|
||||||
tonecurveloc2.clear();
|
tonecurveloc2.clear();
|
||||||
|
@ -174,6 +174,7 @@ ImProcCoordinator::ImProcCoordinator() :
|
|||||||
lmasklocalcurve(65536, 0),
|
lmasklocalcurve(65536, 0),
|
||||||
lmaskexplocalcurve(65536, 0),
|
lmaskexplocalcurve(65536, 0),
|
||||||
lmaskSHlocalcurve(65536, 0),
|
lmaskSHlocalcurve(65536, 0),
|
||||||
|
lmasktmlocalcurve(65536, 0),
|
||||||
locallutili(false),
|
locallutili(false),
|
||||||
localcutili(false),
|
localcutili(false),
|
||||||
localexutili(false),
|
localexutili(false),
|
||||||
@ -183,6 +184,7 @@ ImProcCoordinator::ImProcCoordinator() :
|
|||||||
localmaskutili(false),
|
localmaskutili(false),
|
||||||
localmaskexputili(false),
|
localmaskexputili(false),
|
||||||
localmaskSHutili(false),
|
localmaskSHutili(false),
|
||||||
|
localmasktmutili(false),
|
||||||
lcmasexputili(false),
|
lcmasexputili(false),
|
||||||
lhmasexputili(false),
|
lhmasexputili(false),
|
||||||
llmasexputili(false),
|
llmasexputili(false),
|
||||||
@ -926,6 +928,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange)
|
|||||||
llmasexputili = false;
|
llmasexputili = false;
|
||||||
localmaskexputili = false;
|
localmaskexputili = false;
|
||||||
localmaskSHutili = false;
|
localmaskSHutili = false;
|
||||||
|
localmasktmutili = false;
|
||||||
lcmasSHutili = false;
|
lcmasSHutili = false;
|
||||||
lhmasSHutili = false;
|
lhmasSHutili = false;
|
||||||
llmasSHutili = false;
|
llmasSHutili = false;
|
||||||
@ -976,6 +979,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange)
|
|||||||
CurveFactory::curvemaskLocal(localmaskutili, params->locallab.spots.at(sp).Lmaskcurve, lmasklocalcurve, sca);
|
CurveFactory::curvemaskLocal(localmaskutili, params->locallab.spots.at(sp).Lmaskcurve, lmasklocalcurve, sca);
|
||||||
CurveFactory::curvemaskLocal(localmaskexputili, params->locallab.spots.at(sp).Lmaskexpcurve, lmaskexplocalcurve, sca);
|
CurveFactory::curvemaskLocal(localmaskexputili, params->locallab.spots.at(sp).Lmaskexpcurve, lmaskexplocalcurve, sca);
|
||||||
CurveFactory::curvemaskLocal(localmaskSHutili, params->locallab.spots.at(sp).LmaskSHcurve, lmaskSHlocalcurve, sca);
|
CurveFactory::curvemaskLocal(localmaskSHutili, params->locallab.spots.at(sp).LmaskSHcurve, lmaskSHlocalcurve, sca);
|
||||||
|
CurveFactory::curvemaskLocal(localmasktmutili, params->locallab.spots.at(sp).Lmasktmcurve, lmasktmlocalcurve, sca);
|
||||||
double ecomp = params->locallab.spots.at(sp).expcomp;
|
double ecomp = params->locallab.spots.at(sp).expcomp;
|
||||||
double black = params->locallab.spots.at(sp).black;
|
double black = params->locallab.spots.at(sp).black;
|
||||||
double hlcompr = params->locallab.spots.at(sp).hlcompr;
|
double hlcompr = params->locallab.spots.at(sp).hlcompr;
|
||||||
@ -1032,6 +1036,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange)
|
|||||||
lmasklocalcurve, localmaskutili,
|
lmasklocalcurve, localmaskutili,
|
||||||
lmaskexplocalcurve, localmaskexputili,
|
lmaskexplocalcurve, localmaskexputili,
|
||||||
lmaskSHlocalcurve, localmaskSHutili,
|
lmaskSHlocalcurve, localmaskSHutili,
|
||||||
|
lmasktmlocalcurve, localmasktmutili,
|
||||||
locccmasCurve, lcmasutili, locllmasCurve, llmasutili, lochhmasCurve, lhmasutili, locccmasexpCurve, lcmasexputili, locllmasexpCurve, llmasexputili, lochhmasexpCurve, lhmasexputili,
|
locccmasCurve, lcmasutili, locllmasCurve, llmasutili, lochhmasCurve, lhmasutili, locccmasexpCurve, lcmasexputili, locllmasexpCurve, llmasexputili, lochhmasexpCurve, lhmasexputili,
|
||||||
locccmasSHCurve, lcmasSHutili, locllmasSHCurve, llmasSHutili, lochhmasSHCurve, lhmasSHutili,
|
locccmasSHCurve, lcmasSHutili, locllmasSHCurve, llmasSHutili, lochhmasSHCurve, lhmasSHutili,
|
||||||
locccmascbCurve, lcmascbutili, locllmascbCurve, llmascbutili, lochhmascbCurve, lhmascbutili,
|
locccmascbCurve, lcmascbutili, locllmascbCurve, llmascbutili, lochhmascbCurve, lhmascbutili,
|
||||||
@ -1051,6 +1056,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange)
|
|||||||
lmasklocalcurve, localmaskutili,
|
lmasklocalcurve, localmaskutili,
|
||||||
lmaskexplocalcurve, localmaskexputili,
|
lmaskexplocalcurve, localmaskexputili,
|
||||||
lmaskSHlocalcurve, localmaskSHutili,
|
lmaskSHlocalcurve, localmaskSHutili,
|
||||||
|
lmasktmlocalcurve, localmasktmutili,
|
||||||
locccmasCurve, lcmasutili, locllmasCurve, llmasutili, lochhmasCurve, lhmasutili, locccmasexpCurve, lcmasexputili, locllmasexpCurve, llmasexputili, lochhmasexpCurve, lhmasexputili,
|
locccmasCurve, lcmasutili, locllmasCurve, llmasutili, lochhmasCurve, lhmasutili, locccmasexpCurve, lcmasexputili, locllmasexpCurve, llmasexputili, lochhmasexpCurve, lhmasexputili,
|
||||||
locccmasSHCurve, lcmasSHutili, locllmasSHCurve, llmasSHutili, lochhmasSHCurve, lhmasSHutili,
|
locccmasSHCurve, lcmasSHutili, locllmasSHCurve, llmasSHutili, lochhmasSHCurve, lhmasSHutili,
|
||||||
locccmascbCurve, lcmascbutili, locllmascbCurve, llmascbutili, lochhmascbCurve, lhmascbutili,
|
locccmascbCurve, lcmascbutili, locllmascbCurve, llmascbutili, lochhmascbCurve, lhmascbutili,
|
||||||
@ -1076,6 +1082,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange)
|
|||||||
lmasklocalcurve.clear();
|
lmasklocalcurve.clear();
|
||||||
lmaskexplocalcurve.clear();
|
lmaskexplocalcurve.clear();
|
||||||
lmaskSHlocalcurve.clear();
|
lmaskSHlocalcurve.clear();
|
||||||
|
lmasktmlocalcurve.clear();
|
||||||
hltonecurveloc.clear();
|
hltonecurveloc.clear();
|
||||||
shtonecurveloc.clear();
|
shtonecurveloc.clear();
|
||||||
tonecurveloc.clear();
|
tonecurveloc.clear();
|
||||||
|
@ -236,6 +236,7 @@ protected:
|
|||||||
LUTf lmasklocalcurve;
|
LUTf lmasklocalcurve;
|
||||||
LUTf lmaskexplocalcurve;
|
LUTf lmaskexplocalcurve;
|
||||||
LUTf lmaskSHlocalcurve;
|
LUTf lmaskSHlocalcurve;
|
||||||
|
LUTf lmasktmlocalcurve;
|
||||||
// LUTu lhist16loc;
|
// LUTu lhist16loc;
|
||||||
LocretigainCurve locRETgainCurve;
|
LocretigainCurve locRETgainCurve;
|
||||||
LocretitransCurve locRETtransCurve;
|
LocretitransCurve locRETtransCurve;
|
||||||
@ -274,6 +275,7 @@ protected:
|
|||||||
bool localmaskutili;
|
bool localmaskutili;
|
||||||
bool localmaskexputili;
|
bool localmaskexputili;
|
||||||
bool localmaskSHutili;
|
bool localmaskSHutili;
|
||||||
|
bool localmasktmutili;
|
||||||
bool lcmasexputili;
|
bool lcmasexputili;
|
||||||
bool lhmasexputili;
|
bool lhmasexputili;
|
||||||
bool llmasexputili;
|
bool llmasexputili;
|
||||||
|
@ -218,6 +218,7 @@ public:
|
|||||||
LUTf & lmasklocalcurve, bool & localmaskutili,
|
LUTf & lmasklocalcurve, bool & localmaskutili,
|
||||||
LUTf & lmaskexplocalcurve, bool & localmaskexputili,
|
LUTf & lmaskexplocalcurve, bool & localmaskexputili,
|
||||||
LUTf & lmaskSHlocalcurve, bool & localmaskSHutili,
|
LUTf & lmaskSHlocalcurve, bool & localmaskSHutili,
|
||||||
|
LUTf & lmasktmlocalcurve, bool & localmasktmutili,
|
||||||
const LocCCmaskCurve & locccmasCurve, bool & lcmasutili, const LocLLmaskCurve & locllmasCurve, bool & llmasutili, const LocHHmaskCurve & lochhmasCurve, bool & lhmasutili,
|
const LocCCmaskCurve & locccmasCurve, bool & lcmasutili, const LocLLmaskCurve & locllmasCurve, bool & llmasutili, const LocHHmaskCurve & lochhmasCurve, bool & lhmasutili,
|
||||||
const LocCCmaskCurve & locccmasexpCurve, bool &lcmasexputili, const LocLLmaskCurve & locllmasexpCurve, bool &llmasexputili, const LocHHmaskCurve & lochhmasexpCurve, bool & lhmasexputili,
|
const LocCCmaskCurve & locccmasexpCurve, bool &lcmasexputili, const LocLLmaskCurve & locllmasexpCurve, bool &llmasexputili, const LocHHmaskCurve & lochhmasexpCurve, bool & lhmasexputili,
|
||||||
const LocCCmaskCurve & locccmasSHCurve, bool &lcmasSHutili, const LocLLmaskCurve & locllmasSHCurve, bool &llmasSHutili, const LocHHmaskCurve & lochhmasSHCurve, bool & lhmasSHutili,
|
const LocCCmaskCurve & locccmasSHCurve, bool &lcmasSHutili, const LocLLmaskCurve & locllmasSHCurve, bool &llmasSHutili, const LocHHmaskCurve & lochhmasSHCurve, bool & lhmasSHutili,
|
||||||
|
@ -6715,6 +6715,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
|
|||||||
LUTf & lmasklocalcurve, bool & localmaskutili,
|
LUTf & lmasklocalcurve, bool & localmaskutili,
|
||||||
LUTf & lmaskexplocalcurve, bool & localmaskexputili,
|
LUTf & lmaskexplocalcurve, bool & localmaskexputili,
|
||||||
LUTf & lmaskSHlocalcurve, bool & localmaskSHutili,
|
LUTf & lmaskSHlocalcurve, bool & localmaskSHutili,
|
||||||
|
LUTf & lmasktmlocalcurve, bool & localmasktmutili,
|
||||||
const LocCCmaskCurve & locccmasCurve, bool & lcmasutili, const LocLLmaskCurve & locllmasCurve, bool & llmasutili, const LocHHmaskCurve & lochhmasCurve, bool & lhmasutili,
|
const LocCCmaskCurve & locccmasCurve, bool & lcmasutili, const LocLLmaskCurve & locllmasCurve, bool & llmasutili, const LocHHmaskCurve & lochhmasCurve, bool & lhmasutili,
|
||||||
const LocCCmaskCurve & locccmasexpCurve, bool & lcmasexputili, const LocLLmaskCurve & locllmasexpCurve, bool & llmasexputili, const LocHHmaskCurve & lochhmasexpCurve, bool & lhmasexputili,
|
const LocCCmaskCurve & locccmasexpCurve, bool & lcmasexputili, const LocLLmaskCurve & locllmasexpCurve, bool & llmasexputili, const LocHHmaskCurve & lochhmasexpCurve, bool & lhmasexputili,
|
||||||
const LocCCmaskCurve & locccmasSHCurve, bool & lcmasSHutili, const LocLLmaskCurve & locllmasSHCurve, bool & llmasSHutili, const LocHHmaskCurve & lochhmasSHCurve, bool & lhmasSHutili,
|
const LocCCmaskCurve & locccmasSHCurve, bool & lcmasSHutili, const LocLLmaskCurve & locllmasSHCurve, bool & llmasSHutili, const LocHHmaskCurve & lochhmasSHCurve, bool & lhmasSHutili,
|
||||||
@ -7817,12 +7818,10 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
|
|||||||
float pde = params->locallab.spots.at(sp).laplac;
|
float pde = params->locallab.spots.at(sp).laplac;
|
||||||
|
|
||||||
if (!params->locallab.spots.at(sp).enatmMaskaft) {
|
if (!params->locallab.spots.at(sp).enatmMaskaft) {
|
||||||
LUTf dummy;
|
|
||||||
bool uti;
|
|
||||||
|
|
||||||
maskcalccol(false, pde, bfw, bfh, xstart, ystart, sk, cx, cy, bufgbm.get(), bufmaskorigtm.get(), originalmasktm.get(), original, inv, lp,
|
maskcalccol(false, pde, bfw, bfh, xstart, ystart, sk, cx, cy, bufgbm.get(), bufmaskorigtm.get(), originalmasktm.get(), original, inv, lp,
|
||||||
locccmastmCurve, lcmastmutili, locllmastmCurve, llmastmutili, lochhmastmCurve, lhmastmutili, multiThread,
|
locccmastmCurve, lcmastmutili, locllmastmCurve, llmastmutili, lochhmastmCurve, lhmastmutili, multiThread,
|
||||||
enaMask, showmaske, deltaE, modmask, zero, modif, chrom, rad, lap, gamma, slope, blendm, dummy, uti);
|
enaMask, showmaske, deltaE, modmask, zero, modif, chrom, rad, lap, gamma, slope, blendm, lmasktmlocalcurve, localmasktmutili);
|
||||||
|
|
||||||
if (lp.showmasktmmet == 3) {
|
if (lp.showmasktmmet == 3) {
|
||||||
showmask(lp, xstart, ystart, cx, cy, bfw, bfh, bufgbm.get(), transformed, bufmaskorigtm.get(), 0);
|
showmask(lp, xstart, ystart, cx, cy, bfw, bfh, bufgbm.get(), transformed, bufmaskorigtm.get(), 0);
|
||||||
@ -7842,12 +7841,10 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
|
|||||||
|
|
||||||
if (enatmMasktmap) {
|
if (enatmMasktmap) {
|
||||||
//calculate new values for original, originalmasktm, bufmaskorigtm...in function of tmp1
|
//calculate new values for original, originalmasktm, bufmaskorigtm...in function of tmp1
|
||||||
LUTf dummy;
|
|
||||||
bool uti;
|
|
||||||
|
|
||||||
maskcalccol(false, pde, bfw, bfh, xstart, ystart, sk, cx, cy, tmp1.get(), bufmaskorigtm.get(), originalmasktm.get(), original, inv, lp,
|
maskcalccol(false, pde, bfw, bfh, xstart, ystart, sk, cx, cy, tmp1.get(), bufmaskorigtm.get(), originalmasktm.get(), original, inv, lp,
|
||||||
locccmastmCurve, lcmastmutili, locllmastmCurve, llmastmutili, lochhmastmCurve, lhmastmutili, multiThread,
|
locccmastmCurve, lcmastmutili, locllmastmCurve, llmastmutili, lochhmastmCurve, lhmastmutili, multiThread,
|
||||||
enaMask, showmaske, deltaE, modmask, zero, modif, chrom, rad, lap, gamma, slope, blendm, dummy, uti);
|
enaMask, showmaske, deltaE, modmask, zero, modif, chrom, rad, lap, gamma, slope, blendm, lmasktmlocalcurve, localmasktmutili);
|
||||||
|
|
||||||
if (lp.showmasktmmet == 3) {//dispaly mask
|
if (lp.showmasktmmet == 3) {//dispaly mask
|
||||||
showmask(lp, xstart, ystart, cx, cy, bfw, bfh, tmp1.get(), transformed, bufmaskorigtm.get(), 0);
|
showmask(lp, xstart, ystart, cx, cy, bfw, bfh, tmp1.get(), transformed, bufmaskorigtm.get(), 0);
|
||||||
|
@ -799,6 +799,7 @@ enum ProcEventCode {
|
|||||||
EvlocallabLmaskshape = 769,
|
EvlocallabLmaskshape = 769,
|
||||||
EvlocallabLmaskexpshape = 770,
|
EvlocallabLmaskexpshape = 770,
|
||||||
EvlocallabLmaskSHshape = 771,
|
EvlocallabLmaskSHshape = 771,
|
||||||
|
EvlocallabLmasktmshape = 772,
|
||||||
NUMOFEVENTS
|
NUMOFEVENTS
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -2590,6 +2590,7 @@ LocallabParams::LocallabSpot::LocallabSpot() :
|
|||||||
gammasktm(1.0),
|
gammasktm(1.0),
|
||||||
slomasktm(0.0),
|
slomasktm(0.0),
|
||||||
lapmasktm(0.0),
|
lapmasktm(0.0),
|
||||||
|
Lmasktmcurve{(double)DCT_NURBS, 0.0, 0.0, 1.0, 1.0},
|
||||||
// Retinex
|
// Retinex
|
||||||
expreti(false),
|
expreti(false),
|
||||||
retinexMethod("high"),
|
retinexMethod("high"),
|
||||||
@ -2875,6 +2876,7 @@ bool LocallabParams::LocallabSpot::operator ==(const LocallabSpot& other) const
|
|||||||
&& gammasktm == other.gammasktm
|
&& gammasktm == other.gammasktm
|
||||||
&& slomasktm == other.slomasktm
|
&& slomasktm == other.slomasktm
|
||||||
&& lapmasktm == other.lapmasktm
|
&& lapmasktm == other.lapmasktm
|
||||||
|
&& Lmasktmcurve == other.Lmasktmcurve
|
||||||
// Retinex
|
// Retinex
|
||||||
&& expreti == other.expreti
|
&& expreti == other.expreti
|
||||||
&& retinexMethod == other.retinexMethod
|
&& retinexMethod == other.retinexMethod
|
||||||
@ -4146,6 +4148,7 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo
|
|||||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).gammasktm, "Locallab", "Gammasktm_" + std::to_string(i), spot.gammasktm, keyFile);
|
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).gammasktm, "Locallab", "Gammasktm_" + std::to_string(i), spot.gammasktm, keyFile);
|
||||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).slomasktm, "Locallab", "Slomasktm_" + std::to_string(i), spot.slomasktm, keyFile);
|
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).slomasktm, "Locallab", "Slomasktm_" + std::to_string(i), spot.slomasktm, keyFile);
|
||||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).lapmasktm, "Locallab", "Lapmasktm_" + std::to_string(i), spot.lapmasktm, keyFile);
|
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).lapmasktm, "Locallab", "Lapmasktm_" + std::to_string(i), spot.lapmasktm, keyFile);
|
||||||
|
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).Lmasktmcurve, "Locallab", "LmasktmCurve_" + std::to_string(i), spot.Lmasktmcurve, keyFile);
|
||||||
// Retinex
|
// Retinex
|
||||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).expreti, "Locallab", "Expreti_" + std::to_string(i), spot.expreti, keyFile);
|
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).expreti, "Locallab", "Expreti_" + std::to_string(i), spot.expreti, keyFile);
|
||||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).retinexMethod, "Locallab", "retinexMethod_" + std::to_string(i), spot.retinexMethod, keyFile);
|
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).retinexMethod, "Locallab", "retinexMethod_" + std::to_string(i), spot.retinexMethod, keyFile);
|
||||||
@ -5544,6 +5547,7 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited)
|
|||||||
assignFromKeyfile(keyFile, "Locallab", "Gammasktm_" + std::to_string(i), pedited, spot.gammasktm, spotEdited.gammasktm);
|
assignFromKeyfile(keyFile, "Locallab", "Gammasktm_" + std::to_string(i), pedited, spot.gammasktm, spotEdited.gammasktm);
|
||||||
assignFromKeyfile(keyFile, "Locallab", "Slomasktm_" + std::to_string(i), pedited, spot.slomasktm, spotEdited.slomasktm);
|
assignFromKeyfile(keyFile, "Locallab", "Slomasktm_" + std::to_string(i), pedited, spot.slomasktm, spotEdited.slomasktm);
|
||||||
assignFromKeyfile(keyFile, "Locallab", "Lapmasktm_" + std::to_string(i), pedited, spot.lapmasktm, spotEdited.lapmasktm);
|
assignFromKeyfile(keyFile, "Locallab", "Lapmasktm_" + std::to_string(i), pedited, spot.lapmasktm, spotEdited.lapmasktm);
|
||||||
|
assignFromKeyfile(keyFile, "Locallab", "LmasktmCurve_" + std::to_string(i), pedited, spot.Lmasktmcurve, spotEdited.Lmasktmcurve);
|
||||||
// Retinex
|
// Retinex
|
||||||
assignFromKeyfile(keyFile, "Locallab", "Expreti_" + std::to_string(i), pedited, spot.expreti, spotEdited.expreti);
|
assignFromKeyfile(keyFile, "Locallab", "Expreti_" + std::to_string(i), pedited, spot.expreti, spotEdited.expreti);
|
||||||
assignFromKeyfile(keyFile, "Locallab", "retinexMethod_" + std::to_string(i), pedited, spot.retinexMethod, spotEdited.retinexMethod);
|
assignFromKeyfile(keyFile, "Locallab", "retinexMethod_" + std::to_string(i), pedited, spot.retinexMethod, spotEdited.retinexMethod);
|
||||||
|
@ -1139,6 +1139,7 @@ struct LocallabParams {
|
|||||||
double gammasktm;
|
double gammasktm;
|
||||||
double slomasktm;
|
double slomasktm;
|
||||||
double lapmasktm;
|
double lapmasktm;
|
||||||
|
std::vector<double> Lmasktmcurve;
|
||||||
// Retinex
|
// Retinex
|
||||||
bool expreti;
|
bool expreti;
|
||||||
Glib::ustring retinexMethod;
|
Glib::ustring retinexMethod;
|
||||||
|
@ -798,7 +798,8 @@ int refreshmap[rtengine::NUMOFEVENTS] = {
|
|||||||
LUMINANCECURVE, //Evlocallabscalegr
|
LUMINANCECURVE, //Evlocallabscalegr
|
||||||
LUMINANCECURVE, //EvlocallabLmaskshape
|
LUMINANCECURVE, //EvlocallabLmaskshape
|
||||||
LUMINANCECURVE, //EvlocallabLmaskexpshape
|
LUMINANCECURVE, //EvlocallabLmaskexpshape
|
||||||
LUMINANCECURVE //EvlocallabLmaskSHshape
|
LUMINANCECURVE, //EvlocallabLmaskSHshape
|
||||||
|
LUMINANCECURVE //EvlocallabLmasktmshape
|
||||||
};
|
};
|
||||||
|
|
||||||
namespace rtengine
|
namespace rtengine
|
||||||
|
@ -1127,6 +1127,7 @@ private:
|
|||||||
LUTf lmasklocalcurve(65536, 0);
|
LUTf lmasklocalcurve(65536, 0);
|
||||||
LUTf lmaskexplocalcurve(65536, 0);
|
LUTf lmaskexplocalcurve(65536, 0);
|
||||||
LUTf lmaskSHlocalcurve(65536, 0);
|
LUTf lmaskSHlocalcurve(65536, 0);
|
||||||
|
LUTf lmasktmlocalcurve(65536, 0);
|
||||||
|
|
||||||
// int maxspot = 1;
|
// int maxspot = 1;
|
||||||
float** shbuffer = nullptr;
|
float** shbuffer = nullptr;
|
||||||
@ -1152,6 +1153,7 @@ private:
|
|||||||
bool localmaskutili = false;
|
bool localmaskutili = false;
|
||||||
bool localmaskexputili = false;
|
bool localmaskexputili = false;
|
||||||
bool localmaskSHutili = false;
|
bool localmaskSHutili = false;
|
||||||
|
bool localmasktmutili = false;
|
||||||
bool lcmasexputili = false;
|
bool lcmasexputili = false;
|
||||||
bool lhmasexputili = false;
|
bool lhmasexputili = false;
|
||||||
bool llmasexputili = false;
|
bool llmasexputili = false;
|
||||||
@ -1203,6 +1205,7 @@ private:
|
|||||||
CurveFactory::curvemaskLocal(localmaskutili, params.locallab.spots.at(sp).Lmaskcurve, lmasklocalcurve, 1);
|
CurveFactory::curvemaskLocal(localmaskutili, params.locallab.spots.at(sp).Lmaskcurve, lmasklocalcurve, 1);
|
||||||
CurveFactory::curvemaskLocal(localmaskexputili, params.locallab.spots.at(sp).Lmaskexpcurve, lmaskexplocalcurve, 1);
|
CurveFactory::curvemaskLocal(localmaskexputili, params.locallab.spots.at(sp).Lmaskexpcurve, lmaskexplocalcurve, 1);
|
||||||
CurveFactory::curvemaskLocal(localmaskSHutili, params.locallab.spots.at(sp).LmaskSHcurve, lmaskSHlocalcurve, 1);
|
CurveFactory::curvemaskLocal(localmaskSHutili, params.locallab.spots.at(sp).LmaskSHcurve, lmaskSHlocalcurve, 1);
|
||||||
|
CurveFactory::curvemaskLocal(localmasktmutili, params.locallab.spots.at(sp).Lmasktmcurve, lmasktmlocalcurve, 1);
|
||||||
//provisory
|
//provisory
|
||||||
double ecomp = params.locallab.spots.at(sp).expcomp;
|
double ecomp = params.locallab.spots.at(sp).expcomp;
|
||||||
double black = params.locallab.spots.at(sp).black;
|
double black = params.locallab.spots.at(sp).black;
|
||||||
@ -1240,6 +1243,7 @@ private:
|
|||||||
lmasklocalcurve, localmaskutili,
|
lmasklocalcurve, localmaskutili,
|
||||||
lmaskexplocalcurve, localmaskexputili,
|
lmaskexplocalcurve, localmaskexputili,
|
||||||
lmaskSHlocalcurve, localmaskSHutili,
|
lmaskSHlocalcurve, localmaskSHutili,
|
||||||
|
lmasktmlocalcurve, localmasktmutili,
|
||||||
locccmasCurve, lcmasutili, locllmasCurve, llmasutili, lochhmasCurve, lhmasutili, locccmasexpCurve, lcmasexputili, locllmasexpCurve, llmasexputili, lochhmasexpCurve, lhmasexputili,
|
locccmasCurve, lcmasutili, locllmasCurve, llmasutili, lochhmasCurve, lhmasutili, locccmasexpCurve, lcmasexputili, locllmasexpCurve, llmasexputili, lochhmasexpCurve, lhmasexputili,
|
||||||
locccmasSHCurve, lcmasSHutili, locllmasSHCurve, llmasSHutili, lochhmasSHCurve, lhmasSHutili,
|
locccmasSHCurve, lcmasSHutili, locllmasSHCurve, llmasSHutili, lochhmasSHCurve, lhmasSHutili,
|
||||||
locccmascbCurve, lcmascbutili, locllmascbCurve, llmascbutili, lochhmascbCurve, lhmascbutili,
|
locccmascbCurve, lcmascbutili, locllmascbCurve, llmascbutili, lochhmascbCurve, lhmascbutili,
|
||||||
|
@ -163,13 +163,14 @@ Locallab::Locallab():
|
|||||||
//Shadows Highlight
|
//Shadows Highlight
|
||||||
maskSHCurveEditorG(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_MASK"))),
|
maskSHCurveEditorG(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_MASK"))),
|
||||||
mask2SHCurveEditorG(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_MASK2"))),
|
mask2SHCurveEditorG(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_MASK2"))),
|
||||||
// Vibranceretinex
|
// Vibrance
|
||||||
curveEditorGG(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_VIBRANCE_CURVEEDITOR_SKINTONES_LABEL"))),
|
curveEditorGG(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_VIBRANCE_CURVEEDITOR_SKINTONES_LABEL"))),
|
||||||
//Blur
|
//Blur
|
||||||
maskblCurveEditorG(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_MASK"))),
|
maskblCurveEditorG(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_MASK"))),
|
||||||
|
|
||||||
//TM
|
//TM
|
||||||
masktmCurveEditorG(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_MASK"))),
|
masktmCurveEditorG(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_MASK"))),
|
||||||
|
mask2tmCurveEditorG(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_MASK2"))),
|
||||||
// Retinex
|
// Retinex
|
||||||
LocalcurveEditortransT(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_TRANSMISSIONMAP"))),
|
LocalcurveEditortransT(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_TRANSMISSIONMAP"))),
|
||||||
LocalcurveEditorgainT(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_TRANSMISSIONGAIN"))),
|
LocalcurveEditorgainT(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_TRANSMISSIONGAIN"))),
|
||||||
@ -1350,6 +1351,25 @@ Locallab::Locallab():
|
|||||||
HHmasktmshape->setBottomBarColorProvider(this, 6);
|
HHmasktmshape->setBottomBarColorProvider(this, 6);
|
||||||
|
|
||||||
masktmCurveEditorG->curveListComplete();
|
masktmCurveEditorG->curveListComplete();
|
||||||
|
|
||||||
|
mask2tmCurveEditorG->setCurveListener(this);
|
||||||
|
Lmasktmshape = static_cast<DiagonalCurveEditor*>(mask2tmCurveEditorG->addCurve(CT_Diagonal, "L(L)"));
|
||||||
|
Lmasktmshape->setResetCurve(DiagonalCurveType(defSpot.Lmasktmcurve.at(0)), defSpot.Lmasktmcurve);
|
||||||
|
|
||||||
|
if (showtooltip) {
|
||||||
|
Lmasktmshape->setTooltip(M("TP_LOCALLAB_CURVEEDITOR_LL_TOOLTIP"));
|
||||||
|
}
|
||||||
|
|
||||||
|
std::vector<GradientMilestone> mLmasktmshape;
|
||||||
|
mLmasktmshape.push_back(GradientMilestone(0., 0., 0., 0.));
|
||||||
|
mLmasktmshape.push_back(GradientMilestone(1., 1., 1., 1.));
|
||||||
|
Lmasktmshape->setBottomBarBgGradient(mLmasktmshape);
|
||||||
|
Lmasktmshape->setLeftBarBgGradient(mLmasktmshape);
|
||||||
|
mask2tmCurveEditorG->curveListComplete();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
enatmMaskConn = enatmMask->signal_toggled().connect(sigc::mem_fun(*this, &Locallab::enatmMaskChanged));
|
enatmMaskConn = enatmMask->signal_toggled().connect(sigc::mem_fun(*this, &Locallab::enatmMaskChanged));
|
||||||
enatmMaskaftConn = enatmMaskaft->signal_toggled().connect(sigc::mem_fun(*this, &Locallab::enatmMaskaftChanged));
|
enatmMaskaftConn = enatmMaskaft->signal_toggled().connect(sigc::mem_fun(*this, &Locallab::enatmMaskaftChanged));
|
||||||
|
|
||||||
@ -1393,6 +1413,7 @@ Locallab::Locallab():
|
|||||||
masktmBox->pack_start(*chromasktm, Gtk::PACK_SHRINK, 0);
|
masktmBox->pack_start(*chromasktm, Gtk::PACK_SHRINK, 0);
|
||||||
masktmBox->pack_start(*gammasktm, Gtk::PACK_SHRINK, 0);
|
masktmBox->pack_start(*gammasktm, Gtk::PACK_SHRINK, 0);
|
||||||
masktmBox->pack_start(*slomasktm, Gtk::PACK_SHRINK, 0);
|
masktmBox->pack_start(*slomasktm, Gtk::PACK_SHRINK, 0);
|
||||||
|
masktmBox->pack_start(*mask2tmCurveEditorG, Gtk::PACK_SHRINK, 4); // Padding is mandatory to correct behavior of curve editor
|
||||||
expmasktm->add(*masktmBox, false);
|
expmasktm->add(*masktmBox, false);
|
||||||
|
|
||||||
|
|
||||||
@ -2267,6 +2288,7 @@ Locallab::~Locallab()
|
|||||||
delete mask2CurveEditorG;
|
delete mask2CurveEditorG;
|
||||||
delete mask2expCurveEditorG;
|
delete mask2expCurveEditorG;
|
||||||
delete mask2SHCurveEditorG;
|
delete mask2SHCurveEditorG;
|
||||||
|
delete mask2tmCurveEditorG;
|
||||||
delete curveEditorG;
|
delete curveEditorG;
|
||||||
delete maskexpCurveEditorG;
|
delete maskexpCurveEditorG;
|
||||||
delete maskSHCurveEditorG;
|
delete maskSHCurveEditorG;
|
||||||
@ -3360,6 +3382,7 @@ void Locallab::write(ProcParams* pp, ParamsEdited* pedited)
|
|||||||
pp->locallab.spots.at(pp->locallab.selspot).gammasktm = gammasktm->getValue();
|
pp->locallab.spots.at(pp->locallab.selspot).gammasktm = gammasktm->getValue();
|
||||||
pp->locallab.spots.at(pp->locallab.selspot).slomasktm = slomasktm->getValue();
|
pp->locallab.spots.at(pp->locallab.selspot).slomasktm = slomasktm->getValue();
|
||||||
pp->locallab.spots.at(pp->locallab.selspot).lapmasktm = lapmasktm->getValue();
|
pp->locallab.spots.at(pp->locallab.selspot).lapmasktm = lapmasktm->getValue();
|
||||||
|
pp->locallab.spots.at(pp->locallab.selspot).Lmasktmcurve = Lmasktmshape->getCurve();
|
||||||
// Retinex
|
// Retinex
|
||||||
pp->locallab.spots.at(pp->locallab.selspot).expreti = expreti->getEnabled();
|
pp->locallab.spots.at(pp->locallab.selspot).expreti = expreti->getEnabled();
|
||||||
|
|
||||||
@ -3661,6 +3684,7 @@ void Locallab::write(ProcParams* pp, ParamsEdited* pedited)
|
|||||||
pe->locallab.spots.at(pp->locallab.selspot).gammasktm = pe->locallab.spots.at(pp->locallab.selspot).gammasktm || gammasktm->getEditedState();
|
pe->locallab.spots.at(pp->locallab.selspot).gammasktm = pe->locallab.spots.at(pp->locallab.selspot).gammasktm || gammasktm->getEditedState();
|
||||||
pe->locallab.spots.at(pp->locallab.selspot).slomasktm = pe->locallab.spots.at(pp->locallab.selspot).slomasktm || slomasktm->getEditedState();
|
pe->locallab.spots.at(pp->locallab.selspot).slomasktm = pe->locallab.spots.at(pp->locallab.selspot).slomasktm || slomasktm->getEditedState();
|
||||||
pe->locallab.spots.at(pp->locallab.selspot).lapmasktm = pe->locallab.spots.at(pp->locallab.selspot).lapmasktm || lapmasktm->getEditedState();
|
pe->locallab.spots.at(pp->locallab.selspot).lapmasktm = pe->locallab.spots.at(pp->locallab.selspot).lapmasktm || lapmasktm->getEditedState();
|
||||||
|
pe->locallab.spots.at(pp->locallab.selspot).Lmasktmcurve = pe->locallab.spots.at(pp->locallab.selspot).Lmasktmcurve || !Lmasktmshape->isUnChanged();
|
||||||
// Retinex
|
// Retinex
|
||||||
pe->locallab.spots.at(pp->locallab.selspot).expreti = pe->locallab.spots.at(pp->locallab.selspot).expreti || !expreti->get_inconsistent();
|
pe->locallab.spots.at(pp->locallab.selspot).expreti = pe->locallab.spots.at(pp->locallab.selspot).expreti || !expreti->get_inconsistent();
|
||||||
pe->locallab.spots.at(pp->locallab.selspot).retinexMethod = pe->locallab.spots.at(pp->locallab.selspot).retinexMethod || retinexMethod->get_active_text() != M("GENERAL_UNCHANGED");
|
pe->locallab.spots.at(pp->locallab.selspot).retinexMethod = pe->locallab.spots.at(pp->locallab.selspot).retinexMethod || retinexMethod->get_active_text() != M("GENERAL_UNCHANGED");
|
||||||
@ -3952,6 +3976,7 @@ void Locallab::write(ProcParams* pp, ParamsEdited* pedited)
|
|||||||
pedited->locallab.spots.at(pp->locallab.selspot).gammasktm = pedited->locallab.spots.at(pp->locallab.selspot).gammasktm || gammasktm->getEditedState();
|
pedited->locallab.spots.at(pp->locallab.selspot).gammasktm = pedited->locallab.spots.at(pp->locallab.selspot).gammasktm || gammasktm->getEditedState();
|
||||||
pedited->locallab.spots.at(pp->locallab.selspot).slomasktm = pedited->locallab.spots.at(pp->locallab.selspot).slomasktm || slomasktm->getEditedState();
|
pedited->locallab.spots.at(pp->locallab.selspot).slomasktm = pedited->locallab.spots.at(pp->locallab.selspot).slomasktm || slomasktm->getEditedState();
|
||||||
pedited->locallab.spots.at(pp->locallab.selspot).lapmasktm = pedited->locallab.spots.at(pp->locallab.selspot).lapmasktm || lapmasktm->getEditedState();
|
pedited->locallab.spots.at(pp->locallab.selspot).lapmasktm = pedited->locallab.spots.at(pp->locallab.selspot).lapmasktm || lapmasktm->getEditedState();
|
||||||
|
pedited->locallab.spots.at(pp->locallab.selspot).Lmasktmcurve = pedited->locallab.spots.at(pp->locallab.selspot).Lmasktmcurve || !Lmasktmshape->isUnChanged();
|
||||||
// Retinex
|
// Retinex
|
||||||
pedited->locallab.spots.at(pp->locallab.selspot).expreti = pedited->locallab.spots.at(pp->locallab.selspot).expreti || !expreti->get_inconsistent();
|
pedited->locallab.spots.at(pp->locallab.selspot).expreti = pedited->locallab.spots.at(pp->locallab.selspot).expreti || !expreti->get_inconsistent();
|
||||||
pedited->locallab.spots.at(pp->locallab.selspot).retinexMethod = pedited->locallab.spots.at(pp->locallab.selspot).retinexMethod || retinexMethod->get_active_text() != M("GENERAL_UNCHANGED");
|
pedited->locallab.spots.at(pp->locallab.selspot).retinexMethod = pedited->locallab.spots.at(pp->locallab.selspot).retinexMethod || retinexMethod->get_active_text() != M("GENERAL_UNCHANGED");
|
||||||
@ -4345,6 +4370,12 @@ void Locallab::curveChanged(CurveEditor* ce)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (ce == Lmasktmshape) {
|
||||||
|
if (listener) {
|
||||||
|
listener->panelChanged(EvlocallabLmasktmshape, M("HISTORY_CUSTOMCURVE"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Retinex
|
// Retinex
|
||||||
@ -8093,6 +8124,7 @@ void Locallab::updateLocallabGUI(const rtengine::procparams::ProcParams* pp, con
|
|||||||
CCmasktmshape->setCurve(pp->locallab.spots.at(index).CCmasktmcurve);
|
CCmasktmshape->setCurve(pp->locallab.spots.at(index).CCmasktmcurve);
|
||||||
LLmasktmshape->setCurve(pp->locallab.spots.at(index).LLmasktmcurve);
|
LLmasktmshape->setCurve(pp->locallab.spots.at(index).LLmasktmcurve);
|
||||||
HHmasktmshape->setCurve(pp->locallab.spots.at(index).HHmasktmcurve);
|
HHmasktmshape->setCurve(pp->locallab.spots.at(index).HHmasktmcurve);
|
||||||
|
Lmasktmshape->setCurve(pp->locallab.spots.at(index).Lmasktmcurve);
|
||||||
|
|
||||||
// Retinex
|
// Retinex
|
||||||
expreti->setEnabled(pp->locallab.spots.at(index).expreti);
|
expreti->setEnabled(pp->locallab.spots.at(index).expreti);
|
||||||
@ -8440,6 +8472,7 @@ void Locallab::updateLocallabGUI(const rtengine::procparams::ProcParams* pp, con
|
|||||||
gammasktm->setEditedState(spotState->gammasktm ? Edited : UnEdited);
|
gammasktm->setEditedState(spotState->gammasktm ? Edited : UnEdited);
|
||||||
slomasktm->setEditedState(spotState->slomasktm ? Edited : UnEdited);
|
slomasktm->setEditedState(spotState->slomasktm ? Edited : UnEdited);
|
||||||
lapmasktm->setEditedState(spotState->lapmasktm ? Edited : UnEdited);
|
lapmasktm->setEditedState(spotState->lapmasktm ? Edited : UnEdited);
|
||||||
|
Lmasktmshape->setUnChanged(!spotState->Lmasktmcurve);
|
||||||
|
|
||||||
// Retinex
|
// Retinex
|
||||||
expreti->set_inconsistent(!spotState->expreti);
|
expreti->set_inconsistent(!spotState->expreti);
|
||||||
|
@ -109,6 +109,8 @@ private:
|
|||||||
FlatCurveEditor* HHmaskblshape;
|
FlatCurveEditor* HHmaskblshape;
|
||||||
// TM
|
// TM
|
||||||
CurveEditorGroup* const masktmCurveEditorG;
|
CurveEditorGroup* const masktmCurveEditorG;
|
||||||
|
CurveEditorGroup* const mask2tmCurveEditorG;
|
||||||
|
DiagonalCurveEditor* Lmasktmshape;
|
||||||
FlatCurveEditor* CCmasktmshape;
|
FlatCurveEditor* CCmasktmshape;
|
||||||
FlatCurveEditor* LLmasktmshape;
|
FlatCurveEditor* LLmasktmshape;
|
||||||
FlatCurveEditor* HHmasktmshape;
|
FlatCurveEditor* HHmasktmshape;
|
||||||
|
@ -1130,6 +1130,7 @@ void ParamsEdited::initFrom(const std::vector<rtengine::procparams::ProcParams>&
|
|||||||
locallab.spots.at(j).gammasktm = locallab.spots.at(j).gammasktm && pSpot.gammasktm == otherSpot.gammasktm;
|
locallab.spots.at(j).gammasktm = locallab.spots.at(j).gammasktm && pSpot.gammasktm == otherSpot.gammasktm;
|
||||||
locallab.spots.at(j).slomasktm = locallab.spots.at(j).slomasktm && pSpot.slomasktm == otherSpot.slomasktm;
|
locallab.spots.at(j).slomasktm = locallab.spots.at(j).slomasktm && pSpot.slomasktm == otherSpot.slomasktm;
|
||||||
locallab.spots.at(j).lapmasktm = locallab.spots.at(j).lapmasktm && pSpot.lapmasktm == otherSpot.lapmasktm;
|
locallab.spots.at(j).lapmasktm = locallab.spots.at(j).lapmasktm && pSpot.lapmasktm == otherSpot.lapmasktm;
|
||||||
|
locallab.spots.at(j).Lmasktmcurve = locallab.spots.at(j).Lmasktmcurve && pSpot.Lmasktmcurve == otherSpot.Lmasktmcurve;
|
||||||
// Retinex
|
// Retinex
|
||||||
locallab.spots.at(j).expreti = locallab.spots.at(j).expreti && pSpot.expreti == otherSpot.expreti;
|
locallab.spots.at(j).expreti = locallab.spots.at(j).expreti && pSpot.expreti == otherSpot.expreti;
|
||||||
locallab.spots.at(j).retinexMethod = locallab.spots.at(j).retinexMethod && pSpot.retinexMethod == otherSpot.retinexMethod;
|
locallab.spots.at(j).retinexMethod = locallab.spots.at(j).retinexMethod && pSpot.retinexMethod == otherSpot.retinexMethod;
|
||||||
@ -3393,6 +3394,10 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng
|
|||||||
toEdit.locallab.spots.at(i).lapmasktm = mods.locallab.spots.at(i).lapmasktm;
|
toEdit.locallab.spots.at(i).lapmasktm = mods.locallab.spots.at(i).lapmasktm;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (locallab.spots.at(i).Lmasktmcurve) {
|
||||||
|
toEdit.locallab.spots.at(i).Lmasktmcurve = mods.locallab.spots.at(i).Lmasktmcurve;
|
||||||
|
}
|
||||||
|
|
||||||
// Retinex
|
// Retinex
|
||||||
if (locallab.spots.at(i).expreti) {
|
if (locallab.spots.at(i).expreti) {
|
||||||
toEdit.locallab.spots.at(i).expreti = mods.locallab.spots.at(i).expreti;
|
toEdit.locallab.spots.at(i).expreti = mods.locallab.spots.at(i).expreti;
|
||||||
@ -4913,6 +4918,7 @@ LocallabParamsEdited::LocallabSpotEdited::LocallabSpotEdited(bool v) :
|
|||||||
gammasktm(v),
|
gammasktm(v),
|
||||||
slomasktm(v),
|
slomasktm(v),
|
||||||
lapmasktm(v),
|
lapmasktm(v),
|
||||||
|
Lmasktmcurve(v),
|
||||||
// Retinex
|
// Retinex
|
||||||
expreti(v),
|
expreti(v),
|
||||||
retinexMethod(v),
|
retinexMethod(v),
|
||||||
@ -5195,6 +5201,7 @@ void LocallabParamsEdited::LocallabSpotEdited::set(bool v)
|
|||||||
gammasktm = v;
|
gammasktm = v;
|
||||||
slomasktm = v;
|
slomasktm = v;
|
||||||
lapmasktm = v;
|
lapmasktm = v;
|
||||||
|
Lmasktmcurve = v;
|
||||||
// Retinex
|
// Retinex
|
||||||
expreti = v;
|
expreti = v;
|
||||||
retinexMethod = v;
|
retinexMethod = v;
|
||||||
|
@ -549,6 +549,7 @@ public:
|
|||||||
bool gammasktm;
|
bool gammasktm;
|
||||||
bool slomasktm;
|
bool slomasktm;
|
||||||
bool lapmasktm;
|
bool lapmasktm;
|
||||||
|
bool Lmasktmcurve;
|
||||||
// Retinex
|
// Retinex
|
||||||
bool expreti;
|
bool expreti;
|
||||||
bool retinexMethod;
|
bool retinexMethod;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user