Added Graduated Filter luminance common mask

This commit is contained in:
Desmis 2020-06-24 07:31:48 +02:00
parent ebb8b16583
commit 344864a8ec
11 changed files with 107 additions and 18 deletions

View File

@ -1187,6 +1187,8 @@ HISTORY_MSG_946;Local - Mask Common shadows
HISTORY_MSG_947;Local - Mask Common Contrast curve
HISTORY_MSG_948;Local - Mask Common Wavelet curve
HISTORY_MSG_949;Local - Mask Common Threshold levels
HISTORY_MSG_950;Local - Mask Common GF strength
HISTORY_MSG_951;Local - Mask Common GF angle
HISTORY_MSG_CAT02PRESET;Cat02 automatic preset
HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors
HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction

View File

@ -243,7 +243,7 @@ public:
const LUTf& lmasklocalcurve, bool localmaskutili,
const LocwavCurve & loclmasCurvecolwav, bool lmasutilicolwav, int level_bl, int level_hl, int level_br, int level_hr,
int shortcu, bool delt, const float hueref, const float chromaref, const float lumaref,
float maxdE, float mindE, float maxdElim, float mindElim, float iterat, float limscope, int scope, bool fftt, float blu_ma, float cont_ma);
float maxdE, float mindE, float maxdElim, float mindElim, float iterat, float limscope, int scope, bool fftt, float blu_ma, float cont_ma, int indic);
void deltaEforMask(float **rdE, int bfw, int bfh, LabImage* bufcolorig, const float hueref, const float chromaref, const float lumaref,
float maxdE, float mindE, float maxdElim, float mindElim, float iterat, float limscope, int scope, float balance, float balanceh);

View File

@ -406,6 +406,8 @@ struct local_params {
float slomaexp;
float strmaexp;
float angmaexp;
float str_mas;
float ang_mas;
float strexp;
float angexp;
float strSH;
@ -1009,6 +1011,8 @@ static void calcLocalParams(int sp, int oW, int oH, const LocallabParams& locall
float slomaskexpo = ((float) locallab.spots.at(sp).slomaskexp);
float strmaskexpo = ((float) locallab.spots.at(sp).strmaskexp);
float angmaskexpo = ((float) locallab.spots.at(sp).angmaskexp);
float strmask = ((float) locallab.spots.at(sp).str_mask);
float angmask = ((float) locallab.spots.at(sp).ang_mask);
float strexpo = ((float) locallab.spots.at(sp).strexp);
float angexpo = ((float) locallab.spots.at(sp).angexp);
float strSH = ((float) locallab.spots.at(sp).strSH);
@ -1147,6 +1151,9 @@ static void calcLocalParams(int sp, int oW, int oH, const LocallabParams& locall
lp.slomaexp = slomaskexpo;
lp.strmaexp = strmaskexpo;
lp.angmaexp = angmaskexpo;
lp.str_mas = strmask;
lp.ang_mas = angmask;
lp.strexp = strexpo;
lp.angexp = angexpo;
lp.strSH = strSH;
@ -3068,6 +3075,9 @@ void calclocalGradientParams(const struct local_params& lp, struct grad_params&
} else if (indic == 11) {
stops = lp.strlog;
angs = lp.anglog;
} else if (indic == 12) {
stops = -lp.str_mas;
angs = lp.ang_mas;
}
@ -3726,7 +3736,7 @@ void ImProcFunctions::maskcalccol(bool invmask, bool pde, int bfw, int bfh, int
const LocwavCurve & loclmasCurvecolwav, bool lmasutilicolwav, int level_bl, int level_hl, int level_br, int level_hr,
int shortcu, bool delt, const float hueref, const float chromaref, const float lumaref,
float maxdE, float mindE, float maxdElim, float mindElim, float iterat, float limscope, int scope,
bool fftt, float blu_ma, float cont_ma
bool fftt, float blu_ma, float cont_ma, int indic
)
@ -4244,8 +4254,8 @@ void ImProcFunctions::maskcalccol(bool invmask, bool pde, int bfw, int bfh, int
struct grad_params gp;
if (lp.strmaexp != 0.f) {
calclocalGradientParams(lp, gp, ystart, xstart, bfw, bfh, 0);
if ((indic == 0 && lp.strmaexp != 0.f) || (indic ==12 && lp.str_mas != 0.f)) {
calclocalGradientParams(lp, gp, ystart, xstart, bfw, bfh, indic);
#ifdef _OPENMP
#pragma omp parallel for schedule(dynamic,16) if (multiThread)
#endif
@ -10799,7 +10809,7 @@ void ImProcFunctions::Lab_Local(
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, false, 0.0f, 0.f
maxdE, mindE, maxdElim, mindElim, lp.iterat, limscope, sco, false, 0.0f, 0.f, -1
);
if (lp.showmaskcbmet == 3) {
@ -11015,7 +11025,7 @@ void ImProcFunctions::Lab_Local(
locccmasvibCurve, lcmasvibutili, locllmasvibCurve, llmasvibutili, lochhmasvibCurve, lhmasvibutili, lochhhmasCurve, lhhmasutili, multiThread,
enaMask, showmaske, deltaE, modmask, zero, modif, chrom, rad, lap, gamma, slope, blendm, shado, amountcd, anchorcd, lmaskviblocalcurve, localmaskvibutili, dummy, lmasutilicolwav, 1, 1, 5, 5,
shortcu, delt, hueref, chromaref, lumaref,
maxdE, mindE, maxdElim, mindElim, lp.iterat, limscope, sco, false, 0.f, 0.f
maxdE, mindE, maxdElim, mindElim, lp.iterat, limscope, sco, false, 0.f, 0.f, -1
);
if (lp.showmaskvibmet == 3) {
@ -11246,7 +11256,7 @@ void ImProcFunctions::Lab_Local(
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, false, 0.f, 0.f
maxdE, mindE, maxdElim, mindElim, lp.iterat, limscope, sco, false, 0.f, 0.f, -1
);
if (lp.showmasktmmet == 3) {
@ -11287,7 +11297,7 @@ void ImProcFunctions::Lab_Local(
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, false, 0.f, 0.f
maxdE, mindE, maxdElim, mindElim, lp.iterat, limscope, sco, false, 0.f, 0.f, -1
);
if (lp.showmasktmmet == 3) {//display mask
@ -11470,7 +11480,7 @@ void ImProcFunctions::Lab_Local(
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, false, 0.f, 0.f
maxdE, mindE, maxdElim, mindElim, lp.iterat, limscope, sco, false, 0.f, 0.f, -1
);
if (lp.showmaskSHmet == 3) {
@ -11621,7 +11631,7 @@ void ImProcFunctions::Lab_Local(
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, false, 0.f, 0.f
maxdE, mindE, maxdElim, mindElim, lp.iterat, limscope, sco, false, 0.f, 0.f, -1
);
@ -11892,7 +11902,7 @@ void ImProcFunctions::Lab_Local(
locccmaslcCurve, lcmaslcutili, locllmaslcCurve, llmaslcutili, lochhmaslcCurve, lhmaslcutili, lochhhmasCurve, lhhmasutili, multiThread,
enaMask, showmaske, deltaE, modmask, zero, modif, chrom, rad, lap, gamma, slope, blendm, shado, amountcd, anchorcd, lmasklclocalcurve, localmasklcutili, dummy, lmasutilicolwav, 1, 1, 5, 5,
shortcu, delt, hueref, chromaref, lumaref,
maxdE, mindE, maxdElim, mindElim, lp.iterat, limscope, sco, false, 0.f, 0.f
maxdE, mindE, maxdElim, mindElim, lp.iterat, limscope, sco, false, 0.f, 0.f, -1
);
if (lp.showmasklcmet == 3) {
@ -13056,7 +13066,7 @@ void ImProcFunctions::Lab_Local(
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, false, 0.f, 0.f
maxdE, mindE, maxdElim, mindElim, lp.iterat, limscope, sco, false, 0.f, 0.f, 0
);
if (lp.showmaskexpmet == 3) {
@ -13320,7 +13330,7 @@ void ImProcFunctions::Lab_Local(
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, false, 0.f, 0.f
maxdE, mindE, maxdElim, mindElim, lp.iterat, limscope, sco, false, 0.f, 0.f, 0
);
if (lp.showmaskexpmetinv == 1) {
@ -13508,7 +13518,7 @@ void ImProcFunctions::Lab_Local(
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,
maxdE, mindE, maxdElim, mindElim, lp.iterat, limscope, sco, lp.fftColorMask, lp.blurcolmask, lp.contcolmask
maxdE, mindE, maxdElim, mindElim, lp.iterat, limscope, sco, lp.fftColorMask, lp.blurcolmask, lp.contcolmask, -1
);
if (lp.showmaskcolmet == 3) {
@ -14462,7 +14472,7 @@ void ImProcFunctions::Lab_Local(
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, false, hueref, chromaref, lumaref,
maxdE, mindE, maxdElim, mindElim, lp.iterat, limscope, sco, lp.fftColorMask, lp.blurcolmask, lp.contcolmask
maxdE, mindE, maxdElim, mindElim, lp.iterat, limscope, sco, lp.fftColorMask, lp.blurcolmask, lp.contcolmask, -1
);
if (lp.showmaskcolmetinv == 1) {
@ -14577,7 +14587,7 @@ void ImProcFunctions::Lab_Local(
enaMask, showmaske, deltaE, modmask, zero, modif, chrom, rad, lap, gamma, slope, blendm, shado, amountcd, anchorcd, lmasklocal_curve, localmask_utili, loclmasCurve_wav, lmasutili_wav,
level_bl, level_hl, level_br, level_hr,
shortcu, delt, hueref, chromaref, lumaref,
maxdE, mindE, maxdElim, mindElim, lp.iterat, limscope, sco, lp.fftma, lp.blurma, lp.contma
maxdE, mindE, maxdElim, mindElim, lp.iterat, limscope, sco, lp.fftma, lp.blurma, lp.contma, 12
);

View File

@ -972,6 +972,8 @@ enum ProcEventCode {
EvlocallabLmask_shape = 946,
EvlocallabLLmask_shapewav = 947,
EvlocallabcsThresholdmask = 948,
Evlocallabstr_mask = 949,
Evlocallabang_mask = 950,
NUMOFEVENTS
};

View File

@ -3796,6 +3796,8 @@ LocallabParams::LocallabSpot::LocallabSpot() :
gammask(1.0),
slopmask(0.0),
shadmask(0.0),
str_mask(0),
ang_mask(0),
HHhmask_curve{
static_cast<double>(FCT_MinMaxCPoints),
0.0,
@ -4322,6 +4324,8 @@ bool LocallabParams::LocallabSpot::operator ==(const LocallabSpot& other) const
&& gammask == other.gammask
&& slopmask == other.slopmask
&& shadmask == other.shadmask
&& str_mask == other.str_mask
&& ang_mask == other.ang_mask
&& HHhmask_curve == other.HHhmask_curve
&& Lmask_curve == other.Lmask_curve
&& LLmask_curvewav == other.LLmask_curvewav
@ -5841,6 +5845,8 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo
saveToKeyfile(!pedited || spot_edited->gammask, "Locallab", "Gammask_" + index_str, spot.gammask, keyFile);
saveToKeyfile(!pedited || spot_edited->slopmask, "Locallab", "Slopmask_" + index_str, spot.slopmask, keyFile);
saveToKeyfile(!pedited || spot_edited->shadmask, "Locallab", "Shadmask_" + index_str, spot.shadmask, keyFile);
saveToKeyfile(!pedited || spot_edited->str_mask, "Locallab", "Str_mask_" + index_str, spot.str_mask, keyFile);
saveToKeyfile(!pedited || spot_edited->ang_mask, "Locallab", "Ang_mask_" + index_str, spot.ang_mask, keyFile);
saveToKeyfile(!pedited || spot_edited->HHhmask_curve, "Locallab", "HHhmask_Curve_" + index_str, spot.HHhmask_curve, keyFile);
saveToKeyfile(!pedited || spot_edited->Lmask_curve, "Locallab", "Lmask_Curve_" + index_str, spot.Lmask_curve, keyFile);
saveToKeyfile(!pedited || spot_edited->LLmask_curvewav, "Locallab", "LLmask_Curvewav_" + index_str, spot.LLmask_curvewav, keyFile);
@ -7579,6 +7585,8 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited)
assignFromKeyfile(keyFile, "Locallab", "Gammask_" + index_str, pedited, spot.gammask, spotEdited.gammask);
assignFromKeyfile(keyFile, "Locallab", "Slopmask_" + index_str, pedited, spot.slopmask, spotEdited.slopmask);
assignFromKeyfile(keyFile, "Locallab", "Shadmask_" + index_str, pedited, spot.shadmask, spotEdited.shadmask);
assignFromKeyfile(keyFile, "Locallab", "Str_mask_" + index_str, pedited, spot.str_mask, spotEdited.str_mask);
assignFromKeyfile(keyFile, "Locallab", "Ang_mask_" + index_str, pedited, spot.ang_mask, spotEdited.ang_mask);
assignFromKeyfile(keyFile, "Locallab", "HHhmask_Curve_" + index_str, pedited, spot.HHhmask_curve, spotEdited.HHhmask_curve);
assignFromKeyfile(keyFile, "Locallab", "Lmask_Curve_" + index_str, pedited, spot.Lmask_curve, spotEdited.Lmask_curve);
assignFromKeyfile(keyFile, "Locallab", "LLmask_Curvewav_" + index_str, pedited, spot.LLmask_curvewav, spotEdited.LLmask_curvewav);

View File

@ -1442,6 +1442,8 @@ struct LocallabParams {
double gammask;
double slopmask;
double shadmask;
int str_mask;
int ang_mask;
std::vector<double> HHhmask_curve;
std::vector<double> Lmask_curve;
std::vector<double> LLmask_curvewav;

View File

@ -975,7 +975,9 @@ int refreshmap[rtengine::NUMOFEVENTS] = {
LUMINANCECURVE, // Evlocallabshadmask
LUMINANCECURVE, // EvlocallabLmask_shape
LUMINANCECURVE, // EvlocallabLLmask_shapewav
LUMINANCECURVE // EvlocallabcsThresholdmask
LUMINANCECURVE, // EvlocallabcsThresholdmask
LUMINANCECURVE, // Evlocallabstr_mask
LUMINANCECURVE // Evlocallabang_mask
};

View File

@ -1233,6 +1233,9 @@ private:
CurveEditorGroup* const mask2CurveEditorGwav;
FlatCurveEditor* const LLmask_shapewav;
ThresholdAdjuster* const csThresholdmask;
Gtk::Frame* const gradFramemask;
Adjuster* const str_mask;
Adjuster* const ang_mask;
sigc::connection showmask_MethodConn, enamaskConn, toolmaskConn, fftmaskConn;

View File

@ -4760,7 +4760,10 @@ LocallabMask::LocallabMask():
Lmask_shape(static_cast<DiagonalCurveEditor*>(mask2CurveEditorG->addCurve(CT_Diagonal, "L(L)"))),
mask2CurveEditorGwav(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_WAVMASK"))),
LLmask_shapewav(static_cast<FlatCurveEditor*>(mask2CurveEditorGwav->addCurve(CT_Flat, "L(L)", nullptr, false, false))),
csThresholdmask(Gtk::manage(new ThresholdAdjuster(M("TP_LOCALLAB_CSTHRESHOLDBLUR"), 0, 9, 0, 0, 6, 5, 0, false)))
csThresholdmask(Gtk::manage(new ThresholdAdjuster(M("TP_LOCALLAB_CSTHRESHOLDBLUR"), 0, 9, 0, 0, 6, 5, 0, false))),
gradFramemask(Gtk::manage(new Gtk::Frame(M("TP_LOCALLAB_GRADFRA")))),
str_mask(Gtk::manage(new Adjuster(M("TP_LOCALLAB_GRADSTR"), -2., 2., 0.05, 0.))),
ang_mask(Gtk::manage(new Adjuster(M("TP_LOCALLAB_GRADANG"), -180., 180., 0.1, 0.)))
{
// Parameter Mask common specific widgets
@ -4861,6 +4864,18 @@ LocallabMask::LocallabMask():
blurFrame->add(*blurmBox);
maskmaskBox->pack_start(*blurFrame, Gtk::PACK_SHRINK, 0);
gradFramemask->set_label_align(0.025, 0.5);
str_mask->setAdjusterListener(this);
ang_mask->setAdjusterListener(this);
ang_mask->set_tooltip_text(M("TP_LOCALLAB_GRADANG_TOOLTIP"));
ToolParamBlock* const gradmaskBox = Gtk::manage(new ToolParamBlock());
gradmaskBox->pack_start(*str_mask);
gradmaskBox->pack_start(*ang_mask);
gradFramemask->add(*gradmaskBox);
Gtk::Frame* const toolmaskFrame = Gtk::manage(new Gtk::Frame(M("TP_LOCALLAB_TOOLMASK")));
toolmaskFrame->set_label_align(0.025, 0.5);
ToolParamBlock* const toolmaskBox = Gtk::manage(new ToolParamBlock());
@ -4875,6 +4890,7 @@ LocallabMask::LocallabMask():
toolmaskBox->pack_start(*mask2CurveEditorG, Gtk::PACK_SHRINK, 4); // Padding is mandatory to correct behavior of curve editor
toolmaskBox->pack_start(*mask2CurveEditorGwav, Gtk::PACK_SHRINK, 4); // Padding is mandatory to correct behavior of curve editor
toolmaskBox->pack_start(*csThresholdmask, Gtk::PACK_SHRINK, 0);
toolmaskBox->pack_start(*gradFramemask, Gtk::PACK_SHRINK, 0);
toolmaskFrame->add(*toolmaskBox);
maskmaskBox->pack_start(*toolmaskFrame);
pack_start(*maskmaskBox);
@ -5014,6 +5030,8 @@ void LocallabMask::read(const rtengine::procparams::ProcParams* pp, const Params
gammask->setValue(spot.gammask);
slopmask->setValue(spot.slopmask);
shadmask->setValue(spot.shadmask);
str_mask->setValue(spot.str_mask);
ang_mask->setValue(spot.ang_mask);
HHhmask_shape->setCurve(spot.HHhmask_curve);
fftmask->set_active(spot.fftmask);
Lmask_shape->setCurve(spot.Lmask_curve);
@ -5057,6 +5075,8 @@ void LocallabMask::write(rtengine::procparams::ProcParams* pp, ParamsEdited* ped
spot.gammask = gammask->getValue();
spot.slopmask = slopmask->getValue();
spot.shadmask = shadmask->getValue();
spot.str_mask = str_mask->getIntValue();
spot.ang_mask = ang_mask->getIntValue();
spot.HHhmask_curve = HHhmask_shape->getCurve();
spot.fftmask = fftmask->get_active();
spot.contmask = contmask->getValue();
@ -5105,6 +5125,8 @@ void LocallabMask::setDefaults(const rtengine::procparams::ProcParams* defParams
lapmask->setDefault(defSpot.lapmask);
slopmask->setDefault(defSpot.slopmask);
shadmask->setDefault(defSpot.shadmask);
str_mask->setDefault(defSpot.str_mask);
ang_mask->setDefault(defSpot.ang_mask);
HHhmask_shape->setCurve(defSpot.HHhmask_curve);
contmask->setDefault(defSpot.contmask);
blurmask->setDefault(defSpot.blurmask);
@ -5123,8 +5145,11 @@ void LocallabMask::updateGUIToMode(const modeType new_type)
gammask->hide();
slopmask->hide();
shadmask->hide();
str_mask->hide();
ang_mask->hide();
struFrame->hide();
blurFrame->hide();
gradFramemask->hide();
mask_HCurveEditorG->hide();
// mask2CurveEditorG->hide();
mask2CurveEditorGwav->hide();
@ -5136,8 +5161,11 @@ void LocallabMask::updateGUIToMode(const modeType new_type)
gammask->show();
slopmask->show();
shadmask->show();
str_mask->show();
ang_mask->show();
struFrame->show();
blurFrame->show();
gradFramemask->show();
mask_HCurveEditorG->show();
// mask2CurveEditorG->show();
mask2CurveEditorGwav->show();
@ -5158,6 +5186,8 @@ void LocallabMask::convertParamToNormal()
gammask->setValue(defSpot.gammask);
slopmask->setValue(defSpot.slopmask);
shadmask->setValue(defSpot.shadmask);
str_mask->setValue(defSpot.str_mask);
ang_mask->setValue(defSpot.ang_mask);
strumaskmask->setValue(defSpot.strumaskmask);
toolmask->set_active(defSpot.toolmask);
fftmask->set_active(defSpot.fftmask);
@ -5358,6 +5388,20 @@ void LocallabMask::adjusterChanged(Adjuster* a, double newval)
}
}
if (a == str_mask) {
if (listener) {
listener->panelChanged(Evlocallabstr_mask,
str_mask->getTextValue() + " (" + escapeHtmlChars(spotName) + ")");
}
}
if (a == ang_mask) {
if (listener) {
listener->panelChanged(Evlocallabang_mask,
ang_mask->getTextValue() + " (" + escapeHtmlChars(spotName) + ")");
}
}
}
}

View File

@ -1498,6 +1498,8 @@ void ParamsEdited::initFrom(const std::vector<rtengine::procparams::ProcParams>&
locallab.spots.at(j).gammask = locallab.spots.at(j).gammask && pSpot.gammask == otherSpot.gammask;
locallab.spots.at(j).slopmask = locallab.spots.at(j).slopmask && pSpot.slopmask == otherSpot.slopmask;
locallab.spots.at(j).shadmask = locallab.spots.at(j).shadmask && pSpot.shadmask == otherSpot.shadmask;
locallab.spots.at(j).str_mask = locallab.spots.at(j).str_mask && pSpot.str_mask == otherSpot.str_mask;
locallab.spots.at(j).ang_mask = locallab.spots.at(j).ang_mask && pSpot.ang_mask == otherSpot.ang_mask;
locallab.spots.at(j).HHhmask_curve = locallab.spots.at(j).HHhmask_curve && pSpot.HHhmask_curve == otherSpot.HHhmask_curve;
locallab.spots.at(j).Lmask_curve = locallab.spots.at(j).Lmask_curve && pSpot.Lmask_curve == otherSpot.Lmask_curve;
locallab.spots.at(j).LLmask_curvewav = locallab.spots.at(j).LLmask_curvewav && pSpot.LLmask_curvewav == otherSpot.LLmask_curvewav;
@ -4888,6 +4890,14 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng
toEdit.locallab.spots.at(i).shadmask = mods.locallab.spots.at(i).shadmask;
}
if (locallab.spots.at(i).str_mask) {
toEdit.locallab.spots.at(i).str_mask = mods.locallab.spots.at(i).str_mask;
}
if (locallab.spots.at(i).ang_mask) {
toEdit.locallab.spots.at(i).ang_mask = mods.locallab.spots.at(i).ang_mask;
}
if (locallab.spots.at(i).HHhmask_curve) {
toEdit.locallab.spots.at(i).HHhmask_curve = mods.locallab.spots.at(i).HHhmask_curve;
}
@ -6494,6 +6504,8 @@ LocallabParamsEdited::LocallabSpotEdited::LocallabSpotEdited(bool v) :
gammask(v),
slopmask(v),
shadmask(v),
str_mask(v),
ang_mask(v),
HHhmask_curve(v),
Lmask_curve(v),
LLmask_curvewav(v),
@ -6980,6 +6992,8 @@ void LocallabParamsEdited::LocallabSpotEdited::set(bool v)
gammask = v;
slopmask = v;
shadmask = v;
str_mask = v;
ang_mask = v;
HHhmask_curve =(v);
Lmask_curve =(v);
LLmask_curvewav =(v);

View File

@ -856,6 +856,8 @@ public:
bool gammask;
bool slopmask;
bool shadmask;
bool str_mask;
bool ang_mask;
bool HHhmask_curve;
bool Lmask_curve;
bool LLmask_curvewav;