From cb61c55d8ffe2d2cd6a8529ef70e34abdc7e6d39 Mon Sep 17 00:00:00 2001 From: Desmis Date: Fri, 15 Nov 2019 11:05:28 +0100 Subject: [PATCH] prepare work for mask H(H) in Color and light --- rtengine/dcrop.cc | 9 +++++++-- rtengine/improccoordinator.cc | 9 ++++++--- rtengine/improccoordinator.h | 2 ++ rtengine/improcfun.h | 4 ++-- rtengine/iplocallab.cc | 37 +++++++++++++++++++++++------------ rtengine/procevents.h | 1 + rtengine/procparams.cc | 4 ++++ rtengine/procparams.h | 1 + rtengine/refreshmap.cc | 3 ++- rtengine/simpleprocess.cc | 5 ++++- rtgui/locallab.cc | 36 ++++++++++++++++++++++++++++++++-- rtgui/locallab.h | 2 ++ rtgui/paramsedited.cc | 7 +++++++ rtgui/paramsedited.h | 1 + 14 files changed, 98 insertions(+), 23 deletions(-) diff --git a/rtengine/dcrop.cc b/rtengine/dcrop.cc index 4ea4578ff..fb5ad6619 100644 --- a/rtengine/dcrop.cc +++ b/rtengine/dcrop.cc @@ -907,6 +907,7 @@ void Crop::update(int todo) bool HHutili = parent->HHutili; bool llmasutili = parent->llmasutili; bool lhmasutili = parent->lhmasutili; + bool lhhmasutili = parent->lhhmasutili; bool lcmasutili = parent->lcmasutili; bool lhmasexputili = parent->lhmasexputili; bool lcmasexputili = parent->lcmasexputili; @@ -940,12 +941,14 @@ void Crop::update(int todo) LocCCmaskCurve locccmasCurve; LocLLmaskCurve locllmasCurve; LocHHmaskCurve lochhmasCurve; + LocHHmaskCurve lochhhmasCurve; LocCCmaskCurve locccmasexpCurve; LocLLmaskCurve locllmasexpCurve; LocHHmaskCurve lochhmasexpCurve; LocCCmaskCurve locccmasSHCurve; LocLLmaskCurve locllmasSHCurve; LocHHmaskCurve lochhmasSHCurve; + // LocHHmaskCurve lochhhmasSHCurve; LocCCmaskCurve locccmascbCurve; LocLLmaskCurve locllmascbCurve; LocHHmaskCurve lochhmascbCurve; @@ -978,6 +981,7 @@ void Crop::update(int todo) locccmasCurve.Set(params.locallab.spots.at(sp).CCmaskcurve, lcmasutili); locllmasCurve.Set(params.locallab.spots.at(sp).LLmaskcurve, llmasutili); lochhmasCurve.Set(params.locallab.spots.at(sp).HHmaskcurve, lhmasutili); + lochhhmasCurve.Set(params.locallab.spots.at(sp).HHhmaskcurve, lhhmasutili); locccmasexpCurve.Set(params.locallab.spots.at(sp).CCmaskexpcurve, lcmasexputili); locllmasexpCurve.Set(params.locallab.spots.at(sp).LLmaskexpcurve, llmasexputili); lochhmasexpCurve.Set(params.locallab.spots.at(sp).HHmaskexpcurve, lhmasexputili); @@ -1071,7 +1075,7 @@ void Crop::update(int todo) lmaskretilocalcurve2, localmaskretiutili, lmaskcblocalcurve2, localmaskcbutili, lmaskbllocalcurve2, localmaskblutili, - locccmasCurve, lcmasutili, locllmasCurve, llmasutili, lochhmasCurve, lhmasutili, locccmasexpCurve, lcmasexputili, locllmasexpCurve, llmasexputili, lochhmasexpCurve, lhmasexputili, + locccmasCurve, lcmasutili, locllmasCurve, llmasutili, lochhmasCurve, lhmasutili, lochhhmasCurve, lhhmasutili, locccmasexpCurve, lcmasexputili, locllmasexpCurve, llmasexputili, lochhmasexpCurve, lhmasexputili, locccmasSHCurve, lcmasSHutili, locllmasSHCurve, llmasSHutili, lochhmasSHCurve, lhmasSHutili, locccmascbCurve, lcmascbutili, locllmascbCurve, llmascbutili, lochhmascbCurve, lhmascbutili, locccmasretiCurve, lcmasretiutili, locllmasretiCurve, llmasretiutili, lochhmasretiCurve, lhmasretiutili, @@ -1097,7 +1101,7 @@ void Crop::update(int todo) lmaskretilocalcurve2, localmaskretiutili, lmaskcblocalcurve2, localmaskcbutili, lmaskbllocalcurve2, localmaskblutili, - locccmasCurve, lcmasutili, locllmasCurve, llmasutili, lochhmasCurve, lhmasutili, locccmasexpCurve, lcmasexputili, locllmasexpCurve, llmasexputili, lochhmasexpCurve, lhmasexputili, + locccmasCurve, lcmasutili, locllmasCurve, llmasutili, lochhmasCurve, lhmasutili,lochhhmasCurve, lhhmasutili, locccmasexpCurve, lcmasexputili, locllmasexpCurve, llmasexputili, lochhmasexpCurve, lhmasexputili, locccmasSHCurve, lcmasSHutili, locllmasSHCurve, llmasSHutili, lochhmasSHCurve, lhmasSHutili, locccmascbCurve, lcmascbutili, locllmascbCurve, llmascbutili, lochhmascbCurve, lhmascbutili, locccmasretiCurve, lcmasretiutili, locllmasretiCurve, llmasretiutili, lochhmasretiCurve, lhmasretiutili, @@ -1135,6 +1139,7 @@ void Crop::update(int todo) locccmasCurve.Reset(); locllmasCurve.Reset(); lochhmasCurve.Reset(); + lochhhmasCurve.Reset(); locllmasexpCurve.Reset(); locccmasexpCurve.Reset(); lochhmasexpCurve.Reset(); diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index ad3a6daa6..c62a9761c 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -191,6 +191,7 @@ ImProcCoordinator::ImProcCoordinator() : localexutili(false), llmasutili(false), lhmasutili(false), + lhhmasutili(false), lcmasutili(false), localmaskutili(false), localmaskexputili(false), @@ -943,6 +944,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) localcutili = false; llmasutili = false; lhmasutili = false; + lhhmasutili = false; lcmasutili = false; localmaskutili = false; lcmasexputili = false; @@ -969,7 +971,6 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) lcmasblutili = false; lhmasblutili = false; llmasblutili = false; - lhmasutili = false; lcmasutili = false; locwavutili = false; lmasutiliblwav = false; @@ -981,6 +982,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) locccmasCurve.Set(params->locallab.spots.at(sp).CCmaskcurve, lcmasutili); locllmasCurve.Set(params->locallab.spots.at(sp).LLmaskcurve, llmasutili); lochhmasCurve.Set(params->locallab.spots.at(sp).HHmaskcurve, lhmasutili); + lochhhmasCurve.Set(params->locallab.spots.at(sp).HHhmaskcurve, lhhmasutili); locllmasexpCurve.Set(params->locallab.spots.at(sp).LLmaskexpcurve, llmasexputili); locccmasexpCurve.Set(params->locallab.spots.at(sp).CCmaskexpcurve, lcmasexputili); lochhmasexpCurve.Set(params->locallab.spots.at(sp).HHmaskexpcurve, lhmasexputili); @@ -1089,7 +1091,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) lmaskretilocalcurve, localmaskretiutili, lmaskcblocalcurve, localmaskcbutili, lmaskbllocalcurve, localmaskblutili, - locccmasCurve, lcmasutili, locllmasCurve, llmasutili, lochhmasCurve, lhmasutili, locccmasexpCurve, lcmasexputili, locllmasexpCurve, llmasexputili, lochhmasexpCurve, lhmasexputili, + locccmasCurve, lcmasutili, locllmasCurve, llmasutili, lochhmasCurve, lhmasutili, lochhhmasCurve, lhhmasutili, locccmasexpCurve, lcmasexputili, locllmasexpCurve, llmasexputili, lochhmasexpCurve, lhmasexputili, locccmasSHCurve, lcmasSHutili, locllmasSHCurve, llmasSHutili, lochhmasSHCurve, lhmasSHutili, locccmascbCurve, lcmascbutili, locllmascbCurve, llmascbutili, lochhmascbCurve, lhmascbutili, locccmasretiCurve, lcmasretiutili, locllmasretiCurve, llmasretiutili, lochhmasretiCurve, lhmasretiutili, @@ -1114,7 +1116,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) lmaskretilocalcurve, localmaskretiutili, lmaskcblocalcurve, localmaskcbutili, lmaskbllocalcurve, localmaskblutili, - locccmasCurve, lcmasutili, locllmasCurve, llmasutili, lochhmasCurve, lhmasutili, locccmasexpCurve, lcmasexputili, locllmasexpCurve, llmasexputili, lochhmasexpCurve, lhmasexputili, + locccmasCurve, lcmasutili, locllmasCurve, llmasutili, lochhmasCurve, lhmasutili, lochhhmasCurve, lhhmasutili, locccmasexpCurve, lcmasexputili, locllmasexpCurve, llmasexputili, lochhmasexpCurve, lhmasexputili, locccmasSHCurve, lcmasSHutili, locllmasSHCurve, llmasSHutili, lochhmasSHCurve, lhmasSHutili, locccmascbCurve, lcmascbutili, locllmascbCurve, llmascbutili, lochhmascbCurve, lhmascbutili, locccmasretiCurve, lcmasretiutili, locllmasretiCurve, llmasretiutili, lochhmasretiCurve, lhmasretiutili, @@ -1173,6 +1175,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) locccmasCurve.Reset(); locllmasCurve.Reset(); lochhmasCurve.Reset(); + lochhhmasCurve.Reset(); locllmasexpCurve.Reset(); locccmasexpCurve.Reset(); lochhmasexpCurve.Reset(); diff --git a/rtengine/improccoordinator.h b/rtengine/improccoordinator.h index 20027ac48..a8e2c7248 100644 --- a/rtengine/improccoordinator.h +++ b/rtengine/improccoordinator.h @@ -257,6 +257,7 @@ protected: LocCCmaskCurve locccmasCurve; LocLLmaskCurve locllmasCurve; LocHHmaskCurve lochhmasCurve; + LocHHmaskCurve lochhhmasCurve; LocCCmaskCurve locccmasexpCurve; LocLLmaskCurve locllmasexpCurve; LocHHmaskCurve lochhmasexpCurve; @@ -285,6 +286,7 @@ protected: bool localexutili; bool llmasutili; bool lhmasutili; + bool lhhmasutili; bool lcmasutili; bool localmaskutili; bool localmaskexputili; diff --git a/rtengine/improcfun.h b/rtengine/improcfun.h index 2c980be49..78702e9f5 100644 --- a/rtengine/improcfun.h +++ b/rtengine/improcfun.h @@ -219,7 +219,7 @@ public: float strumask, bool astool, const LocCCmaskCurve & locccmasCurve, bool & lcmasutili, const LocLLmaskCurve & locllmasCurve, bool & llmasutili, - const LocHHmaskCurve & lochhmasCurve, bool &lhmasutili, + const LocHHmaskCurve & lochhmasCurve, bool &lhmasutili, const LocHHmaskCurve & lochhhmasCurve, bool &lhhmasutili, 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, float amountcd, float anchorcd, LUTf & lmasklocalcurve, bool & localmaskutili, const LocwavCurve & loclmasCurvecolwav, bool & lmasutilicolwav, int level_bl, int level_hl, int level_br, int level_hr, @@ -271,7 +271,7 @@ public: LUTf & lmaskretilocalcurve, bool & localmaskretiutili, LUTf & lmaskcblocalcurve, bool & localmaskcbutili, LUTf & lmaskbllocalcurve, bool & localmaskblutili, - 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 LocHHmaskCurve & lochhhmasCurve, bool & lhhmasutili, 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 & locccmascbCurve, bool &lcmascbutili, const LocLLmaskCurve & locllmascbCurve, bool &llmascbutili, const LocHHmaskCurve & lochhmascbCurve, bool & lhmascbutili, diff --git a/rtengine/iplocallab.cc b/rtengine/iplocallab.cc index 33cbe7a94..44181eca0 100644 --- a/rtengine/iplocallab.cc +++ b/rtengine/iplocallab.cc @@ -3187,7 +3187,7 @@ void ImProcFunctions::maskcalccol(bool invmask, bool pde, int bfw, int bfh, int float strumask, bool astool, const LocCCmaskCurve & locccmasCurve, bool & lcmasutili, const LocLLmaskCurve & locllmasCurve, bool & llmasutili, - const LocHHmaskCurve & lochhmasCurve, bool &lhmasutili, + const LocHHmaskCurve & lochhmasCurve, bool &lhmasutili, const LocHHmaskCurve & lochhhmasCurve, bool &lhhmasutili, 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, float amountcd, float anchorcd, LUTf & lmasklocalcurve, bool & localmaskutili, const LocwavCurve & loclmasCurvecolwav, bool & lmasutilicolwav, int level_bl, int level_hl, int level_br, int level_hr, @@ -7497,7 +7497,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o LUTf & lmaskretilocalcurve, bool & localmaskretiutili, LUTf & lmaskcblocalcurve, bool & localmaskcbutili, LUTf & lmaskbllocalcurve, bool & localmaskblutili, - 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 LocHHmaskCurve & lochhhmasCurve, bool & lhhmasutili, 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 & locccmascbCurve, bool & lcmascbutili, const LocLLmaskCurve & locllmascbCurve, bool & llmascbutili, const LocHHmaskCurve & lochhmascbCurve, bool & lhmascbutili, @@ -8499,10 +8499,11 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o float amountcd = 0.f; float anchorcd = 50.f; int shortcu = 0; //lp.mergemet; //params->locallab.spots.at(sp).shortc; - + LocHHmaskCurve lochhhmasCurve; + bool lhhmasutili = false; maskcalccol(false, pde, bfw, bfh, xstart, ystart, sk, cx, cy, loctemp.get(), bufmaskorigcb.get(), originalmaskcb.get(), original, inv, lp, 0.f, false, - locccmascbCurve, lcmascbutili, locllmascbCurve, llmascbutili, lochhmascbCurve, lhmascbutili, multiThread, + locccmascbCurve, lcmascbutili, locllmascbCurve, llmascbutili, lochhmascbCurve, lhmascbutili, lochhhmasCurve, lhhmasutili, multiThread, enaMask, showmaske, deltaE, modmask, zero, modif, chrom, rad, lap, gamma, slope, blendm, shado, amountcd, anchorcd, lmaskcblocalcurve, localmaskcbutili, dummy, lmasutilicolwav, 1, 1, 5, 5, shortcu, delt, hueref, chromaref, lumaref, maxdE, mindE, maxdElim, mindElim, lp.iterat, limscope, sco @@ -8809,10 +8810,12 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o int shado = 0; float amountcd = 0.f; float anchorcd = 50.f; + LocHHmaskCurve lochhhmasCurve; + bool lhhmasutili = false; maskcalccol(false, pde, bfw, bfh, xstart, ystart, sk, cx, cy, bufgbm.get(), bufmaskorigtm.get(), originalmasktm.get(), original, inv, lp, 0.f, false, - locccmastmCurve, lcmastmutili, locllmastmCurve, llmastmutili, lochhmastmCurve, lhmastmutili, multiThread, + locccmastmCurve, lcmastmutili, locllmastmCurve, llmastmutili, lochhmastmCurve, lhmastmutili, lochhhmasCurve, lhhmasutili, multiThread, enaMask, showmaske, deltaE, modmask, zero, modif, chrom, rad, lap, gamma, slope, blendm, shado, amountcd, anchorcd, lmasktmlocalcurve, localmasktmutili, dummy, lmasutilicolwav, 1, 1, 5, 5, shortcu, delt, hueref, chromaref, lumaref, maxdE, mindE, maxdElim, mindElim, lp.iterat, limscope, sco @@ -8851,10 +8854,12 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o int shado = 0; float amountcd = 0.f; float anchorcd = 50.f; + LocHHmaskCurve lochhhmasCurve; + bool lhhmasutili = false; maskcalccol(false, pde, bfw, bfh, xstart, ystart, sk, cx, cy, tmp1.get(), bufmaskorigtm.get(), originalmasktm.get(), original, inv, lp, 0.f, false, - locccmastmCurve, lcmastmutili, locllmastmCurve, llmastmutili, lochhmastmCurve, lhmastmutili, multiThread, + locccmastmCurve, lcmastmutili, locllmastmCurve, llmastmutili, lochhmastmCurve, lhmastmutili, lochhhmasCurve, lhhmasutili, multiThread, enaMask, showmaske, deltaE, modmask, zero, modif, chrom, rad, lap, gamma, slope, blendm, shado, amountcd, anchorcd, lmasktmlocalcurve, localmasktmutili, dummy, lmasutilicolwav, 1, 1, 5, 5, shortcu, delt, hueref, chromaref, lumaref, maxdE, mindE, maxdElim, mindElim, lp.iterat, limscope, sco @@ -9054,10 +9059,12 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o float amountcd = params->locallab.spots.at(sp).fatamountSH; float anchorcd = params->locallab.spots.at(sp).fatanchorSH; int lumask = params->locallab.spots.at(sp).lumask; + LocHHmaskCurve lochhhmasCurve; + bool lhhmasutili = false; maskcalccol(false, pde, bfw, bfh, xstart, ystart, sk, cx, cy, bufexporig.get(), bufmaskorigSH.get(), originalmaskSH.get(), original, inv, lp, 0.f, false, - locccmasSHCurve, lcmasSHutili, locllmasSHCurve, llmasSHutili, lochhmasSHCurve, lhmasSHutili, multiThread, + locccmasSHCurve, lcmasSHutili, locllmasSHCurve, llmasSHutili, lochhmasSHCurve, lhmasSHutili, lochhhmasCurve, lhhmasutili, multiThread, enaMask, showmaske, deltaE, modmask, zero, modif, chrom, rad, lap, gamma, slope, blendm, shado, amountcd, anchorcd, lmaskSHlocalcurve, localmaskSHutili, dummy, lmasutilicolwav, 1, 1, 5, 5, shortcu, delt, hueref, chromaref, lumaref, maxdE, mindE, maxdElim, mindElim, lp.iterat, limscope, sco @@ -9206,10 +9213,12 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o float amountcd = params->locallab.spots.at(sp).fatamountSH; float anchorcd = params->locallab.spots.at(sp).fatanchorSH; int lumask = params->locallab.spots.at(sp).lumask; + LocHHmaskCurve lochhhmasCurve; + bool lhhmasutili = false; maskcalccol(false, pde, GW, GH, 0, 0, sk, cx, cy, bufcolorig.get(), bufmaskblurcol.get(), originalmaskSH.get(), original, inv, lp, 0.f, false, - locccmasSHCurve, lcmasSHutili, locllmasSHCurve, llmasSHutili, lochhmasSHCurve, lhmasSHutili, multiThread, + locccmasSHCurve, lcmasSHutili, locllmasSHCurve, llmasSHutili, lochhmasSHCurve, lhmasSHutili, lochhhmasCurve, lhhmasutili, multiThread, enaMask, showmaske, deltaE, modmask, zero, modif, chrom, rad, lap, gamma, slope, blendm, shado, amountcd, anchorcd, lmaskSHlocalcurve, localmaskSHutili, dummy, lmasutilicolwav, 1, 1, 5, 5, shortcu, delt, hueref, chromaref, lumaref, maxdE, mindE, maxdElim, mindElim, lp.iterat, limscope, sco @@ -11289,10 +11298,12 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o float amountcd = 0.f; float anchorcd = 50.f; int lumask = params->locallab.spots.at(sp).lumask; + LocHHmaskCurve lochhhmasCurve; + bool lhhmasutili = false; maskcalccol(false, pde, bfw, bfh, xstart, ystart, sk, cx, cy, bufexporig.get(), bufmaskblurexp.get(), originalmaskexp.get(), original, inv, lp, 0.f, false, - locccmasexpCurve, lcmasexputili, locllmasexpCurve, llmasexputili, lochhmasexpCurve, lhmasexputili, multiThread, + locccmasexpCurve, lcmasexputili, locllmasexpCurve, llmasexputili, lochhmasexpCurve, lhmasexputili, lochhhmasCurve,lhhmasutili , multiThread, enaMask, showmaske, deltaE, modmask, zero, modif, chrom, rad, lap, gamma, slope, blendm, shado, amountcd, anchorcd, lmaskexplocalcurve, localmaskexputili, dummy, lmasutilicolwav, 1, 1, 5, 5, shortcu, delt, hueref, chromaref, lumaref, maxdE, mindE, maxdElim, mindElim, lp.iterat, limscope, sco @@ -11581,10 +11592,12 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o const float maxdElim = 5.f + MAXSCOPE * limscope * (1 + 0.1f * lp.thr); float amountcd = 0.f; float anchorcd = 50.f; + LocHHmaskCurve lochhhmasCurve; + bool lhhmasutili = false; maskcalccol(false, pde, GW, GH, 0, 0, sk, cx, cy, bufexporig.get(), bufmaskblurexp.get(), originalmaskexp.get(), original, inv, lp, 0.f, false, - locccmasexpCurve, lcmasexputili, locllmasexpCurve, llmasexputili, lochhmasexpCurve, lhmasexputili, multiThread, + locccmasexpCurve, lcmasexputili, locllmasexpCurve, llmasexputili, lochhmasexpCurve, lhmasexputili,lochhhmasCurve, lhhmasutili, multiThread, enaMask, showmaske, deltaE, modmask, zero, modif, chrom, rad, lap, gamma, slope, blendm, shado, amountcd, anchorcd, lmaskexplocalcurve, localmaskexputili, dummy, lmasutilicolwav, 1, 1, 5, 5, shortcu, delt, hueref, chromaref, lumaref, maxdE, mindE, maxdElim, mindElim, lp.iterat, limscope, sco @@ -11880,7 +11893,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o // if (lp.mergemet != 2) { maskcalccol(false, pde, bfw, bfh, xstart, ystart, sk, cx, cy, bufcolorig.get(), bufmaskblurcol.get(), originalmaskcol.get(), original, inv, lp, strumask, astool, - locccmasCurve, lcmasutili, locllmasCurve, llmasutili, lochhmasCurve, lhmasutili, multiThread, + locccmasCurve, lcmasutili, locllmasCurve, llmasutili, lochhmasCurve, lhmasutili, lochhhmasCurve, lhhmasutili, multiThread, enaMask, showmaske, deltaE, modmask, zero, modif, chrom, rad, lap, gamma, slope, blendm, shado, amountcd, anchorcd, lmasklocalcurve, localmaskutili, loclmasCurvecolwav, lmasutilicolwav, level_bl, level_hl, level_br, level_hr, shortcu, delt, hueref, chromaref, lumaref, @@ -12671,7 +12684,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, strumask, astool, - locccmasCurve, lcmasutili, locllmasCurve, llmasutili, lochhmasCurve, lhmasutili, multiThread, + locccmasCurve, lcmasutili, locllmasCurve, llmasutili, lochhmasCurve, lhmasutili, lochhhmasCurve, lhhmasutili, multiThread, enaMask, showmaske, deltaE, modmask, zero, modif, chrom, rad, lap, gamma, slope, blendm, shado, amountcd, anchorcd, lmasklocalcurve, localmaskutili, loclmasCurvecolwav, lmasutilicolwav, level_bl, level_hl, level_br, level_hr, shortcu, delt, hueref, chromaref, lumaref, diff --git a/rtengine/procevents.h b/rtengine/procevents.h index bc95e723b..04cdba7fc 100644 --- a/rtengine/procevents.h +++ b/rtengine/procevents.h @@ -831,6 +831,7 @@ enum ProcEventCode { Evlocallabstrumaskbl = 804, EvLocallabtoolcol = 805, Evlocallabtoolbl = 806, + EvlocallabHHhmaskshape = 807, NUMOFEVENTS }; diff --git a/rtengine/procparams.cc b/rtengine/procparams.cc index 7ce9f160d..faf94e869 100644 --- a/rtengine/procparams.cc +++ b/rtengine/procparams.cc @@ -2484,6 +2484,7 @@ LocallabParams::LocallabSpot::LocallabSpot() : CCmaskcurve{(double)FCT_MinMaxCPoints, 0.0, 1.0, 0.35, 0.35, 0.50, 1.0, 0.35, 0.35, 1.00, 1.0, 0.35, 0.35 }, LLmaskcurve{(double)FCT_MinMaxCPoints, 0.0, 1.0, 0.35, 0.35, 0.50, 1.0, 0.35, 0.35, 1.00, 1.0, 0.35, 0.35 }, HHmaskcurve{(double)FCT_MinMaxCPoints, 0.0, 1.0, 0.35, 0.35, 0.50, 1.0, 0.35, 0.35, 1.00, 1.0, 0.35, 0.35 }, + HHhmaskcurve{(double)FCT_MinMaxCPoints, 0.0, 0.50, 0.35, 0.35, 0.166, 0.50, 0.35, 0.35, 0.333, 0.50, 0.35, 0.35, 0.50, 0.50, 0.35, 0.35, 0.666, 0.50, 0.35, 0.35, 0.833, 0.50, 0.35, 0.35}, softradiuscol(0.0), opacol(100.0), conthrcol(0.0), @@ -2804,6 +2805,7 @@ bool LocallabParams::LocallabSpot::operator ==(const LocallabSpot& other) const && CCmaskcurve == other.CCmaskcurve && LLmaskcurve == other.LLmaskcurve && HHmaskcurve == other.HHmaskcurve + && HHhmaskcurve == other.HHhmaskcurve && blurcolde == other.blurcolde && softradiuscol == other.softradiuscol && opacol == other.opacol @@ -4121,6 +4123,7 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo saveToKeyfile(!pedited || pedited->locallab.spots.at(i).CCmaskcurve, "Locallab", "CCmaskCurve_" + std::to_string(i), spot.CCmaskcurve, keyFile); saveToKeyfile(!pedited || pedited->locallab.spots.at(i).LLmaskcurve, "Locallab", "LLmaskCurve_" + std::to_string(i), spot.LLmaskcurve, keyFile); saveToKeyfile(!pedited || pedited->locallab.spots.at(i).HHmaskcurve, "Locallab", "HHmaskCurve_" + std::to_string(i), spot.HHmaskcurve, keyFile); + saveToKeyfile(!pedited || pedited->locallab.spots.at(i).HHhmaskcurve, "Locallab", "HHhmaskCurve_" + std::to_string(i), spot.HHhmaskcurve, keyFile); saveToKeyfile(!pedited || pedited->locallab.spots.at(i).softradiuscol, "Locallab", "Softradiuscol_" + std::to_string(i), spot.softradiuscol, keyFile); saveToKeyfile(!pedited || pedited->locallab.spots.at(i).opacol, "Locallab", "Opacol_" + std::to_string(i), spot.opacol, keyFile); saveToKeyfile(!pedited || pedited->locallab.spots.at(i).conthrcol, "Locallab", "Conthrcol_" + std::to_string(i), spot.conthrcol, keyFile); @@ -5545,6 +5548,7 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited) assignFromKeyfile(keyFile, "Locallab", "CCmaskCurve_" + std::to_string(i), pedited, spot.CCmaskcurve, spotEdited.CCmaskcurve); assignFromKeyfile(keyFile, "Locallab", "LLmaskCurve_" + std::to_string(i), pedited, spot.LLmaskcurve, spotEdited.LLmaskcurve); assignFromKeyfile(keyFile, "Locallab", "HHmaskCurve_" + std::to_string(i), pedited, spot.HHmaskcurve, spotEdited.HHmaskcurve); + assignFromKeyfile(keyFile, "Locallab", "HHhmaskCurve_" + std::to_string(i), pedited, spot.HHhmaskcurve, spotEdited.HHhmaskcurve); assignFromKeyfile(keyFile, "Locallab", "Softradiuscol_" + std::to_string(i), pedited, spot.softradiuscol, spotEdited.softradiuscol); assignFromKeyfile(keyFile, "Locallab", "Opacol_" + std::to_string(i), pedited, spot.opacol, spotEdited.opacol); assignFromKeyfile(keyFile, "Locallab", "Conthrcol_" + std::to_string(i), pedited, spot.conthrcol, spotEdited.conthrcol); diff --git a/rtengine/procparams.h b/rtengine/procparams.h index 17938f202..6b5c91185 100644 --- a/rtengine/procparams.h +++ b/rtengine/procparams.h @@ -1027,6 +1027,7 @@ struct LocallabParams { std::vector CCmaskcurve; std::vector LLmaskcurve; std::vector HHmaskcurve; + std::vector HHhmaskcurve; double softradiuscol; double opacol; double conthrcol; diff --git a/rtengine/refreshmap.cc b/rtengine/refreshmap.cc index 2253992af..8475674fc 100644 --- a/rtengine/refreshmap.cc +++ b/rtengine/refreshmap.cc @@ -834,7 +834,8 @@ int refreshmap[rtengine::NUMOFEVENTS] = { LUMINANCECURVE, //EvLocallabstrumaskcol LUMINANCECURVE, //EvLocallabstrumaskbl LUMINANCECURVE, // EvLocallabtoolcol - LUMINANCECURVE //Evlocallabtoolbl + LUMINANCECURVE, //Evlocallabtoolbl + LUMINANCECURVE //EvlocallabHHhmaskshape }; namespace rtengine diff --git a/rtengine/simpleprocess.cc b/rtengine/simpleprocess.cc index dc7a160fc..649cd435e 100644 --- a/rtengine/simpleprocess.cc +++ b/rtengine/simpleprocess.cc @@ -1103,6 +1103,7 @@ private: LocCCmaskCurve locccmasCurve; LocLLmaskCurve locllmasCurve; LocHHmaskCurve lochhmasCurve; + LocHHmaskCurve lochhhmasCurve; LocCCmaskCurve locccmasexpCurve; LocLLmaskCurve locllmasexpCurve; LocHHmaskCurve lochhmasexpCurve; @@ -1161,6 +1162,7 @@ private: bool localexutili = false; bool llmasutili = false; bool lhmasutili = false; + bool lhhmasutili = false; bool lcmasutili = false; bool localmaskutili = false; bool localmaskexputili = false; @@ -1197,6 +1199,7 @@ private: locccmasCurve.Set(params.locallab.spots.at(sp).CCmaskcurve, lcmasutili); locllmasCurve.Set(params.locallab.spots.at(sp).LLmaskcurve, llmasutili); lochhmasCurve.Set(params.locallab.spots.at(sp).HHmaskcurve, lhmasutili); + lochhhmasCurve.Set(params.locallab.spots.at(sp).HHhmaskcurve, lhhmasutili); locccmasexpCurve.Set(params.locallab.spots.at(sp).CCmaskexpcurve, lcmasexputili); locllmasexpCurve.Set(params.locallab.spots.at(sp).LLmaskexpcurve, llmasexputili); lochhmasexpCurve.Set(params.locallab.spots.at(sp).HHmaskexpcurve, lhmasexputili); @@ -1272,7 +1275,7 @@ private: lmaskretilocalcurve, localmaskretiutili, lmaskcblocalcurve, localmaskcbutili, lmaskbllocalcurve, localmaskblutili, - locccmasCurve, lcmasutili, locllmasCurve, llmasutili, lochhmasCurve, lhmasutili, locccmasexpCurve, lcmasexputili, locllmasexpCurve, llmasexputili, lochhmasexpCurve, lhmasexputili, + locccmasCurve, lcmasutili, locllmasCurve, llmasutili, lochhmasCurve, lhmasutili, lochhhmasCurve, lhhmasutili, locccmasexpCurve, lcmasexputili, locllmasexpCurve, llmasexputili, lochhmasexpCurve, lhmasexputili, locccmasSHCurve, lcmasSHutili, locllmasSHCurve, llmasSHutili, lochhmasSHCurve, lhmasSHutili, locccmascbCurve, lcmascbutili, locllmascbCurve, llmascbutili, lochhmascbCurve, lhmascbutili, locccmasretiCurve, lcmasretiutili, locllmasretiCurve, llmasretiutili, lochhmasretiCurve, lhmasretiutili, diff --git a/rtgui/locallab.cc b/rtgui/locallab.cc index 1edf88a61..0fe63c24a 100644 --- a/rtgui/locallab.cc +++ b/rtgui/locallab.cc @@ -160,6 +160,7 @@ Locallab::Locallab(): HCurveEditorG(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_HLH"))), rgbCurveEditorG(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_RGB"))), maskCurveEditorG(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_MASK"))), + maskHCurveEditorG(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_MASK"))), mask2CurveEditorG(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_MASK2"))), mask2CurveEditorGwav(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_WAVMASK"))), @@ -172,8 +173,9 @@ Locallab::Locallab(): HHshape(static_cast(HCurveEditorG->addCurve(CT_Flat, "H(H)", nullptr, false, true))), CCmaskshape(static_cast(maskCurveEditorG->addCurve(CT_Flat, "C(C)", nullptr, false, false))), LLmaskshape(static_cast(maskCurveEditorG->addCurve(CT_Flat, "L(L)", nullptr, false, false))), - HHmaskshape(static_cast(maskCurveEditorG->addCurve(CT_Flat, "LC(H)", nullptr, false, true))), + HHmaskshape(static_cast(maskHCurveEditorG->addCurve(CT_Flat, "LC(H)", nullptr, false, true))), LLmaskcolshapewav(static_cast(mask2CurveEditorGwav->addCurve(CT_Flat, "L(L)", nullptr, false, false))), + HHhmaskshape(static_cast(maskHCurveEditorG->addCurve(CT_Flat, "H(H)", nullptr, false, true))), // Exposure curveEditorG(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_CURVEEDITOR_TONES_LABEL"))), @@ -853,6 +855,8 @@ pe(nullptr) if (showtooltip) { LLmaskshape->setTooltip(M("TP_LOCALLAB_CURVEEDITOR_CC_TOOLTIP")); } + maskCurveEditorG->curveListComplete(); + maskHCurveEditorG->setCurveListener(this); HHmaskshape->setIdentityValue(0.); HHmaskshape->setResetCurve(FlatCurveType(defSpot.HHmaskcurve.at(0)), defSpot.HHmaskcurve); @@ -864,7 +868,22 @@ pe(nullptr) HHmaskshape->setCurveColorProvider(this, 6); HHmaskshape->setBottomBarColorProvider(this, 6); - maskCurveEditorG->curveListComplete(); + + HHhmaskshape->setIdentityValue(0.); + HHhmaskshape->setResetCurve(FlatCurveType(defSpot.HHhmaskcurve.at(0)), defSpot.HHhmaskcurve); + + if (showtooltip) { + HHhmaskshape->setTooltip(M("TP_LOCALLAB_CURVEEDITOR_LL_TOOLTIP")); + } + + HHhmaskshape->setCurveColorProvider(this, 1); + + const std::vector& mHHhmaskshape = six_shape; + HHhmaskshape->setBottomBarBgGradient(mHHhmaskshape); + + HCurveEditorG->curveListComplete(); + + maskHCurveEditorG->curveListComplete(); mask2CurveEditorG->setCurveListener(this); Lmaskshape->setResetCurve(DiagonalCurveType(defSpot.Lmaskcurve.at(0)), defSpot.Lmaskcurve); @@ -948,6 +967,7 @@ pe(nullptr) maskcolBox->pack_start(*showmaskcolMethodinv, Gtk::PACK_SHRINK, 4); maskcolBox->pack_start(*enaColorMask, Gtk::PACK_SHRINK, 0); maskcolBox->pack_start(*maskCurveEditorG, Gtk::PACK_SHRINK, 4); // Padding is mandatory to correct behavior of curve editor + maskcolBox->pack_start(*maskHCurveEditorG, Gtk::PACK_SHRINK, 4); maskcolBox->pack_start(*strumaskcol, Gtk::PACK_SHRINK, 0); maskcolBox->pack_start(*toolcol); @@ -2603,6 +2623,7 @@ Locallab::~Locallab() delete HCurveEditorG; delete rgbCurveEditorG; delete maskCurveEditorG; + delete maskHCurveEditorG; delete mask2CurveEditorG; delete mask2CurveEditorGwav; delete mask2expCurveEditorG; @@ -3718,6 +3739,7 @@ void Locallab::write(rtengine::procparams::ProcParams* pp, ParamsEdited* pedited pp->locallab.spots.at(pp->locallab.selspot).CCmaskcurve = CCmaskshape->getCurve(); pp->locallab.spots.at(pp->locallab.selspot).LLmaskcurve = LLmaskshape->getCurve(); pp->locallab.spots.at(pp->locallab.selspot).HHmaskcurve = HHmaskshape->getCurve(); + pp->locallab.spots.at(pp->locallab.selspot).HHhmaskcurve = HHhmaskshape->getCurve(); pp->locallab.spots.at(pp->locallab.selspot).blendmaskcol = blendmaskcol->getIntValue(); pp->locallab.spots.at(pp->locallab.selspot).radmaskcol = radmaskcol->getValue(); pp->locallab.spots.at(pp->locallab.selspot).chromaskcol = chromaskcol->getValue(); @@ -4116,6 +4138,7 @@ void Locallab::write(rtengine::procparams::ProcParams* pp, ParamsEdited* pedited pe->locallab.spots.at(pp->locallab.selspot).CCmaskcurve = pe->locallab.spots.at(pp->locallab.selspot).CCmaskcurve || !CCmaskshape->isUnChanged(); pe->locallab.spots.at(pp->locallab.selspot).LLmaskcurve = pe->locallab.spots.at(pp->locallab.selspot).LLmaskcurve || !LLmaskshape->isUnChanged(); pe->locallab.spots.at(pp->locallab.selspot).HHmaskcurve = pe->locallab.spots.at(pp->locallab.selspot).HHmaskcurve || !HHmaskshape->isUnChanged(); + pe->locallab.spots.at(pp->locallab.selspot).HHhmaskcurve = pe->locallab.spots.at(pp->locallab.selspot).HHhmaskcurve || !HHhmaskshape->isUnChanged(); pe->locallab.spots.at(pp->locallab.selspot).blurcolde = pe->locallab.spots.at(pp->locallab.selspot).blurcolde || blurcolde->getEditedState(); pe->locallab.spots.at(pp->locallab.selspot).blendmaskcol = pe->locallab.spots.at(pp->locallab.selspot).blendmaskcol || blendmaskcol->getEditedState(); pe->locallab.spots.at(pp->locallab.selspot).radmaskcol = pe->locallab.spots.at(pp->locallab.selspot).radmaskcol || radmaskcol->getEditedState(); @@ -4446,6 +4469,7 @@ void Locallab::write(rtengine::procparams::ProcParams* pp, ParamsEdited* pedited pedited->locallab.spots.at(pp->locallab.selspot).CCmaskcurve = pedited->locallab.spots.at(pp->locallab.selspot).CCmaskcurve || !CCmaskshape->isUnChanged(); pedited->locallab.spots.at(pp->locallab.selspot).LLmaskcurve = pedited->locallab.spots.at(pp->locallab.selspot).LLmaskcurve || !LLmaskshape->isUnChanged(); pedited->locallab.spots.at(pp->locallab.selspot).HHmaskcurve = pedited->locallab.spots.at(pp->locallab.selspot).HHmaskcurve || !HHmaskshape->isUnChanged(); + pedited->locallab.spots.at(pp->locallab.selspot).HHhmaskcurve = pedited->locallab.spots.at(pp->locallab.selspot).HHhmaskcurve || !HHhmaskshape->isUnChanged(); pedited->locallab.spots.at(pp->locallab.selspot).blurcolde = pedited->locallab.spots.at(pp->locallab.selspot).blurcolde || blurcolde->getEditedState(); pedited->locallab.spots.at(pp->locallab.selspot).blendmaskcol = pedited->locallab.spots.at(pp->locallab.selspot).blendmaskcol || blendmaskcol->getEditedState(); pedited->locallab.spots.at(pp->locallab.selspot).radmaskcol = pedited->locallab.spots.at(pp->locallab.selspot).radmaskcol || radmaskcol->getEditedState(); @@ -4862,6 +4886,12 @@ void Locallab::curveChanged(CurveEditor* ce) } } + if (ce == HHhmaskshape) { + if (listener) { + listener->panelChanged(EvlocallabHHhmaskshape, M("HISTORY_CUSTOMCURVE")); + } + } + if (ce == Lmaskshape) { if (listener) { listener->panelChanged(EvlocallabLmaskshape, M("HISTORY_CUSTOMCURVE")); @@ -9013,6 +9043,7 @@ void Locallab::updateLocallabGUI(const rtengine::procparams::ProcParams* pp, con CCmaskshape->setCurve(pp->locallab.spots.at(index).CCmaskcurve); LLmaskshape->setCurve(pp->locallab.spots.at(index).LLmaskcurve); HHmaskshape->setCurve(pp->locallab.spots.at(index).HHmaskcurve); + HHhmaskshape->setCurve(pp->locallab.spots.at(index).HHhmaskcurve); blurcolde->setValue(pp->locallab.spots.at(index).blurcolde); blendmaskcol->setValue(pp->locallab.spots.at(index).blendmaskcol); radmaskcol->setValue(pp->locallab.spots.at(index).radmaskcol); @@ -9445,6 +9476,7 @@ void Locallab::updateLocallabGUI(const rtengine::procparams::ProcParams* pp, con CCmaskshape->setUnChanged(!spotState->CCmaskcurve); LLmaskshape->setUnChanged(!spotState->LLmaskcurve); HHmaskshape->setUnChanged(!spotState->HHmaskcurve); + HHhmaskshape->setUnChanged(!spotState->HHhmaskcurve); blurcolde->setEditedState(spotState->blurcolde ? Edited : UnEdited); blendmaskcol->setEditedState(spotState->blendmaskcol ? Edited : UnEdited); radmaskcol->setEditedState(spotState->radmaskcol ? Edited : UnEdited); diff --git a/rtgui/locallab.h b/rtgui/locallab.h index 3c98df581..1faef2592 100644 --- a/rtgui/locallab.h +++ b/rtgui/locallab.h @@ -78,6 +78,7 @@ private: CurveEditorGroup* const HCurveEditorG; CurveEditorGroup* const rgbCurveEditorG; CurveEditorGroup* const maskCurveEditorG; + CurveEditorGroup* const maskHCurveEditorG; CurveEditorGroup* const mask2CurveEditorG; CurveEditorGroup* const mask2CurveEditorGwav; DiagonalCurveEditor* const Lmaskshape; @@ -91,6 +92,7 @@ private: FlatCurveEditor* const LLmaskshape; FlatCurveEditor* const HHmaskshape; FlatCurveEditor* const LLmaskcolshapewav; + FlatCurveEditor* const HHhmaskshape; // Exposure CurveEditorGroup* const curveEditorG; CurveEditorGroup* const maskexpCurveEditorG; diff --git a/rtgui/paramsedited.cc b/rtgui/paramsedited.cc index 77c48fb08..c594461e7 100644 --- a/rtgui/paramsedited.cc +++ b/rtgui/paramsedited.cc @@ -1020,6 +1020,7 @@ void ParamsEdited::initFrom(const std::vector& locallab.spots.at(j).CCmaskcurve = locallab.spots.at(j).CCmaskcurve && pSpot.CCmaskcurve == otherSpot.CCmaskcurve; locallab.spots.at(j).LLmaskcurve = locallab.spots.at(j).LLmaskcurve && pSpot.LLmaskcurve == otherSpot.LLmaskcurve; locallab.spots.at(j).HHmaskcurve = locallab.spots.at(j).HHmaskcurve && pSpot.HHmaskcurve == otherSpot.HHmaskcurve; + locallab.spots.at(j).HHhmaskcurve = locallab.spots.at(j).HHhmaskcurve && pSpot.HHhmaskcurve == otherSpot.HHhmaskcurve; locallab.spots.at(j).softradiuscol = locallab.spots.at(j).softradiuscol && pSpot.softradiuscol == otherSpot.softradiuscol; locallab.spots.at(j).opacol = locallab.spots.at(j).opacol && pSpot.opacol == otherSpot.opacol; locallab.spots.at(j).conthrcol = locallab.spots.at(j).conthrcol && pSpot.conthrcol == otherSpot.conthrcol; @@ -3009,6 +3010,10 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng toEdit.locallab.spots.at(i).HHmaskcurve = mods.locallab.spots.at(i).HHmaskcurve; } + if (locallab.spots.at(i).HHhmaskcurve) { + toEdit.locallab.spots.at(i).HHhmaskcurve = mods.locallab.spots.at(i).HHhmaskcurve; + } + if (locallab.spots.at(i).softradiuscol) { toEdit.locallab.spots.at(i).softradiuscol = mods.locallab.spots.at(i).softradiuscol; } @@ -4987,6 +4992,7 @@ LocallabParamsEdited::LocallabSpotEdited::LocallabSpotEdited(bool v) : CCmaskcurve(v), LLmaskcurve(v), HHmaskcurve(v), + HHhmaskcurve(v), softradiuscol(v), opacol(v), conthrcol(v), @@ -5305,6 +5311,7 @@ void LocallabParamsEdited::LocallabSpotEdited::set(bool v) CCmaskcurve = v; LLmaskcurve = v; HHmaskcurve = v; + HHhmaskcurve = v; softradiuscol = v; opacol = v; conthrcol = v; diff --git a/rtgui/paramsedited.h b/rtgui/paramsedited.h index d3998dafe..e38342710 100644 --- a/rtgui/paramsedited.h +++ b/rtgui/paramsedited.h @@ -450,6 +450,7 @@ public: bool CCmaskcurve; bool LLmaskcurve; bool HHmaskcurve; + bool HHhmaskcurve; bool softradiuscol; bool opacol; bool conthrcol;