prepare work for mask H(H) in Color and light

This commit is contained in:
Desmis 2019-11-15 11:05:28 +01:00
parent abf3ca53dc
commit cb61c55d8f
14 changed files with 98 additions and 23 deletions

View File

@ -907,6 +907,7 @@ void Crop::update(int todo)
bool HHutili = parent->HHutili; bool HHutili = parent->HHutili;
bool llmasutili = parent->llmasutili; bool llmasutili = parent->llmasutili;
bool lhmasutili = parent->lhmasutili; bool lhmasutili = parent->lhmasutili;
bool lhhmasutili = parent->lhhmasutili;
bool lcmasutili = parent->lcmasutili; bool lcmasutili = parent->lcmasutili;
bool lhmasexputili = parent->lhmasexputili; bool lhmasexputili = parent->lhmasexputili;
bool lcmasexputili = parent->lcmasexputili; bool lcmasexputili = parent->lcmasexputili;
@ -940,12 +941,14 @@ void Crop::update(int todo)
LocCCmaskCurve locccmasCurve; LocCCmaskCurve locccmasCurve;
LocLLmaskCurve locllmasCurve; LocLLmaskCurve locllmasCurve;
LocHHmaskCurve lochhmasCurve; LocHHmaskCurve lochhmasCurve;
LocHHmaskCurve lochhhmasCurve;
LocCCmaskCurve locccmasexpCurve; LocCCmaskCurve locccmasexpCurve;
LocLLmaskCurve locllmasexpCurve; LocLLmaskCurve locllmasexpCurve;
LocHHmaskCurve lochhmasexpCurve; LocHHmaskCurve lochhmasexpCurve;
LocCCmaskCurve locccmasSHCurve; LocCCmaskCurve locccmasSHCurve;
LocLLmaskCurve locllmasSHCurve; LocLLmaskCurve locllmasSHCurve;
LocHHmaskCurve lochhmasSHCurve; LocHHmaskCurve lochhmasSHCurve;
// LocHHmaskCurve lochhhmasSHCurve;
LocCCmaskCurve locccmascbCurve; LocCCmaskCurve locccmascbCurve;
LocLLmaskCurve locllmascbCurve; LocLLmaskCurve locllmascbCurve;
LocHHmaskCurve lochhmascbCurve; LocHHmaskCurve lochhmascbCurve;
@ -978,6 +981,7 @@ void Crop::update(int todo)
locccmasCurve.Set(params.locallab.spots.at(sp).CCmaskcurve, lcmasutili); locccmasCurve.Set(params.locallab.spots.at(sp).CCmaskcurve, lcmasutili);
locllmasCurve.Set(params.locallab.spots.at(sp).LLmaskcurve, llmasutili); locllmasCurve.Set(params.locallab.spots.at(sp).LLmaskcurve, llmasutili);
lochhmasCurve.Set(params.locallab.spots.at(sp).HHmaskcurve, lhmasutili); 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); locccmasexpCurve.Set(params.locallab.spots.at(sp).CCmaskexpcurve, lcmasexputili);
locllmasexpCurve.Set(params.locallab.spots.at(sp).LLmaskexpcurve, llmasexputili); locllmasexpCurve.Set(params.locallab.spots.at(sp).LLmaskexpcurve, llmasexputili);
lochhmasexpCurve.Set(params.locallab.spots.at(sp).HHmaskexpcurve, lhmasexputili); lochhmasexpCurve.Set(params.locallab.spots.at(sp).HHmaskexpcurve, lhmasexputili);
@ -1071,7 +1075,7 @@ void Crop::update(int todo)
lmaskretilocalcurve2, localmaskretiutili, lmaskretilocalcurve2, localmaskretiutili,
lmaskcblocalcurve2, localmaskcbutili, lmaskcblocalcurve2, localmaskcbutili,
lmaskbllocalcurve2, localmaskblutili, 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, locccmasSHCurve, lcmasSHutili, locllmasSHCurve, llmasSHutili, lochhmasSHCurve, lhmasSHutili,
locccmascbCurve, lcmascbutili, locllmascbCurve, llmascbutili, lochhmascbCurve, lhmascbutili, locccmascbCurve, lcmascbutili, locllmascbCurve, llmascbutili, lochhmascbCurve, lhmascbutili,
locccmasretiCurve, lcmasretiutili, locllmasretiCurve, llmasretiutili, lochhmasretiCurve, lhmasretiutili, locccmasretiCurve, lcmasretiutili, locllmasretiCurve, llmasretiutili, lochhmasretiCurve, lhmasretiutili,
@ -1097,7 +1101,7 @@ void Crop::update(int todo)
lmaskretilocalcurve2, localmaskretiutili, lmaskretilocalcurve2, localmaskretiutili,
lmaskcblocalcurve2, localmaskcbutili, lmaskcblocalcurve2, localmaskcbutili,
lmaskbllocalcurve2, localmaskblutili, 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, locccmasSHCurve, lcmasSHutili, locllmasSHCurve, llmasSHutili, lochhmasSHCurve, lhmasSHutili,
locccmascbCurve, lcmascbutili, locllmascbCurve, llmascbutili, lochhmascbCurve, lhmascbutili, locccmascbCurve, lcmascbutili, locllmascbCurve, llmascbutili, lochhmascbCurve, lhmascbutili,
locccmasretiCurve, lcmasretiutili, locllmasretiCurve, llmasretiutili, lochhmasretiCurve, lhmasretiutili, locccmasretiCurve, lcmasretiutili, locllmasretiCurve, llmasretiutili, lochhmasretiCurve, lhmasretiutili,
@ -1135,6 +1139,7 @@ void Crop::update(int todo)
locccmasCurve.Reset(); locccmasCurve.Reset();
locllmasCurve.Reset(); locllmasCurve.Reset();
lochhmasCurve.Reset(); lochhmasCurve.Reset();
lochhhmasCurve.Reset();
locllmasexpCurve.Reset(); locllmasexpCurve.Reset();
locccmasexpCurve.Reset(); locccmasexpCurve.Reset();
lochhmasexpCurve.Reset(); lochhmasexpCurve.Reset();

View File

@ -191,6 +191,7 @@ ImProcCoordinator::ImProcCoordinator() :
localexutili(false), localexutili(false),
llmasutili(false), llmasutili(false),
lhmasutili(false), lhmasutili(false),
lhhmasutili(false),
lcmasutili(false), lcmasutili(false),
localmaskutili(false), localmaskutili(false),
localmaskexputili(false), localmaskexputili(false),
@ -943,6 +944,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange)
localcutili = false; localcutili = false;
llmasutili = false; llmasutili = false;
lhmasutili = false; lhmasutili = false;
lhhmasutili = false;
lcmasutili = false; lcmasutili = false;
localmaskutili = false; localmaskutili = false;
lcmasexputili = false; lcmasexputili = false;
@ -969,7 +971,6 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange)
lcmasblutili = false; lcmasblutili = false;
lhmasblutili = false; lhmasblutili = false;
llmasblutili = false; llmasblutili = false;
lhmasutili = false;
lcmasutili = false; lcmasutili = false;
locwavutili = false; locwavutili = false;
lmasutiliblwav = false; lmasutiliblwav = false;
@ -981,6 +982,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange)
locccmasCurve.Set(params->locallab.spots.at(sp).CCmaskcurve, lcmasutili); locccmasCurve.Set(params->locallab.spots.at(sp).CCmaskcurve, lcmasutili);
locllmasCurve.Set(params->locallab.spots.at(sp).LLmaskcurve, llmasutili); locllmasCurve.Set(params->locallab.spots.at(sp).LLmaskcurve, llmasutili);
lochhmasCurve.Set(params->locallab.spots.at(sp).HHmaskcurve, lhmasutili); 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); locllmasexpCurve.Set(params->locallab.spots.at(sp).LLmaskexpcurve, llmasexputili);
locccmasexpCurve.Set(params->locallab.spots.at(sp).CCmaskexpcurve, lcmasexputili); locccmasexpCurve.Set(params->locallab.spots.at(sp).CCmaskexpcurve, lcmasexputili);
lochhmasexpCurve.Set(params->locallab.spots.at(sp).HHmaskexpcurve, lhmasexputili); lochhmasexpCurve.Set(params->locallab.spots.at(sp).HHmaskexpcurve, lhmasexputili);
@ -1089,7 +1091,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange)
lmaskretilocalcurve, localmaskretiutili, lmaskretilocalcurve, localmaskretiutili,
lmaskcblocalcurve, localmaskcbutili, lmaskcblocalcurve, localmaskcbutili,
lmaskbllocalcurve, localmaskblutili, 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, locccmasSHCurve, lcmasSHutili, locllmasSHCurve, llmasSHutili, lochhmasSHCurve, lhmasSHutili,
locccmascbCurve, lcmascbutili, locllmascbCurve, llmascbutili, lochhmascbCurve, lhmascbutili, locccmascbCurve, lcmascbutili, locllmascbCurve, llmascbutili, lochhmascbCurve, lhmascbutili,
locccmasretiCurve, lcmasretiutili, locllmasretiCurve, llmasretiutili, lochhmasretiCurve, lhmasretiutili, locccmasretiCurve, lcmasretiutili, locllmasretiCurve, llmasretiutili, lochhmasretiCurve, lhmasretiutili,
@ -1114,7 +1116,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange)
lmaskretilocalcurve, localmaskretiutili, lmaskretilocalcurve, localmaskretiutili,
lmaskcblocalcurve, localmaskcbutili, lmaskcblocalcurve, localmaskcbutili,
lmaskbllocalcurve, localmaskblutili, 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, locccmasSHCurve, lcmasSHutili, locllmasSHCurve, llmasSHutili, lochhmasSHCurve, lhmasSHutili,
locccmascbCurve, lcmascbutili, locllmascbCurve, llmascbutili, lochhmascbCurve, lhmascbutili, locccmascbCurve, lcmascbutili, locllmascbCurve, llmascbutili, lochhmascbCurve, lhmascbutili,
locccmasretiCurve, lcmasretiutili, locllmasretiCurve, llmasretiutili, lochhmasretiCurve, lhmasretiutili, locccmasretiCurve, lcmasretiutili, locllmasretiCurve, llmasretiutili, lochhmasretiCurve, lhmasretiutili,
@ -1173,6 +1175,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange)
locccmasCurve.Reset(); locccmasCurve.Reset();
locllmasCurve.Reset(); locllmasCurve.Reset();
lochhmasCurve.Reset(); lochhmasCurve.Reset();
lochhhmasCurve.Reset();
locllmasexpCurve.Reset(); locllmasexpCurve.Reset();
locccmasexpCurve.Reset(); locccmasexpCurve.Reset();
lochhmasexpCurve.Reset(); lochhmasexpCurve.Reset();

View File

@ -257,6 +257,7 @@ protected:
LocCCmaskCurve locccmasCurve; LocCCmaskCurve locccmasCurve;
LocLLmaskCurve locllmasCurve; LocLLmaskCurve locllmasCurve;
LocHHmaskCurve lochhmasCurve; LocHHmaskCurve lochhmasCurve;
LocHHmaskCurve lochhhmasCurve;
LocCCmaskCurve locccmasexpCurve; LocCCmaskCurve locccmasexpCurve;
LocLLmaskCurve locllmasexpCurve; LocLLmaskCurve locllmasexpCurve;
LocHHmaskCurve lochhmasexpCurve; LocHHmaskCurve lochhmasexpCurve;
@ -285,6 +286,7 @@ protected:
bool localexutili; bool localexutili;
bool llmasutili; bool llmasutili;
bool lhmasutili; bool lhmasutili;
bool lhhmasutili;
bool lcmasutili; bool lcmasutili;
bool localmaskutili; bool localmaskutili;
bool localmaskexputili; bool localmaskexputili;

View File

@ -219,7 +219,7 @@ public:
float strumask, bool astool, float strumask, bool astool,
const LocCCmaskCurve & locccmasCurve, bool & lcmasutili, const LocCCmaskCurve & locccmasCurve, bool & lcmasutili,
const LocLLmaskCurve & locllmasCurve, bool & llmasutili, 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, 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, LUTf & lmasklocalcurve, bool & localmaskutili,
const LocwavCurve & loclmasCurvecolwav, bool & lmasutilicolwav, int level_bl, int level_hl, int level_br, int level_hr, 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 & lmaskretilocalcurve, bool & localmaskretiutili,
LUTf & lmaskcblocalcurve, bool & localmaskcbutili, LUTf & lmaskcblocalcurve, bool & localmaskcbutili,
LUTf & lmaskbllocalcurve, bool & localmaskblutili, 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 & 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,
const LocCCmaskCurve & locccmascbCurve, bool &lcmascbutili, const LocLLmaskCurve & locllmascbCurve, bool &llmascbutili, const LocHHmaskCurve & lochhmascbCurve, bool & lhmascbutili, const LocCCmaskCurve & locccmascbCurve, bool &lcmascbutili, const LocLLmaskCurve & locllmascbCurve, bool &llmascbutili, const LocHHmaskCurve & lochhmascbCurve, bool & lhmascbutili,

View File

@ -3187,7 +3187,7 @@ void ImProcFunctions::maskcalccol(bool invmask, bool pde, int bfw, int bfh, int
float strumask, bool astool, float strumask, bool astool,
const LocCCmaskCurve & locccmasCurve, bool & lcmasutili, const LocCCmaskCurve & locccmasCurve, bool & lcmasutili,
const LocLLmaskCurve & locllmasCurve, bool & llmasutili, 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, 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, LUTf & lmasklocalcurve, bool & localmaskutili,
const LocwavCurve & loclmasCurvecolwav, bool & lmasutilicolwav, int level_bl, int level_hl, int level_br, int level_hr, 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 & lmaskretilocalcurve, bool & localmaskretiutili,
LUTf & lmaskcblocalcurve, bool & localmaskcbutili, LUTf & lmaskcblocalcurve, bool & localmaskcbutili,
LUTf & lmaskbllocalcurve, bool & localmaskblutili, 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 & 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,
const LocCCmaskCurve & locccmascbCurve, bool & lcmascbutili, const LocLLmaskCurve & locllmascbCurve, bool & llmascbutili, const LocHHmaskCurve & lochhmascbCurve, bool & lhmascbutili, 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 amountcd = 0.f;
float anchorcd = 50.f; float anchorcd = 50.f;
int shortcu = 0; //lp.mergemet; //params->locallab.spots.at(sp).shortc; 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, maskcalccol(false, pde, bfw, bfh, xstart, ystart, sk, cx, cy, loctemp.get(), bufmaskorigcb.get(), originalmaskcb.get(), original, inv, lp,
0.f, false, 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, 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, shortcu, delt, hueref, chromaref, lumaref,
maxdE, mindE, maxdElim, mindElim, lp.iterat, limscope, sco 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; int shado = 0;
float amountcd = 0.f; float amountcd = 0.f;
float anchorcd = 50.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, maskcalccol(false, pde, bfw, bfh, xstart, ystart, sk, cx, cy, bufgbm.get(), bufmaskorigtm.get(), originalmasktm.get(), original, inv, lp,
0.f, false, 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, 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, shortcu, delt, hueref, chromaref, lumaref,
maxdE, mindE, maxdElim, mindElim, lp.iterat, limscope, sco 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; int shado = 0;
float amountcd = 0.f; float amountcd = 0.f;
float anchorcd = 50.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, maskcalccol(false, pde, bfw, bfh, xstart, ystart, sk, cx, cy, tmp1.get(), bufmaskorigtm.get(), originalmasktm.get(), original, inv, lp,
0.f, false, 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, 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, shortcu, delt, hueref, chromaref, lumaref,
maxdE, mindE, maxdElim, mindElim, lp.iterat, limscope, sco 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 amountcd = params->locallab.spots.at(sp).fatamountSH;
float anchorcd = params->locallab.spots.at(sp).fatanchorSH; float anchorcd = params->locallab.spots.at(sp).fatanchorSH;
int lumask = params->locallab.spots.at(sp).lumask; 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, maskcalccol(false, pde, bfw, bfh, xstart, ystart, sk, cx, cy, bufexporig.get(), bufmaskorigSH.get(), originalmaskSH.get(), original, inv, lp,
0.f, false, 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, 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, shortcu, delt, hueref, chromaref, lumaref,
maxdE, mindE, maxdElim, mindElim, lp.iterat, limscope, sco 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 amountcd = params->locallab.spots.at(sp).fatamountSH;
float anchorcd = params->locallab.spots.at(sp).fatanchorSH; float anchorcd = params->locallab.spots.at(sp).fatanchorSH;
int lumask = params->locallab.spots.at(sp).lumask; 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, maskcalccol(false, pde, GW, GH, 0, 0, sk, cx, cy, bufcolorig.get(), bufmaskblurcol.get(), originalmaskSH.get(), original, inv, lp,
0.f, false, 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, 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, shortcu, delt, hueref, chromaref, lumaref,
maxdE, mindE, maxdElim, mindElim, lp.iterat, limscope, sco 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 amountcd = 0.f;
float anchorcd = 50.f; float anchorcd = 50.f;
int lumask = params->locallab.spots.at(sp).lumask; 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, maskcalccol(false, pde, bfw, bfh, xstart, ystart, sk, cx, cy, bufexporig.get(), bufmaskblurexp.get(), originalmaskexp.get(), original, inv, lp,
0.f, false, 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, 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, shortcu, delt, hueref, chromaref, lumaref,
maxdE, mindE, maxdElim, mindElim, lp.iterat, limscope, sco 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); const float maxdElim = 5.f + MAXSCOPE * limscope * (1 + 0.1f * lp.thr);
float amountcd = 0.f; float amountcd = 0.f;
float anchorcd = 50.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, maskcalccol(false, pde, GW, GH, 0, 0, sk, cx, cy, bufexporig.get(), bufmaskblurexp.get(), originalmaskexp.get(), original, inv, lp,
0.f, false, 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, 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, shortcu, delt, hueref, chromaref, lumaref,
maxdE, mindE, maxdElim, mindElim, lp.iterat, limscope, sco 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) { // if (lp.mergemet != 2) {
maskcalccol(false, pde, bfw, bfh, xstart, ystart, sk, cx, cy, bufcolorig.get(), bufmaskblurcol.get(), originalmaskcol.get(), original, inv, lp, maskcalccol(false, pde, bfw, bfh, xstart, ystart, sk, cx, cy, bufcolorig.get(), bufmaskblurcol.get(), originalmaskcol.get(), original, inv, lp,
strumask, astool, 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, 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, level_bl, level_hl, level_br, level_hr,
shortcu, delt, hueref, chromaref, lumaref, 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, maskcalccol(false, pde, GW, GH, 0, 0, sk, cx, cy, bufcolorig.get(), bufmaskblurcol.get(), originalmaskcol.get(), original, inv, lp,
strumask, astool, 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, 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, level_bl, level_hl, level_br, level_hr,
shortcu, delt, hueref, chromaref, lumaref, shortcu, delt, hueref, chromaref, lumaref,

View File

@ -831,6 +831,7 @@ enum ProcEventCode {
Evlocallabstrumaskbl = 804, Evlocallabstrumaskbl = 804,
EvLocallabtoolcol = 805, EvLocallabtoolcol = 805,
Evlocallabtoolbl = 806, Evlocallabtoolbl = 806,
EvlocallabHHhmaskshape = 807,
NUMOFEVENTS NUMOFEVENTS
}; };

View File

@ -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 }, 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 }, 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 }, 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), softradiuscol(0.0),
opacol(100.0), opacol(100.0),
conthrcol(0.0), conthrcol(0.0),
@ -2804,6 +2805,7 @@ bool LocallabParams::LocallabSpot::operator ==(const LocallabSpot& other) const
&& CCmaskcurve == other.CCmaskcurve && CCmaskcurve == other.CCmaskcurve
&& LLmaskcurve == other.LLmaskcurve && LLmaskcurve == other.LLmaskcurve
&& HHmaskcurve == other.HHmaskcurve && HHmaskcurve == other.HHmaskcurve
&& HHhmaskcurve == other.HHhmaskcurve
&& blurcolde == other.blurcolde && blurcolde == other.blurcolde
&& softradiuscol == other.softradiuscol && softradiuscol == other.softradiuscol
&& opacol == other.opacol && 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).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).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).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).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).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); 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", "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", "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", "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", "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", "Opacol_" + std::to_string(i), pedited, spot.opacol, spotEdited.opacol);
assignFromKeyfile(keyFile, "Locallab", "Conthrcol_" + std::to_string(i), pedited, spot.conthrcol, spotEdited.conthrcol); assignFromKeyfile(keyFile, "Locallab", "Conthrcol_" + std::to_string(i), pedited, spot.conthrcol, spotEdited.conthrcol);

View File

@ -1027,6 +1027,7 @@ struct LocallabParams {
std::vector<double> CCmaskcurve; std::vector<double> CCmaskcurve;
std::vector<double> LLmaskcurve; std::vector<double> LLmaskcurve;
std::vector<double> HHmaskcurve; std::vector<double> HHmaskcurve;
std::vector<double> HHhmaskcurve;
double softradiuscol; double softradiuscol;
double opacol; double opacol;
double conthrcol; double conthrcol;

View File

@ -834,7 +834,8 @@ int refreshmap[rtengine::NUMOFEVENTS] = {
LUMINANCECURVE, //EvLocallabstrumaskcol LUMINANCECURVE, //EvLocallabstrumaskcol
LUMINANCECURVE, //EvLocallabstrumaskbl LUMINANCECURVE, //EvLocallabstrumaskbl
LUMINANCECURVE, // EvLocallabtoolcol LUMINANCECURVE, // EvLocallabtoolcol
LUMINANCECURVE //Evlocallabtoolbl LUMINANCECURVE, //Evlocallabtoolbl
LUMINANCECURVE //EvlocallabHHhmaskshape
}; };
namespace rtengine namespace rtengine

View File

@ -1103,6 +1103,7 @@ private:
LocCCmaskCurve locccmasCurve; LocCCmaskCurve locccmasCurve;
LocLLmaskCurve locllmasCurve; LocLLmaskCurve locllmasCurve;
LocHHmaskCurve lochhmasCurve; LocHHmaskCurve lochhmasCurve;
LocHHmaskCurve lochhhmasCurve;
LocCCmaskCurve locccmasexpCurve; LocCCmaskCurve locccmasexpCurve;
LocLLmaskCurve locllmasexpCurve; LocLLmaskCurve locllmasexpCurve;
LocHHmaskCurve lochhmasexpCurve; LocHHmaskCurve lochhmasexpCurve;
@ -1161,6 +1162,7 @@ private:
bool localexutili = false; bool localexutili = false;
bool llmasutili = false; bool llmasutili = false;
bool lhmasutili = false; bool lhmasutili = false;
bool lhhmasutili = false;
bool lcmasutili = false; bool lcmasutili = false;
bool localmaskutili = false; bool localmaskutili = false;
bool localmaskexputili = false; bool localmaskexputili = false;
@ -1197,6 +1199,7 @@ private:
locccmasCurve.Set(params.locallab.spots.at(sp).CCmaskcurve, lcmasutili); locccmasCurve.Set(params.locallab.spots.at(sp).CCmaskcurve, lcmasutili);
locllmasCurve.Set(params.locallab.spots.at(sp).LLmaskcurve, llmasutili); locllmasCurve.Set(params.locallab.spots.at(sp).LLmaskcurve, llmasutili);
lochhmasCurve.Set(params.locallab.spots.at(sp).HHmaskcurve, lhmasutili); 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); locccmasexpCurve.Set(params.locallab.spots.at(sp).CCmaskexpcurve, lcmasexputili);
locllmasexpCurve.Set(params.locallab.spots.at(sp).LLmaskexpcurve, llmasexputili); locllmasexpCurve.Set(params.locallab.spots.at(sp).LLmaskexpcurve, llmasexputili);
lochhmasexpCurve.Set(params.locallab.spots.at(sp).HHmaskexpcurve, lhmasexputili); lochhmasexpCurve.Set(params.locallab.spots.at(sp).HHmaskexpcurve, lhmasexputili);
@ -1272,7 +1275,7 @@ private:
lmaskretilocalcurve, localmaskretiutili, lmaskretilocalcurve, localmaskretiutili,
lmaskcblocalcurve, localmaskcbutili, lmaskcblocalcurve, localmaskcbutili,
lmaskbllocalcurve, localmaskblutili, 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, locccmasSHCurve, lcmasSHutili, locllmasSHCurve, llmasSHutili, lochhmasSHCurve, lhmasSHutili,
locccmascbCurve, lcmascbutili, locllmascbCurve, llmascbutili, lochhmascbCurve, lhmascbutili, locccmascbCurve, lcmascbutili, locllmascbCurve, llmascbutili, lochhmascbCurve, lhmascbutili,
locccmasretiCurve, lcmasretiutili, locllmasretiCurve, llmasretiutili, lochhmasretiCurve, lhmasretiutili, locccmasretiCurve, lcmasretiutili, locllmasretiCurve, llmasretiutili, lochhmasretiCurve, lhmasretiutili,

View File

@ -160,6 +160,7 @@ Locallab::Locallab():
HCurveEditorG(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_HLH"))), HCurveEditorG(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_HLH"))),
rgbCurveEditorG(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_RGB"))), rgbCurveEditorG(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_RGB"))),
maskCurveEditorG(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_MASK"))), 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"))), mask2CurveEditorG(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_MASK2"))),
mask2CurveEditorGwav(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_WAVMASK"))), mask2CurveEditorGwav(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_WAVMASK"))),
@ -172,8 +173,9 @@ Locallab::Locallab():
HHshape(static_cast<FlatCurveEditor*>(HCurveEditorG->addCurve(CT_Flat, "H(H)", nullptr, false, true))), HHshape(static_cast<FlatCurveEditor*>(HCurveEditorG->addCurve(CT_Flat, "H(H)", nullptr, false, true))),
CCmaskshape(static_cast<FlatCurveEditor*>(maskCurveEditorG->addCurve(CT_Flat, "C(C)", nullptr, false, false))), CCmaskshape(static_cast<FlatCurveEditor*>(maskCurveEditorG->addCurve(CT_Flat, "C(C)", nullptr, false, false))),
LLmaskshape(static_cast<FlatCurveEditor*>(maskCurveEditorG->addCurve(CT_Flat, "L(L)", nullptr, false, false))), LLmaskshape(static_cast<FlatCurveEditor*>(maskCurveEditorG->addCurve(CT_Flat, "L(L)", nullptr, false, false))),
HHmaskshape(static_cast<FlatCurveEditor *>(maskCurveEditorG->addCurve(CT_Flat, "LC(H)", nullptr, false, true))), HHmaskshape(static_cast<FlatCurveEditor *>(maskHCurveEditorG->addCurve(CT_Flat, "LC(H)", nullptr, false, true))),
LLmaskcolshapewav(static_cast<FlatCurveEditor*>(mask2CurveEditorGwav->addCurve(CT_Flat, "L(L)", nullptr, false, false))), LLmaskcolshapewav(static_cast<FlatCurveEditor*>(mask2CurveEditorGwav->addCurve(CT_Flat, "L(L)", nullptr, false, false))),
HHhmaskshape(static_cast<FlatCurveEditor *>(maskHCurveEditorG->addCurve(CT_Flat, "H(H)", nullptr, false, true))),
// Exposure // Exposure
curveEditorG(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_CURVEEDITOR_TONES_LABEL"))), curveEditorG(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_CURVEEDITOR_TONES_LABEL"))),
@ -853,6 +855,8 @@ pe(nullptr)
if (showtooltip) { if (showtooltip) {
LLmaskshape->setTooltip(M("TP_LOCALLAB_CURVEEDITOR_CC_TOOLTIP")); LLmaskshape->setTooltip(M("TP_LOCALLAB_CURVEEDITOR_CC_TOOLTIP"));
} }
maskCurveEditorG->curveListComplete();
maskHCurveEditorG->setCurveListener(this);
HHmaskshape->setIdentityValue(0.); HHmaskshape->setIdentityValue(0.);
HHmaskshape->setResetCurve(FlatCurveType(defSpot.HHmaskcurve.at(0)), defSpot.HHmaskcurve); HHmaskshape->setResetCurve(FlatCurveType(defSpot.HHmaskcurve.at(0)), defSpot.HHmaskcurve);
@ -864,7 +868,22 @@ pe(nullptr)
HHmaskshape->setCurveColorProvider(this, 6); HHmaskshape->setCurveColorProvider(this, 6);
HHmaskshape->setBottomBarColorProvider(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<GradientMilestone>& mHHhmaskshape = six_shape;
HHhmaskshape->setBottomBarBgGradient(mHHhmaskshape);
HCurveEditorG->curveListComplete();
maskHCurveEditorG->curveListComplete();
mask2CurveEditorG->setCurveListener(this); mask2CurveEditorG->setCurveListener(this);
Lmaskshape->setResetCurve(DiagonalCurveType(defSpot.Lmaskcurve.at(0)), defSpot.Lmaskcurve); 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(*showmaskcolMethodinv, Gtk::PACK_SHRINK, 4);
maskcolBox->pack_start(*enaColorMask, Gtk::PACK_SHRINK, 0); 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(*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(*strumaskcol, Gtk::PACK_SHRINK, 0);
maskcolBox->pack_start(*toolcol); maskcolBox->pack_start(*toolcol);
@ -2603,6 +2623,7 @@ Locallab::~Locallab()
delete HCurveEditorG; delete HCurveEditorG;
delete rgbCurveEditorG; delete rgbCurveEditorG;
delete maskCurveEditorG; delete maskCurveEditorG;
delete maskHCurveEditorG;
delete mask2CurveEditorG; delete mask2CurveEditorG;
delete mask2CurveEditorGwav; delete mask2CurveEditorGwav;
delete mask2expCurveEditorG; 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).CCmaskcurve = CCmaskshape->getCurve();
pp->locallab.spots.at(pp->locallab.selspot).LLmaskcurve = LLmaskshape->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).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).blendmaskcol = blendmaskcol->getIntValue();
pp->locallab.spots.at(pp->locallab.selspot).radmaskcol = radmaskcol->getValue(); pp->locallab.spots.at(pp->locallab.selspot).radmaskcol = radmaskcol->getValue();
pp->locallab.spots.at(pp->locallab.selspot).chromaskcol = chromaskcol->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).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).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).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).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).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(); 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).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).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).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).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).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(); 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 (ce == Lmaskshape) {
if (listener) { if (listener) {
listener->panelChanged(EvlocallabLmaskshape, M("HISTORY_CUSTOMCURVE")); 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); CCmaskshape->setCurve(pp->locallab.spots.at(index).CCmaskcurve);
LLmaskshape->setCurve(pp->locallab.spots.at(index).LLmaskcurve); LLmaskshape->setCurve(pp->locallab.spots.at(index).LLmaskcurve);
HHmaskshape->setCurve(pp->locallab.spots.at(index).HHmaskcurve); HHmaskshape->setCurve(pp->locallab.spots.at(index).HHmaskcurve);
HHhmaskshape->setCurve(pp->locallab.spots.at(index).HHhmaskcurve);
blurcolde->setValue(pp->locallab.spots.at(index).blurcolde); blurcolde->setValue(pp->locallab.spots.at(index).blurcolde);
blendmaskcol->setValue(pp->locallab.spots.at(index).blendmaskcol); blendmaskcol->setValue(pp->locallab.spots.at(index).blendmaskcol);
radmaskcol->setValue(pp->locallab.spots.at(index).radmaskcol); 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); CCmaskshape->setUnChanged(!spotState->CCmaskcurve);
LLmaskshape->setUnChanged(!spotState->LLmaskcurve); LLmaskshape->setUnChanged(!spotState->LLmaskcurve);
HHmaskshape->setUnChanged(!spotState->HHmaskcurve); HHmaskshape->setUnChanged(!spotState->HHmaskcurve);
HHhmaskshape->setUnChanged(!spotState->HHhmaskcurve);
blurcolde->setEditedState(spotState->blurcolde ? Edited : UnEdited); blurcolde->setEditedState(spotState->blurcolde ? Edited : UnEdited);
blendmaskcol->setEditedState(spotState->blendmaskcol ? Edited : UnEdited); blendmaskcol->setEditedState(spotState->blendmaskcol ? Edited : UnEdited);
radmaskcol->setEditedState(spotState->radmaskcol ? Edited : UnEdited); radmaskcol->setEditedState(spotState->radmaskcol ? Edited : UnEdited);

View File

@ -78,6 +78,7 @@ private:
CurveEditorGroup* const HCurveEditorG; CurveEditorGroup* const HCurveEditorG;
CurveEditorGroup* const rgbCurveEditorG; CurveEditorGroup* const rgbCurveEditorG;
CurveEditorGroup* const maskCurveEditorG; CurveEditorGroup* const maskCurveEditorG;
CurveEditorGroup* const maskHCurveEditorG;
CurveEditorGroup* const mask2CurveEditorG; CurveEditorGroup* const mask2CurveEditorG;
CurveEditorGroup* const mask2CurveEditorGwav; CurveEditorGroup* const mask2CurveEditorGwav;
DiagonalCurveEditor* const Lmaskshape; DiagonalCurveEditor* const Lmaskshape;
@ -91,6 +92,7 @@ private:
FlatCurveEditor* const LLmaskshape; FlatCurveEditor* const LLmaskshape;
FlatCurveEditor* const HHmaskshape; FlatCurveEditor* const HHmaskshape;
FlatCurveEditor* const LLmaskcolshapewav; FlatCurveEditor* const LLmaskcolshapewav;
FlatCurveEditor* const HHhmaskshape;
// Exposure // Exposure
CurveEditorGroup* const curveEditorG; CurveEditorGroup* const curveEditorG;
CurveEditorGroup* const maskexpCurveEditorG; CurveEditorGroup* const maskexpCurveEditorG;

View File

@ -1020,6 +1020,7 @@ void ParamsEdited::initFrom(const std::vector<rtengine::procparams::ProcParams>&
locallab.spots.at(j).CCmaskcurve = locallab.spots.at(j).CCmaskcurve && pSpot.CCmaskcurve == otherSpot.CCmaskcurve; 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).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).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).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).opacol = locallab.spots.at(j).opacol && pSpot.opacol == otherSpot.opacol;
locallab.spots.at(j).conthrcol = locallab.spots.at(j).conthrcol && pSpot.conthrcol == otherSpot.conthrcol; 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; 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) { if (locallab.spots.at(i).softradiuscol) {
toEdit.locallab.spots.at(i).softradiuscol = mods.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), CCmaskcurve(v),
LLmaskcurve(v), LLmaskcurve(v),
HHmaskcurve(v), HHmaskcurve(v),
HHhmaskcurve(v),
softradiuscol(v), softradiuscol(v),
opacol(v), opacol(v),
conthrcol(v), conthrcol(v),
@ -5305,6 +5311,7 @@ void LocallabParamsEdited::LocallabSpotEdited::set(bool v)
CCmaskcurve = v; CCmaskcurve = v;
LLmaskcurve = v; LLmaskcurve = v;
HHmaskcurve = v; HHmaskcurve = v;
HHhmaskcurve = v;
softradiuscol = v; softradiuscol = v;
opacol = v; opacol = v;
conthrcol = v; conthrcol = v;

View File

@ -450,6 +450,7 @@ public:
bool CCmaskcurve; bool CCmaskcurve;
bool LLmaskcurve; bool LLmaskcurve;
bool HHmaskcurve; bool HHmaskcurve;
bool HHhmaskcurve;
bool softradiuscol; bool softradiuscol;
bool opacol; bool opacol;
bool conthrcol; bool conthrcol;