diff --git a/rtdata/languages/default b/rtdata/languages/default index 6a01bb648..e330e51f1 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -1015,7 +1015,7 @@ HISTORY_MSG_774;Local - Reti Mask contrast curve HISTORY_MSG_775;Local - CBDL Mask contrast curve HISTORY_MSG_776;Local - Blur Denoise Mask contrast curve HISTORY_MSG_777;Local - Blur Mask local contrast curve -HISTORY_MSG_778;Local - Blur Mask Wavelet level +HISTORY_MSG_778;Local - Blur Mask shadows HISTORY_MSG_779;Local - Color Mask local contrast curve HISTORY_MSG_780;Local - Color Mask shadows HISTORY_MSG_781;Local - Local contrast Wavelet level @@ -2127,6 +2127,8 @@ TP_LOCALLAB_GAMMASKCOL;Gamma mask TP_LOCALLAB_SLOMASKCOL;Slope mask TP_LOCALLAB_SHAMASKCOL;Shadows mask TP_LOCALLAB_LAPMASKCOL;Laplacian threshold mask +TP_LOCALLAB_LMASK_LL_TOOLTIP;Give priority to action on midtones and high lights +TP_LOCALLAB_LMASK_LEVEL_TOOLTIP;Give priority to action on midtones and high lights and by choosing the concerned wavelet levels TP_LOCALLAB_SCOPEMASK;Scope Mask DeltaE Image TP_LOCALLAB_SCOPEMASK_TOOLTIP;Enabled if Mask DeltaE Image is enabled.\nLow values avoid retouching selected area TP_LOCALLAB_MASFRAME;Mask diff --git a/rtengine/improcfun.h b/rtengine/improcfun.h index 5e5c96e5d..771d1e03f 100644 --- a/rtengine/improcfun.h +++ b/rtengine/improcfun.h @@ -191,7 +191,7 @@ public: const LocCCmaskCurve & locccmasCurve, bool & lcmasutili, const LocLLmaskCurve & locllmasCurve, bool & llmasutili, const LocHHmaskCurve & lochhmasCurve, bool &lhmasutili, - bool multiThread, bool enaMask, bool showmaske, bool deltaE, bool modmask, bool zero, bool modif, float chrom, float rad, float lap, float gamma, float slope, float blendm, + bool multiThread, bool enaMask, bool showmaske, bool deltaE, bool modmask, bool zero, bool modif, float chrom, float rad, float lap, float gamma, float slope, float blendm, int shado, LUTf & lmasklocalcurve, bool & localmaskutili, const LocwavCurve & loclmasCurvecolwav, bool & lmasutilicolwav, int level_bl, int level_hl, int level_br, int level_hr, bool delt, const float hueref, const float chromaref, const float lumaref, diff --git a/rtengine/iplocallab.cc b/rtengine/iplocallab.cc index 1181ec8fa..66789b41c 100644 --- a/rtengine/iplocallab.cc +++ b/rtengine/iplocallab.cc @@ -2891,7 +2891,7 @@ void ImProcFunctions::maskcalccol(bool invmask, bool pde, int bfw, int bfh, int const LocCCmaskCurve & locccmasCurve, bool & lcmasutili, const LocLLmaskCurve & locllmasCurve, bool & llmasutili, const LocHHmaskCurve & lochhmasCurve, bool &lhmasutili, - bool multiThread, bool enaMask, bool showmaske, bool deltaE, bool modmask, bool zero, bool modif, float chrom, float rad, float lap, float gamma, float slope, float blendm, + bool multiThread, bool enaMask, bool showmaske, bool deltaE, bool modmask, bool zero, bool modif, float chrom, float rad, float lap, float gamma, float slope, float blendm, int shado, LUTf & lmasklocalcurve, bool & localmaskutili, const LocwavCurve & loclmasCurvecolwav, bool & lmasutilicolwav, int level_bl, int level_hl, int level_br, int level_hr, bool delt, const float hueref, const float chromaref, const float lumaref, @@ -3037,6 +3037,10 @@ void ImProcFunctions::maskcalccol(bool invmask, bool pde, int bfw, int bfh, int } } + if (shado > 0) { + ImProcFunctions::shadowsHighlights(bufmaskblurcol, true, 1, 0, shado, 40, sk, 0, lp.shcomp); + } + int wavelet_level = level_br; int minwin = min(bfw, bfh); @@ -7130,7 +7134,6 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o if (((radius > 1.5 * GAUSS_SKIP) || lp.stren > 0.1 || lp.blmet == 1 || lp.guidb > 1 || lp.showmaskblmet == 2 || lp.enablMask || lp.showmaskblmet == 3 || lp.showmaskblmet == 4) && lp.blurena) { blurz = true; } - const int GW = transformed->W; const int GH = transformed->H; @@ -7259,7 +7262,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o } } - int wavelet_level = params->locallab.spots.at(sp).wavmaskbl; + int wavelet_level = params->locallab.spots.at(sp).shadmaskbl; int minwin = min(GW, GH); int maxlevelspot = 9; @@ -7297,6 +7300,12 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o wavcontrast4(bufmaskblurbl->L, contrast, GW, GH, level_bl, level_hl, level_br, level_hr, sk, numThreads, loclmasCurveblwav, lmasutiliblwav, maxlvl); } + int shado = params->locallab.spots.at(sp).shadmaskbl; + + if (shado > 0 && (lp.enablMask || lp.showmaskblmet == 3)) { + ImProcFunctions::shadowsHighlights(bufmaskblurbl.get(), true, 1, 0, shado, 40, sk, 0, lp.shcomp); + } + // deltae Mask with scope bool delt = params->locallab.spots.at(sp).deltae; int sco = params->locallab.spots.at(sp).scopemask; @@ -7306,7 +7315,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o const float mindElim = 2.f + MINSCOPE * limscope * lp.thr; const float maxdElim = 5.f + MAXSCOPE * limscope * (1 + 0.1f * lp.thr); - if (delt) { + if (delt && (lp.enablMask || lp.showmaskblmet == 3)) { float *rdE[GH] ALIGNED16; float *rdEBuffer = new float[GH * GW]; @@ -7911,7 +7920,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o LocwavCurve dummy; bool delt = params->locallab.spots.at(sp).deltae; int sco = params->locallab.spots.at(sp).scopemask; - + int shado = 0; const int limscope = 80; const float mindE = 2.f + MINSCOPE * sco * lp.thr; const float maxdE = 5.f + MAXSCOPE * sco * (1 + 0.1f * lp.thr); @@ -7921,7 +7930,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o maskcalccol(false, pde, bfw, bfh, xstart, ystart, sk, cx, cy, loctemp.get(), bufmaskorigcb.get(), originalmaskcb.get(), original, inv, lp, locccmascbCurve, lcmascbutili, locllmascbCurve, llmascbutili, lochhmascbCurve, lhmascbutili, multiThread, - enaMask, showmaske, deltaE, modmask, zero, modif, chrom, rad, lap, gamma, slope, blendm, lmaskcblocalcurve, localmaskcbutili, dummy, lmasutilicolwav, 1, 1, 5, 5, + enaMask, showmaske, deltaE, modmask, zero, modif, chrom, rad, lap, gamma, slope, blendm, shado, lmaskcblocalcurve, localmaskcbutili, dummy, lmasutilicolwav, 1, 1, 5, 5, delt, hueref, chromaref, lumaref, maxdE, mindE, maxdElim, mindElim, lp.iterat, limscope, sco ); @@ -8208,10 +8217,11 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o const float maxdE = 5.f + MAXSCOPE * sco * (1 + 0.1f * lp.thr); const float mindElim = 2.f + MINSCOPE * limscope * lp.thr; const float maxdElim = 5.f + MAXSCOPE * limscope * (1 + 0.1f * lp.thr); + int shado = 0; 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, - enaMask, showmaske, deltaE, modmask, zero, modif, chrom, rad, lap, gamma, slope, blendm, lmasktmlocalcurve, localmasktmutili, dummy, lmasutilicolwav, 1, 1, 5, 5, + enaMask, showmaske, deltaE, modmask, zero, modif, chrom, rad, lap, gamma, slope, blendm, shado, lmasktmlocalcurve, localmasktmutili, dummy, lmasutilicolwav, 1, 1, 5, 5, delt, hueref, chromaref, lumaref, maxdE, mindE, maxdElim, mindElim, lp.iterat, limscope, sco ); @@ -8244,10 +8254,11 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o const float maxdE = 5.f + MAXSCOPE * sco * (1 + 0.1f * lp.thr); const float mindElim = 2.f + MINSCOPE * limscope * lp.thr; const float maxdElim = 5.f + MAXSCOPE * limscope * (1 + 0.1f * lp.thr); + int shado = 0; 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, - enaMask, showmaske, deltaE, modmask, zero, modif, chrom, rad, lap, gamma, slope, blendm, lmasktmlocalcurve, localmasktmutili, dummy, lmasutilicolwav, 1, 1, 5, 5, + enaMask, showmaske, deltaE, modmask, zero, modif, chrom, rad, lap, gamma, slope, blendm, shado, lmasktmlocalcurve, localmasktmutili, dummy, lmasutilicolwav, 1, 1, 5, 5, delt, hueref, chromaref, lumaref, maxdE, mindE, maxdElim, mindElim, lp.iterat, limscope, sco ); @@ -8424,10 +8435,11 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o const float maxdE = 5.f + MAXSCOPE * sco * (1 + 0.1f * lp.thr); const float mindElim = 2.f + MINSCOPE * limscope * lp.thr; const float maxdElim = 5.f + MAXSCOPE * limscope * (1 + 0.1f * lp.thr); + int shado = 0; maskcalccol(false, pde, bfw, bfh, xstart, ystart, sk, cx, cy, bufexporig.get(), bufmaskorigSH.get(), originalmaskSH.get(), original, inv, lp, locccmasSHCurve, lcmasSHutili, locllmasSHCurve, llmasSHutili, lochhmasSHCurve, lhmasSHutili, multiThread, - enaMask, showmaske, deltaE, modmask, zero, modif, chrom, rad, lap, gamma, slope, blendm, lmaskSHlocalcurve, localmaskSHutili, dummy, lmasutilicolwav, 1, 1, 5, 5, + enaMask, showmaske, deltaE, modmask, zero, modif, chrom, rad, lap, gamma, slope, blendm, shado, lmaskSHlocalcurve, localmaskSHutili, dummy, lmasutilicolwav, 1, 1, 5, 5, delt, hueref, chromaref, lumaref, maxdE, mindE, maxdElim, mindElim, lp.iterat, limscope, sco ); @@ -8532,10 +8544,11 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o const float maxdE = 5.f + MAXSCOPE * sco * (1 + 0.1f * lp.thr); const float mindElim = 2.f + MINSCOPE * limscope * lp.thr; const float maxdElim = 5.f + MAXSCOPE * limscope * (1 + 0.1f * lp.thr); + int shado = 0; maskcalccol(false, pde, GW, GH, 0, 0, sk, cx, cy, bufcolorig.get(), bufmaskblurcol.get(), originalmaskSH.get(), original, inv, lp, locccmasSHCurve, lcmasSHutili, locllmasSHCurve, llmasSHutili, lochhmasSHCurve, lhmasSHutili, multiThread, - enaMask, showmaske, deltaE, modmask, zero, modif, chrom, rad, lap, gamma, slope, blendm, lmaskSHlocalcurve, localmaskSHutili, dummy, lmasutilicolwav, 1, 1, 5, 5, + enaMask, showmaske, deltaE, modmask, zero, modif, chrom, rad, lap, gamma, slope, blendm, shado, lmaskSHlocalcurve, localmaskSHutili, dummy, lmasutilicolwav, 1, 1, 5, 5, delt, hueref, chromaref, lumaref, maxdE, mindE, maxdElim, mindElim, lp.iterat, limscope, sco ); @@ -10534,6 +10547,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o bool lmasutilicolwav = false; bool delt = params->locallab.spots.at(sp).deltae; int sco = params->locallab.spots.at(sp).scopemask; + int shado = 0; const int limscope = 80; const float mindE = 2.f + MINSCOPE * sco * lp.thr; @@ -10543,7 +10557,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o maskcalccol(false, pde, bfw, bfh, xstart, ystart, sk, cx, cy, bufexporig.get(), bufmaskblurexp.get(), originalmaskexp.get(), original, inv, lp, locccmasexpCurve, lcmasexputili, locllmasexpCurve, llmasexputili, lochhmasexpCurve, lhmasexputili, multiThread, - enaMask, showmaske, deltaE, modmask, zero, modif, chrom, rad, lap, gamma, slope, blendm, lmaskexplocalcurve, localmaskexputili, dummy, lmasutilicolwav, 1, 1, 5, 5, + enaMask, showmaske, deltaE, modmask, zero, modif, chrom, rad, lap, gamma, slope, blendm, shado, lmaskexplocalcurve, localmaskexputili, dummy, lmasutilicolwav, 1, 1, 5, 5, delt, hueref, chromaref, lumaref, maxdE, mindE, maxdElim, mindElim, lp.iterat, limscope, sco ); @@ -10812,6 +10826,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o bool lmasutilicolwav = false; bool delt = params->locallab.spots.at(sp).deltae; int sco = params->locallab.spots.at(sp).scopemask; + int shado = 0; const int limscope = 80; const float mindE = 2.f + MINSCOPE * sco * lp.thr; @@ -10821,7 +10836,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o maskcalccol(false, pde, GW, GH, 0, 0, sk, cx, cy, bufexporig.get(), bufmaskblurexp.get(), originalmaskexp.get(), original, inv, lp, locccmasexpCurve, lcmasexputili, locllmasexpCurve, llmasexputili, lochhmasexpCurve, lhmasexputili, multiThread, - enaMask, showmaske, deltaE, modmask, zero, modif, chrom, rad, lap, gamma, slope, blendm, lmaskexplocalcurve, localmaskexputili, dummy, lmasutilicolwav, 1, 1, 5, 5, + enaMask, showmaske, deltaE, modmask, zero, modif, chrom, rad, lap, gamma, slope, blendm, shado, lmaskexplocalcurve, localmaskexputili, dummy, lmasutilicolwav, 1, 1, 5, 5, delt, hueref, chromaref, lumaref, maxdE, mindE, maxdElim, mindElim, lp.iterat, limscope, sco ); @@ -11061,7 +11076,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o float blendm = lp.blendmacol; float lap = params->locallab.spots.at(sp).lapmaskcol; float pde = params->locallab.spots.at(sp).laplac; -// int wavlevel = params->locallab.spots.at(sp).shadmaskcol; + int shado = params->locallab.spots.at(sp).shadmaskcol; bool delt = params->locallab.spots.at(sp).deltae; int sco = params->locallab.spots.at(sp).scopemask; int level_bl = params->locallab.spots.at(sp).csthresholdcol.getBottomLeft(); @@ -11077,7 +11092,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o maskcalccol(false, pde, bfw, bfh, xstart, ystart, sk, cx, cy, bufcolorig.get(), bufmaskblurcol.get(), originalmaskcol.get(), original, inv, lp, locccmasCurve, lcmasutili, locllmasCurve, llmasutili, lochhmasCurve, lhmasutili, multiThread, - enaMask, showmaske, deltaE, modmask, zero, modif, chrom, rad, lap, gamma, slope, blendm, lmasklocalcurve, localmaskutili, loclmasCurvecolwav, lmasutilicolwav, + enaMask, showmaske, deltaE, modmask, zero, modif, chrom, rad, lap, gamma, slope, blendm, shado, lmasklocalcurve, localmaskutili, loclmasCurvecolwav, lmasutilicolwav, level_bl, level_hl, level_br, level_hr, delt, hueref, chromaref, lumaref, maxdE, mindE, maxdElim, mindElim, lp.iterat, limscope, sco @@ -11281,7 +11296,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o float blendm = lp.blendmacol; float lap = params->locallab.spots.at(sp).lapmaskcol; float pde = params->locallab.spots.at(sp).laplac; -// int wavlevel = params->locallab.spots.at(sp).shadmaskcol; + int shado = params->locallab.spots.at(sp).shadmaskcol; int level_bl = params->locallab.spots.at(sp).csthresholdcol.getBottomLeft(); int level_hl = params->locallab.spots.at(sp).csthresholdcol.getTopLeft(); int level_br = params->locallab.spots.at(sp).csthresholdcol.getBottomRight(); @@ -11297,7 +11312,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o maskcalccol(false, pde, GW, GH, 0, 0, sk, cx, cy, bufcolorig.get(), bufmaskblurcol.get(), originalmaskcol.get(), original, inv, lp, locccmasCurve, lcmasutili, locllmasCurve, llmasutili, lochhmasCurve, lhmasutili, multiThread, - enaMask, showmaske, deltaE, modmask, zero, modif, chrom, rad, lap, gamma, slope, blendm, lmasklocalcurve, localmaskutili, loclmasCurvecolwav, lmasutilicolwav, + enaMask, showmaske, deltaE, modmask, zero, modif, chrom, rad, lap, gamma, slope, blendm, shado, lmasklocalcurve, localmaskutili, loclmasCurvecolwav, lmasutilicolwav, level_bl, level_hl, level_br, level_hr, delt, hueref, chromaref, lumaref, maxdE, mindE, maxdElim, mindElim, lp.iterat, limscope, sco diff --git a/rtengine/procevents.h b/rtengine/procevents.h index b9a278e2d..0d87711fa 100644 --- a/rtengine/procevents.h +++ b/rtengine/procevents.h @@ -804,7 +804,7 @@ enum ProcEventCode { EvlocallabLmaskcbshape = 774, EvlocallabLmaskblshape = 775, EvlocallabLLmaskblshapewav = 776, - Evlocallabwavmaskbl = 777, + Evlocallabshadmaskbl = 777, EvlocallabLLmaskcolshapewav = 778, Evlocallabshadmaskcol = 779, EvlocallabcsThreshold = 780, diff --git a/rtengine/procparams.cc b/rtengine/procparams.cc index eecd4efce..8342d25e7 100644 --- a/rtengine/procparams.cc +++ b/rtengine/procparams.cc @@ -2572,7 +2572,7 @@ LocallabParams::LocallabSpot::LocallabSpot() : gammaskbl(1.0), slomaskbl(0.0), lapmaskbl(0.0), - wavmaskbl(5), + shadmaskbl(0), Lmaskblcurve{(double)DCT_NURBS, 0.0, 0.0, 1.0, 1.0}, LLmaskblcurvewav{(double)FCT_MinMaxCPoints, 0.0, 0.5, 0.35, 0.35, 1., 0.5, 0.35, 0.35}, csthresholdblur(1, 1, 6, 5, false), @@ -2870,7 +2870,7 @@ bool LocallabParams::LocallabSpot::operator ==(const LocallabSpot& other) const && gammaskbl == other.gammaskbl && slomaskbl == other.slomaskbl && lapmaskbl == other.lapmaskbl - && wavmaskbl == other.wavmaskbl + && shadmaskbl == other.shadmaskbl && Lmaskblcurve == other.Lmaskblcurve && LLmaskblcurvewav == other.LLmaskblcurvewav && csthresholdblur == other.csthresholdblur @@ -4154,7 +4154,7 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo saveToKeyfile(!pedited || pedited->locallab.spots.at(i).gammaskbl, "Locallab", "Gammaskbl_" + std::to_string(i), spot.gammaskbl, keyFile); saveToKeyfile(!pedited || pedited->locallab.spots.at(i).slomaskbl, "Locallab", "Slomaskbl_" + std::to_string(i), spot.slomaskbl, keyFile); saveToKeyfile(!pedited || pedited->locallab.spots.at(i).lapmaskbl, "Locallab", "Lapmaskbl_" + std::to_string(i), spot.lapmaskbl, keyFile); - saveToKeyfile(!pedited || pedited->locallab.spots.at(i).wavmaskbl, "Locallab", "Wavmaskbllevel_" + std::to_string(i), spot.wavmaskbl, keyFile); + saveToKeyfile(!pedited || pedited->locallab.spots.at(i).shadmaskbl, "Locallab", "shadmaskbl_" + std::to_string(i), spot.shadmaskbl, keyFile); saveToKeyfile(!pedited || pedited->locallab.spots.at(i).Lmaskblcurve, "Locallab", "LmaskblCurve_" + std::to_string(i), spot.Lmaskblcurve, keyFile); saveToKeyfile(!pedited || pedited->locallab.spots.at(i).LLmaskblcurvewav, "Locallab", "LLmaskblCurvewav_" + std::to_string(i), spot.LLmaskblcurvewav, keyFile); saveToKeyfile(!pedited || pedited->locallab.spots.at(i).csthresholdblur, "Locallab", "CSThresholdblur_" + std::to_string(i), spot.csthresholdblur.toVector(), keyFile); @@ -5576,7 +5576,7 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited) assignFromKeyfile(keyFile, "Locallab", "Gammaskbl_" + std::to_string(i), pedited, spot.gammaskbl, spotEdited.gammaskbl); assignFromKeyfile(keyFile, "Locallab", "Slomaskbl_" + std::to_string(i), pedited, spot.slomaskbl, spotEdited.slomaskbl); assignFromKeyfile(keyFile, "Locallab", "Lapmaskbl_" + std::to_string(i), pedited, spot.lapmaskbl, spotEdited.lapmaskbl); - assignFromKeyfile(keyFile, "Locallab", "Wavmaskbllevel_" + std::to_string(i), pedited, spot.wavmaskbl, spotEdited.wavmaskbl); + assignFromKeyfile(keyFile, "Locallab", "shadmaskbl_" + std::to_string(i), pedited, spot.shadmaskbl, spotEdited.shadmaskbl); assignFromKeyfile(keyFile, "Locallab", "LmaskblCurve_" + std::to_string(i), pedited, spot.Lmaskblcurve, spotEdited.Lmaskblcurve); assignFromKeyfile(keyFile, "Locallab", "LLmaskblCurvewav_" + std::to_string(i), pedited, spot.LLmaskblcurvewav, spotEdited.LLmaskblcurvewav); if (keyFile.has_key("Locallab", "CSThresholdblur_" + std::to_string(i))) { diff --git a/rtengine/procparams.h b/rtengine/procparams.h index e3992dbaf..3c7bd58cc 100644 --- a/rtengine/procparams.h +++ b/rtengine/procparams.h @@ -1120,7 +1120,7 @@ struct LocallabParams { double gammaskbl; double slomaskbl; double lapmaskbl; - int wavmaskbl; + int shadmaskbl; std::vector Lmaskblcurve; std::vector LLmaskblcurvewav; Threshold csthresholdblur; diff --git a/rtengine/refreshmap.cc b/rtengine/refreshmap.cc index dbbcdf268..9d8d3fe2a 100644 --- a/rtengine/refreshmap.cc +++ b/rtengine/refreshmap.cc @@ -804,7 +804,7 @@ int refreshmap[rtengine::NUMOFEVENTS] = { LUMINANCECURVE, //EvlocallabLmaskcbshape LUMINANCECURVE, //EvlocallabLmaskblshape LUMINANCECURVE, //EvlocallabLLmaskblshapewav - LUMINANCECURVE, //Evlocallabwavmaskbl + LUMINANCECURVE, //Evlocallabshadmaskbl LUMINANCECURVE, //EvlocallabLLmaskcolshapewav LUMINANCECURVE, //Evlocallabshadmaskcol LUMINANCECURVE, //EvlocallabcsThreshold diff --git a/rtgui/locallab.cc b/rtgui/locallab.cc index 62573f911..1fe348fc6 100644 --- a/rtgui/locallab.cc +++ b/rtgui/locallab.cc @@ -265,7 +265,7 @@ Locallab::Locallab(): gammaskbl(Gtk::manage(new Adjuster(M("TP_LOCALLAB_GAMMASKCOL"), 0.05, 5.0, 0.01, 1.))), slomaskbl(Gtk::manage(new Adjuster(M("TP_LOCALLAB_SLOMASKCOL"), 0.0, 15.0, 0.1, 0.))), lapmaskbl(Gtk::manage(new Adjuster(M("TP_LOCALLAB_LAPMASKCOL"), 0.0, 100.0, 0.1, 0.))), - wavmaskbl(Gtk::manage(new Adjuster(M("TP_LOCALLAB_WAMASKCOL"), 1, 9, 1, 5))), + shadmaskbl(Gtk::manage(new Adjuster(M("TP_LOCALLAB_SHAMASKCOL"), 0, 100, 1, 0))), isogr(Gtk::manage(new Adjuster(M("TP_LOCALLAB_ISOGR"), 20, 6400, 1, 400))), strengr(Gtk::manage(new Adjuster(M("TP_LOCALLAB_STRENGR"), 0, 100, 1, 0))), scalegr(Gtk::manage(new Adjuster(M("TP_LOCALLAB_SCALEGR"), 0, 100, 1, 100))), @@ -687,7 +687,7 @@ Locallab::Locallab(): Lmaskshape->setResetCurve(DiagonalCurveType(defSpot.Lmaskcurve.at(0)), defSpot.Lmaskcurve); if (showtooltip) { - Lmaskshape->setTooltip(M("TP_LOCALLAB_CURVEEDITOR_LL_TOOLTIP")); + Lmaskshape->setTooltip(M("TP_LOCALLAB_LMASK_LL_TOOLTIP")); } std::vector mLmaskshape; @@ -703,7 +703,7 @@ Locallab::Locallab(): LLmaskcolshapewav->setResetCurve(FlatCurveType(defSpot.LLmaskcolcurvewav.at(0)), defSpot.LLmaskcolcurvewav); if (showtooltip) { - LLmaskcolshapewav->setTooltip(M("TP_LOCALLAB_CURVEEDITOR_CC_TOOLTIP")); + LLmaskcolshapewav->setTooltip(M("TP_LOCALLAB_LMASK_LEVEL_TOOLTIP")); } LLmaskcolshapewav->setBottomBarBgGradient(mllshape); @@ -755,7 +755,7 @@ Locallab::Locallab(): maskcolBox->pack_start(*chromaskcol, Gtk::PACK_SHRINK, 0); maskcolBox->pack_start(*gammaskcol, Gtk::PACK_SHRINK, 0); maskcolBox->pack_start(*slomaskcol, Gtk::PACK_SHRINK, 0); -// maskcolBox->pack_start(*shadmaskcol, Gtk::PACK_SHRINK, 0); + maskcolBox->pack_start(*shadmaskcol, Gtk::PACK_SHRINK, 0); maskcolBox->pack_start(*mask2CurveEditorG, Gtk::PACK_SHRINK, 4); // Padding is mandatory to correct behavior of curve editor maskcolBox->pack_start(*mask2CurveEditorGwav, Gtk::PACK_SHRINK, 4); // Padding is mandatory to correct behavior of curve editor maskcolBox->pack_start(*csThresholdcol, Gtk::PACK_SHRINK, 0); @@ -949,7 +949,7 @@ Locallab::Locallab(): Lmaskexpshape->setResetCurve(DiagonalCurveType(defSpot.Lmaskexpcurve.at(0)), defSpot.Lmaskexpcurve); if (showtooltip) { - Lmaskexpshape->setTooltip(M("TP_LOCALLAB_CURVEEDITOR_LL_TOOLTIP")); + Lmaskexpshape->setTooltip(M("TP_LOCALLAB_LMASK_LL_TOOLTIP")); } std::vector mLmaskexpshape; @@ -1134,7 +1134,7 @@ Locallab::Locallab(): LmaskSHshape->setResetCurve(DiagonalCurveType(defSpot.LmaskSHcurve.at(0)), defSpot.LmaskSHcurve); if (showtooltip) { - LmaskSHshape->setTooltip(M("TP_LOCALLAB_CURVEEDITOR_LL_TOOLTIP")); + LmaskSHshape->setTooltip(M("TP_LOCALLAB_LMASK_LL_TOOLTIP")); } std::vector mLmaskSHshape; @@ -1385,7 +1385,7 @@ Locallab::Locallab(): Lmasktmshape->setResetCurve(DiagonalCurveType(defSpot.Lmasktmcurve.at(0)), defSpot.Lmasktmcurve); if (showtooltip) { - Lmasktmshape->setTooltip(M("TP_LOCALLAB_CURVEEDITOR_LL_TOOLTIP")); + Lmasktmshape->setTooltip(M("TP_LOCALLAB_LMASK_LL_TOOLTIP")); } std::vector mLmasktmshape; @@ -1625,7 +1625,7 @@ Locallab::Locallab(): Lmaskretishape->setResetCurve(DiagonalCurveType(defSpot.Lmaskreticurve.at(0)), defSpot.Lmaskreticurve); if (showtooltip) { - Lmaskretishape->setTooltip(M("TP_LOCALLAB_CURVEEDITOR_LL_TOOLTIP")); + Lmaskretishape->setTooltip(M("TP_LOCALLAB_LMASK_LL_TOOLTIP")); } std::vector mLmaskretishape; @@ -1997,7 +1997,7 @@ Locallab::Locallab(): Lmaskcbshape->setResetCurve(DiagonalCurveType(defSpot.Lmaskcbcurve.at(0)), defSpot.Lmaskcbcurve); if (showtooltip) { - Lmaskcbshape->setTooltip(M("TP_LOCALLAB_CURVEEDITOR_LL_TOOLTIP")); + Lmaskcbshape->setTooltip(M("TP_LOCALLAB_LMASK_LL_TOOLTIP")); } std::vector mLmaskcbshape; @@ -2157,7 +2157,7 @@ Locallab::Locallab(): Lmaskblshape->setResetCurve(DiagonalCurveType(defSpot.Lmaskblcurve.at(0)), defSpot.Lmaskblcurve); if (showtooltip) { - Lmaskblshape->setTooltip(M("TP_LOCALLAB_CURVEEDITOR_LL_TOOLTIP")); + Lmaskblshape->setTooltip(M("TP_LOCALLAB_LMASK_LL_TOOLTIP")); } std::vector mLmaskblshape; @@ -2174,7 +2174,7 @@ Locallab::Locallab(): LLmaskblshapewav->setResetCurve(FlatCurveType(defSpot.LLmaskblcurvewav.at(0)), defSpot.LLmaskblcurvewav); if (showtooltip) { - LLmaskblshapewav->setTooltip(M("TP_LOCALLAB_CURVEEDITOR_CC_TOOLTIP")); + LLmaskblshapewav->setTooltip(M("TP_LOCALLAB_LMASK_LEVEL_TOOLTIP")); } LLmaskblshapewav->setBottomBarBgGradient(mllshape); @@ -2238,7 +2238,7 @@ Locallab::Locallab(): gammaskbl->setAdjusterListener(this); slomaskbl->setAdjusterListener(this); lapmaskbl->setAdjusterListener(this); - wavmaskbl->setAdjusterListener(this); + shadmaskbl->setAdjusterListener(this); ToolParamBlock* const maskblBox = Gtk::manage(new ToolParamBlock()); maskblBox->pack_start(*showmaskblMethod, Gtk::PACK_SHRINK, 4); @@ -2250,9 +2250,9 @@ Locallab::Locallab(): maskblBox->pack_start(*chromaskbl, Gtk::PACK_SHRINK, 0); maskblBox->pack_start(*gammaskbl, Gtk::PACK_SHRINK, 0); maskblBox->pack_start(*slomaskbl, Gtk::PACK_SHRINK, 0); + maskblBox->pack_start(*shadmaskbl, Gtk::PACK_SHRINK, 0); maskblBox->pack_start(*mask2blCurveEditorG, Gtk::PACK_SHRINK, 4); // Padding is mandatory to correct behavior of curve editor maskblBox->pack_start(*mask2blCurveEditorGwav, Gtk::PACK_SHRINK, 4); // Padding is mandatory to correct behavior of curve editor -// maskblBox->pack_start(*wavmaskbl, Gtk::PACK_SHRINK, 0); maskblBox->pack_start(*csThresholdblur, Gtk::PACK_SHRINK, 0); @@ -3474,7 +3474,7 @@ void Locallab::write(ProcParams* pp, ParamsEdited* pedited) pp->locallab.spots.at(pp->locallab.selspot).gammaskbl = gammaskbl->getValue(); pp->locallab.spots.at(pp->locallab.selspot).slomaskbl = slomaskbl->getValue(); pp->locallab.spots.at(pp->locallab.selspot).lapmaskbl = lapmaskbl->getValue(); - pp->locallab.spots.at(pp->locallab.selspot).wavmaskbl = wavmaskbl->getIntValue(); + pp->locallab.spots.at(pp->locallab.selspot).shadmaskbl = shadmaskbl->getIntValue(); pp->locallab.spots.at(pp->locallab.selspot).fftwbl = fftwbl->get_active(); pp->locallab.spots.at(pp->locallab.selspot).Lmaskblcurve = Lmaskblshape->getCurve(); pp->locallab.spots.at(pp->locallab.selspot).LLmaskblcurvewav = LLmaskblshapewav->getCurve(); @@ -3789,7 +3789,7 @@ void Locallab::write(ProcParams* pp, ParamsEdited* pedited) pe->locallab.spots.at(pp->locallab.selspot).gammaskbl = pe->locallab.spots.at(pp->locallab.selspot).gammaskbl || gammaskbl->getEditedState(); pe->locallab.spots.at(pp->locallab.selspot).slomaskbl = pe->locallab.spots.at(pp->locallab.selspot).slomaskbl || slomaskbl->getEditedState(); pe->locallab.spots.at(pp->locallab.selspot).lapmaskbl = pe->locallab.spots.at(pp->locallab.selspot).lapmaskbl || lapmaskbl->getEditedState(); - pe->locallab.spots.at(pp->locallab.selspot).wavmaskbl = pe->locallab.spots.at(pp->locallab.selspot).wavmaskbl || wavmaskbl->getEditedState(); + pe->locallab.spots.at(pp->locallab.selspot).shadmaskbl = pe->locallab.spots.at(pp->locallab.selspot).shadmaskbl || shadmaskbl->getEditedState(); pe->locallab.spots.at(pp->locallab.selspot).fftwbl = pe->locallab.spots.at(pp->locallab.selspot).fftwbl || !fftwbl->get_inconsistent(); pe->locallab.spots.at(pp->locallab.selspot).Lmaskblcurve = pe->locallab.spots.at(pp->locallab.selspot).Lmaskblcurve || !Lmaskblshape->isUnChanged(); pe->locallab.spots.at(pp->locallab.selspot).LLmaskblcurvewav = pe->locallab.spots.at(pp->locallab.selspot).LLmaskblcurvewav || !LLmaskblshapewav->isUnChanged(); @@ -4091,7 +4091,7 @@ void Locallab::write(ProcParams* pp, ParamsEdited* pedited) pedited->locallab.spots.at(pp->locallab.selspot).gammaskbl = pedited->locallab.spots.at(pp->locallab.selspot).gammaskbl || gammaskbl->getEditedState(); pedited->locallab.spots.at(pp->locallab.selspot).slomaskbl = pedited->locallab.spots.at(pp->locallab.selspot).slomaskbl || slomaskbl->getEditedState(); pedited->locallab.spots.at(pp->locallab.selspot).lapmaskbl = pedited->locallab.spots.at(pp->locallab.selspot).lapmaskbl || lapmaskbl->getEditedState(); - pedited->locallab.spots.at(pp->locallab.selspot).wavmaskbl = pedited->locallab.spots.at(pp->locallab.selspot).wavmaskbl || wavmaskbl->getEditedState(); + pedited->locallab.spots.at(pp->locallab.selspot).shadmaskbl = pedited->locallab.spots.at(pp->locallab.selspot).shadmaskbl || shadmaskbl->getEditedState(); pedited->locallab.spots.at(pp->locallab.selspot).fftwbl = pedited->locallab.spots.at(pp->locallab.selspot).fftwbl || !fftwbl->get_inconsistent(); pedited->locallab.spots.at(pp->locallab.selspot).Lmaskblcurve = pedited->locallab.spots.at(pp->locallab.selspot).Lmaskblcurve || !Lmaskblshape->isUnChanged(); pedited->locallab.spots.at(pp->locallab.selspot).LLmaskblcurvewav = pedited->locallab.spots.at(pp->locallab.selspot).LLmaskblcurvewav || !LLmaskblshapewav->isUnChanged(); @@ -6031,7 +6031,7 @@ void Locallab::setDefaults(const ProcParams * defParams, const ParamsEdited * pe gammaskbl->setDefault(defSpot->gammaskbl); slomaskbl->setDefault(defSpot->slomaskbl); lapmaskbl->setDefault(defSpot->lapmaskbl); - wavmaskbl->setDefault(defSpot->wavmaskbl); + shadmaskbl->setDefault(defSpot->shadmaskbl); csThresholdblur->setDefault(defSpot->csthresholdblur); // Tone Mapping stren->setDefault(defSpot->stren); @@ -6212,7 +6212,7 @@ void Locallab::setDefaults(const ProcParams * defParams, const ParamsEdited * pe gammaskbl->setDefaultEditedState(Irrelevant); slomaskbl->setDefaultEditedState(Irrelevant); lapmaskbl->setDefaultEditedState(Irrelevant); - wavmaskbl->setDefaultEditedState(Irrelevant); + shadmaskbl->setDefaultEditedState(Irrelevant); csThresholdblur->setDefaultEditedState(Irrelevant); // Tone Mapping stren->setDefaultEditedState(Irrelevant); @@ -6397,7 +6397,7 @@ void Locallab::setDefaults(const ProcParams * defParams, const ParamsEdited * pe gammaskbl->setDefaultEditedState(defSpotState->gammaskbl ? Edited : UnEdited); slomaskbl->setDefaultEditedState(defSpotState->slomaskbl ? Edited : UnEdited); lapmaskbl->setDefaultEditedState(defSpotState->lapmaskbl ? Edited : UnEdited); - wavmaskbl->setDefaultEditedState(defSpotState->wavmaskbl ? Edited : UnEdited); + shadmaskbl->setDefaultEditedState(defSpotState->shadmaskbl ? Edited : UnEdited); csThresholdblur->setDefaultEditedState(defSpotState->csthresholdblur ? Edited : UnEdited); // Tone Mapping stren->setDefaultEditedState(defSpotState->stren ? Edited : UnEdited); @@ -7047,9 +7047,9 @@ void Locallab::adjusterChanged(Adjuster * a, double newval) } } - if (a == wavmaskbl) { + if (a == shadmaskbl) { if (listener) { - listener->panelChanged(Evlocallabwavmaskbl, wavmaskbl->getTextValue()); + listener->panelChanged(Evlocallabshadmaskbl, shadmaskbl->getTextValue()); } } @@ -7700,7 +7700,7 @@ void Locallab::setBatchMode(bool batchMode) gammaskbl->showEditedCB(); slomaskbl->showEditedCB(); lapmaskbl->showEditedCB(); - wavmaskbl->showEditedCB(); + shadmaskbl->showEditedCB(); csThresholdblur->showEditedCB(); // Tone Mapping stren->showEditedCB(); @@ -8330,7 +8330,7 @@ void Locallab::updateLocallabGUI(const rtengine::procparams::ProcParams* pp, con gammaskbl->setValue(pp->locallab.spots.at(index).gammaskbl); slomaskbl->setValue(pp->locallab.spots.at(index).slomaskbl); lapmaskbl->setValue(pp->locallab.spots.at(index).lapmaskbl); - wavmaskbl->setValue(pp->locallab.spots.at(index).wavmaskbl); + shadmaskbl->setValue(pp->locallab.spots.at(index).shadmaskbl); fftwbl->set_active(pp->locallab.spots.at(index).fftwbl); Lmaskblshape->setCurve(pp->locallab.spots.at(index).Lmaskblcurve); LLmaskblshapewav->setCurve(pp->locallab.spots.at(index).LLmaskblcurvewav); @@ -8690,7 +8690,7 @@ void Locallab::updateLocallabGUI(const rtengine::procparams::ProcParams* pp, con gammaskbl->setEditedState(spotState->gammaskbl ? Edited : UnEdited); slomaskbl->setEditedState(spotState->slomaskbl ? Edited : UnEdited); lapmaskbl->setEditedState(spotState->lapmaskbl ? Edited : UnEdited); - wavmaskbl->setEditedState(spotState->wavmaskbl ? Edited : UnEdited); + shadmaskbl->setEditedState(spotState->shadmaskbl ? Edited : UnEdited); fftwbl->set_inconsistent(multiImage && !spotState->fftwbl); Lmaskblshape->setUnChanged(!spotState->Lmaskblcurve); LLmaskblshapewav->setUnChanged(!spotState->LLmaskblcurvewav); diff --git a/rtgui/locallab.h b/rtgui/locallab.h index c2f170c56..5d4f0d329 100644 --- a/rtgui/locallab.h +++ b/rtgui/locallab.h @@ -222,7 +222,7 @@ private: Adjuster* const gammaskbl; Adjuster* const slomaskbl; Adjuster* const lapmaskbl; - Adjuster* const wavmaskbl; + Adjuster* const shadmaskbl; Adjuster* const isogr; Adjuster* const strengr; Adjuster* const scalegr; diff --git a/rtgui/paramsedited.cc b/rtgui/paramsedited.cc index 45562e0e6..a17dd9db7 100644 --- a/rtgui/paramsedited.cc +++ b/rtgui/paramsedited.cc @@ -1111,7 +1111,7 @@ void ParamsEdited::initFrom(const std::vector& locallab.spots.at(j).gammaskbl = locallab.spots.at(j).gammaskbl && pSpot.gammaskbl == otherSpot.gammaskbl; locallab.spots.at(j).slomaskbl = locallab.spots.at(j).slomaskbl && pSpot.slomaskbl == otherSpot.slomaskbl; locallab.spots.at(j).lapmaskbl = locallab.spots.at(j).lapmaskbl && pSpot.lapmaskbl == otherSpot.lapmaskbl; - locallab.spots.at(j).wavmaskbl = locallab.spots.at(j).wavmaskbl && pSpot.wavmaskbl == otherSpot.wavmaskbl; + locallab.spots.at(j).shadmaskbl = locallab.spots.at(j).shadmaskbl && pSpot.shadmaskbl == otherSpot.shadmaskbl; locallab.spots.at(j).fftwbl = locallab.spots.at(j).fftwbl && pSpot.fftwbl == otherSpot.fftwbl; locallab.spots.at(j).Lmaskblcurve = locallab.spots.at(j).Lmaskblcurve && pSpot.Lmaskblcurve == otherSpot.Lmaskblcurve; locallab.spots.at(j).LLmaskblcurvewav = locallab.spots.at(j).LLmaskblcurvewav && pSpot.LLmaskblcurvewav == otherSpot.LLmaskblcurvewav; @@ -3337,8 +3337,8 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng toEdit.locallab.spots.at(i).lapmaskbl = mods.locallab.spots.at(i).lapmaskbl; } - if (locallab.spots.at(i).wavmaskbl) { - toEdit.locallab.spots.at(i).wavmaskbl = mods.locallab.spots.at(i).wavmaskbl; + if (locallab.spots.at(i).shadmaskbl) { + toEdit.locallab.spots.at(i).shadmaskbl = mods.locallab.spots.at(i).shadmaskbl; } if (locallab.spots.at(i).Lmaskblcurve) { @@ -4960,7 +4960,7 @@ LocallabParamsEdited::LocallabSpotEdited::LocallabSpotEdited(bool v) : gammaskbl(v), slomaskbl(v), lapmaskbl(v), - wavmaskbl(v), + shadmaskbl(v), Lmaskblcurve(v), LLmaskblcurvewav(v), csthresholdblur(v), @@ -5255,7 +5255,7 @@ void LocallabParamsEdited::LocallabSpotEdited::set(bool v) gammaskbl = v; slomaskbl = v; lapmaskbl = v; - wavmaskbl = v; + shadmaskbl = v; Lmaskblcurve = v; LLmaskblcurvewav = v; csthresholdblur = v; diff --git a/rtgui/paramsedited.h b/rtgui/paramsedited.h index 608470853..23954b6e3 100644 --- a/rtgui/paramsedited.h +++ b/rtgui/paramsedited.h @@ -531,7 +531,7 @@ public: bool gammaskbl; bool slomaskbl; bool lapmaskbl; - bool wavmaskbl; + bool shadmaskbl; bool Lmaskblcurve; bool LLmaskblcurvewav; bool csthresholdblur;