Local adjustments - Color and light - Recovery based on luminance mask (#6035)
* Init GUI color mask recovery * Enable recovery Color and Light with mask * Disabled invmaskd in color and light * Hide decay in standard - added tooltips * Change tooltips * Change normal to simple for all defaults mask
This commit is contained in:
parent
d2cd5f21c9
commit
bad08bfe1d
@ -1239,6 +1239,11 @@ HISTORY_MSG_991;Local - Denoise threshold mask low
|
||||
HISTORY_MSG_992;Local - Denoise threshold mask high
|
||||
HISTORY_MSG_993;Local - Denoise Inverse algo
|
||||
HISTORY_MSG_994;Local - GF Inverse algo
|
||||
HISTORY_MSG_995;Local - Denoise decay
|
||||
HISTORY_MSG_996;Local - Color recovery threshold
|
||||
HISTORY_MSG_997;Local - Color threshold mask low
|
||||
HISTORY_MSG_998;Local - Color threshold mask high
|
||||
HISTORY_MSG_999;Local - Color decay
|
||||
HISTORY_MSG_BLSHAPE;Blur by level
|
||||
HISTORY_MSG_BLURCWAV;Blur chroma
|
||||
HISTORY_MSG_BLURWAV;Blur luminance
|
||||
@ -2776,16 +2781,17 @@ TP_LOCALLAB_MASKH;Hue curve
|
||||
TP_LOCALLAB_MASKLC_TOOLTIP;This allows you to target the denoise based on the image luminance information contained in the L(L) or LC(H) mask (Mask and Modifications).\n The L(L) mask or the LC(H) mask must be enabled to use this function.\n if the mask is very dark - below the threshold 'dark' - denoise will be increased if reinforce > 1.\n if the mask is clear - above the threshold 'light' - denoise will be progressively cancelled.\n between the two, denoise will be maintained at the settings without mask.
|
||||
TP_LOCALLAB_MASKDE_TOOLTIP;Used to direct the Denoise based on the image luminance information contained in the L(L) or LC(H) masks (Mask and modifications).\n The L(L) mask or the LC(H) mask must be enabled to use this function.\n If the mask is below the ‘dark’ threshold, then the Denoise will be applied progressively.\n if the mask is above the ‘light’ threshold, then the Denoise will be applied progressively.\n Between the two, the image settings without the Denoise will be maintained.
|
||||
TP_LOCALLAB_MASKGF_TOOLTIP;Used to direct the Guided Filter based on the image luminance information contained in the L(L) or LC(H) masks (Mask and modifications).\n The L(L) mask or the LC(H) mask must be enabled to use this function.\n If the mask is below the ‘dark’ threshold, then the GF will be applied progressively.\n if the mask is above the ‘light’ threshold, then the GF will be applied progressively.\n Between the two, the image settings without the GF will be maintained.
|
||||
TP_LOCALLAB_MASKRECOL_TOOLTIP;Used to modulate the effect of the Color and Light settings based on the image luminance information contained in the L(L) or LC(H) masks (Mask and modifications).\n The L(L) mask or the LC(H) mask must be enabled to use this function.\n The ‘dark’ and ‘light’ areas below the dark threshold and above the light threshold will be restored progressively to their original values prior to being modified by the Color and Light settings \n In between these two areas, the full value of the Color and Light settings will be applied
|
||||
TP_LOCALLAB_MASKDEINV_TOOLTIP;Reverses the way the algorithm interprets the mask.\nIf checked black and very light areas will be decreased.
|
||||
TP_LOCALLAB_MASKHIGTHRESC_TOOLTIP;Light-tone limit above which Color and Light will be restored progressively to their original values prior to being modified by the Color and Light settings .\n You can use certain tools in ‘Mask and modifications’ to change the gray levels: ‘structure mask’, ‘Smooth radius’, ‘Gamma and slope’, ‘Contrast curve’, ‘Local contrast wavelet’.\n Use a ‘lockable color picker’ on the mask to see which areas will be affected. Be carefull in 'settings' to Background color mask = 0
|
||||
TP_LOCALLAB_MASKHIGTHRESD_TOOLTIP;Light-tone limit above which denoise will be progressively applied.\n You can use certain tools in ‘Mask and modifications’ to change the gray levels: ‘structure mask’, ‘Smooth radius’, ‘Gamma and slope’, ‘Contrast curve’, ‘Local contrast wavelet’.\n Use a ‘lockable color picker’ on the mask to see which areas will be affected. Be carefull in 'settings' to Background color mask = 0
|
||||
TP_LOCALLAB_MASKHIGTHRES_TOOLTIP;Light-tone limit above which 'Guided Filter' will be progressively applied.\n You can use certain tools in ‘Mask and modifications’ to change the gray levels: ‘structure mask’, ‘Smooth radius’, ‘Gamma and slope’, ‘Contrast curve’, ‘Local contrast wavelet’.\n Use a ‘lockable color picker’ on the mask to see which areas will be affected. Be carefull in 'settings' to Background color mask = 0
|
||||
TP_LOCALLAB_MASKHIGTHRES_TOOLTIP;Light limit above which the GuidedFilter will be applied progressively.\n You can used some tools in 'mask and modifications' to change the gray levels: 'structure mask', 'Smooth radius', 'Gamma and slope', 'Contrast curve', 'Local contrast wavelet'.\n You can use 'lockable color picker' on mask to see what areas will be take into account. Be carefull in 'settings' to Background color mask = 0
|
||||
TP_LOCALLAB_MASKHIGTHRESD_TOOLTIP;Light limit above which the denoise will be applied progressively.\n You can used some tools in 'mask and modifications' to change the gray levels: 'structure mask', 'Smooth radius', 'Gamma and slope', 'Contrast curve', 'Local contrast wavelet'.\n You can use 'lockable color picker' on mask to see what areas will be take into account. Be carefull in 'settings' to Background color mask = 0
|
||||
TP_LOCALLAB_MASKLCTHR;Light area luminance threshold
|
||||
TP_LOCALLAB_MASKLCTHRLOW;Dark area luminance threshold
|
||||
TP_LOCALLAB_MASKLNOISELOW;Reinforce denoise in dark and light areas
|
||||
TP_LOCALLAB_MASKLOWTHRES_TOOLTIP;Dark-tone limit below which 'Guided Filter' will be progressively applied.\n You can use certain tools in ‘Mask and modifications’ to change the gray levels: ‘structure mask’, ‘Smooth radius’, ‘Gamma and slope’, ‘Contrast curve’, ‘Local contrast wavelet’.\n Use a ‘lockable color picker’ on the mask to see which areas will be affected. Be carefull in 'settings' to Background color mask = 0
|
||||
TP_LOCALLAB_MASKLOWTHRESD_TOOLTIP;Dark-tone limit below which denoise will be progressively applied.\n You can use certain tools in ‘Mask and modifications’ to change the gray levels: ‘structure mask’, ‘Smooth radius’, ‘Gamma and slope’, ‘Contrast curve’, ‘Local contrast wavelet’.\n Use a ‘lockable color picker’ on the mask to see which areas will be affected. Be carefull in 'settings' to Background color mask = 0
|
||||
TP_LOCALLAB_MASKLOWTHRESC_TOOLTIP;Dark-tone limit below which Color and Light will be restored progressively to their original values prior to being modified by the Color and Light settings.\n You can use certain tools in ‘Mask and modifications’ to change the gray levels: ‘structure mask’, ‘Smooth radius’, ‘Gamma and slope’, ‘Contrast curve’, ‘Local contrast wavelet’.\n Use a ‘lockable color picker’ on the mask to see which areas will be affected. Be carefull in 'settings' to Background color mask = 0
|
||||
TP_LOCALLAB_MASKUSABLE;Mask enabled (Mask & modifications)
|
||||
TP_LOCALLAB_MASKUNUSABLE;Mask disabled (Mask & modifications)
|
||||
TP_LOCALLAB_MASKRECOTHRES;Recovery threshold
|
||||
|
@ -586,6 +586,10 @@ struct local_params {
|
||||
float lowthrd;
|
||||
float higthrd;
|
||||
float decayd;
|
||||
float recothrc;
|
||||
float lowthrc;
|
||||
float higthrc;
|
||||
float decayc;
|
||||
int noiselequal;
|
||||
float noisechrodetail;
|
||||
float bilat;
|
||||
@ -1041,6 +1045,10 @@ static void calcLocalParams(int sp, int oW, int oH, const LocallabParams& locall
|
||||
float local_lowthrd = (float)locallab.spots.at(sp).lowthresd;
|
||||
float local_higthrd = (float)locallab.spots.at(sp).higthresd;
|
||||
float local_decayd = (float)locallab.spots.at(sp).decayd;
|
||||
float local_recothrc = (float)locallab.spots.at(sp).recothresc;
|
||||
float local_lowthrc = (float)locallab.spots.at(sp).lowthresc;
|
||||
float local_higthrc = (float)locallab.spots.at(sp).higthresc;
|
||||
float local_decayc = (float)locallab.spots.at(sp).decayc;
|
||||
|
||||
float local_noisecf = ((float)locallab.spots.at(sp).noisechrof) / 10.f;
|
||||
float local_noisecc = ((float)locallab.spots.at(sp).noisechroc) / 10.f;
|
||||
@ -1395,6 +1403,10 @@ static void calcLocalParams(int sp, int oW, int oH, const LocallabParams& locall
|
||||
lp.lowthrd = local_lowthrd;
|
||||
lp.higthrd = local_higthrd;
|
||||
lp.decayd = local_decayd;
|
||||
lp.recothrc = local_recothrc;
|
||||
lp.lowthrc = local_lowthrc;
|
||||
lp.higthrc = local_higthrc;
|
||||
lp.decayc = local_decayc;
|
||||
lp.noiselequal = local_noiselequal;
|
||||
lp.noisechrodetail = local_noisechrodetail;
|
||||
lp.noiselc = local_noiselc;
|
||||
@ -15345,6 +15357,82 @@ void ImProcFunctions::Lab_Local(
|
||||
if (lp.softradiuscol > 0.f) {
|
||||
softproc(bufcolorig.get(), bufcolfin.get(), lp.softradiuscol, bfh, bfw, 0.001, 0.00001, 0.5f, sk, multiThread, 1);
|
||||
}
|
||||
//mask recovery
|
||||
|
||||
if(lp.enaColorMask && lp.recothrc != 1.f) {
|
||||
LabImage tmp3(bfw, bfh);
|
||||
|
||||
for (int y = 0; y < bfh; y++){
|
||||
for (int x = 0; x < bfw; x++) {
|
||||
tmp3.L[y][x] = original->L[y + ystart][x + xstart];
|
||||
tmp3.a[y][x] = original->a[y + ystart][x + xstart];
|
||||
tmp3.b[y][x] = original->b[y + ystart][x + xstart];
|
||||
}
|
||||
}
|
||||
array2D<float> masklum;
|
||||
masklum(bfw, bfh);
|
||||
for (int ir = 0; ir < bfh; ir++)
|
||||
for (int jr = 0; jr < bfw; jr++) {
|
||||
masklum[ir][jr] = 1.f;
|
||||
}
|
||||
|
||||
float hig = lp.higthrc;
|
||||
float higc;
|
||||
calcdif(hig, higc);
|
||||
float low = lp.lowthrc;
|
||||
float lowc;
|
||||
calcdif(low, lowc);
|
||||
|
||||
if(higc < lowc) {
|
||||
higc = lowc + 0.01f;
|
||||
}
|
||||
float th = (lp.recothrc - 1.f);
|
||||
float ahigh = th / (higc - 100.f);
|
||||
float bhigh = 1.f - higc * ahigh;
|
||||
|
||||
float alow = th / lowc;
|
||||
float blow = 1.f - th;
|
||||
bool invmaskc = false;
|
||||
#ifdef _OPENMP
|
||||
#pragma omp parallel for if (multiThread)
|
||||
#endif
|
||||
for (int ir = 0; ir < bfh; ir++)
|
||||
for (int jr = 0; jr < bfw; jr++) {
|
||||
const float lM = bufmaskblurcol->L[ir][jr];
|
||||
const float lmr = lM / 327.68f;
|
||||
if (lM < 327.68f * lowc) {
|
||||
masklum[ir][jr] = alow * lmr + blow;
|
||||
} else if (lM < 327.68f * higc) {
|
||||
|
||||
} else {
|
||||
masklum[ir][jr] = ahigh * lmr + bhigh;
|
||||
}
|
||||
float k = masklum[ir][jr];
|
||||
if(invmaskc == false) {
|
||||
masklum[ir][jr] = 1 - pow(k, lp.decayc);
|
||||
} else {
|
||||
masklum[ir][jr] = pow(k, lp.decayc);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
for (int i = 0; i < 3; ++i) {
|
||||
boxblur(masklum, masklum, 10 / sk, bfw, bfh, false);
|
||||
}
|
||||
|
||||
#ifdef _OPENMP
|
||||
#pragma omp parallel for if (multiThread)
|
||||
#endif
|
||||
for (int i = 0; i < bfh; ++i) {
|
||||
for (int j = 0; j < bfw; ++j) {
|
||||
bufcolfin->L[i][j] = (tmp3.L[i][j] - bufcolfin->L[i][j]) * LIM01(masklum[i][j]) + bufcolfin->L[i][j];
|
||||
bufcolfin->a[i][j] = (tmp3.a[i][j] - bufcolfin->a[i][j]) * LIM01(masklum[i][j]) + bufcolfin->a[i][j];
|
||||
bufcolfin->b[i][j] = (tmp3.b[i][j] - bufcolfin->b[i][j]) * LIM01(masklum[i][j]) + bufcolfin->b[i][j];
|
||||
}
|
||||
}
|
||||
masklum.free();
|
||||
|
||||
}
|
||||
float meansob = 0.f;
|
||||
transit_shapedetect2(call, 0, bufcolorig.get(), bufcolfin.get(), originalmaskcol.get(), hueref, chromaref, lumaref, sobelref, meansob, blend2, lp, original, transformed, cx, cy, sk);
|
||||
}
|
||||
|
@ -1018,6 +1018,10 @@ enum ProcEventCode {
|
||||
Evlocallabinvmaskd = 992,
|
||||
Evlocallabinvmask = 993,
|
||||
Evlocallabdecayd = 994,
|
||||
Evlocallabrecothresc = 995,
|
||||
Evlocallablowthresc = 996,
|
||||
Evlocallabhigthresc = 997,
|
||||
Evlocallabdecayc = 998,
|
||||
NUMOFEVENTS
|
||||
};
|
||||
|
||||
|
@ -3026,6 +3026,10 @@ LocallabParams::LocallabSpot::LocallabSpot() :
|
||||
0.35
|
||||
},
|
||||
csthresholdcol(0, 0, 6, 5, false),
|
||||
recothresc(1.),
|
||||
lowthresc(12.),
|
||||
higthresc(85.),
|
||||
decayc(2.),
|
||||
// Exposure
|
||||
visiexpose(false),
|
||||
expexpose(false),
|
||||
@ -4222,6 +4226,10 @@ bool LocallabParams::LocallabSpot::operator ==(const LocallabSpot& other) const
|
||||
&& Lmaskcurve == other.Lmaskcurve
|
||||
&& LLmaskcolcurvewav == other.LLmaskcolcurvewav
|
||||
&& csthresholdcol == other.csthresholdcol
|
||||
&& recothresc == other.recothresc
|
||||
&& lowthresc == other.lowthresc
|
||||
&& higthresc == other.higthresc
|
||||
&& decayc == other.decayc
|
||||
// Exposure
|
||||
&& visiexpose == other.visiexpose
|
||||
&& expexpose == other.expexpose
|
||||
@ -5817,6 +5825,10 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo
|
||||
saveToKeyfile(!pedited || spot_edited->Lmaskcurve, "Locallab", "LmaskCurve_" + index_str, spot.Lmaskcurve, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->LLmaskcolcurvewav, "Locallab", "LLmaskcolCurvewav_" + index_str, spot.LLmaskcolcurvewav, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->csthresholdcol, "Locallab", "CSThresholdcol_" + index_str, spot.csthresholdcol.toVector(), keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->recothresc, "Locallab", "Recothresc_" + index_str, spot.recothresc, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->lowthresc, "Locallab", "Lowthresc_" + index_str, spot.lowthresc, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->higthresc, "Locallab", "Higthresc_" + index_str, spot.higthresc, keyFile);
|
||||
saveToKeyfile(!pedited || spot_edited->decayc, "Locallab", "Decayc_" + index_str, spot.decayc, keyFile);
|
||||
}
|
||||
// Exposure
|
||||
if ((!pedited || spot_edited->visiexpose) && spot.visiexpose) {
|
||||
@ -7600,6 +7612,10 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited)
|
||||
|
||||
spotEdited.csthresholdcol = true;
|
||||
}
|
||||
assignFromKeyfile(keyFile, "Locallab", "Recothresc_" + index_str, pedited, spot.recothresc, spotEdited.recothresc);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Lowthresc_" + index_str, pedited, spot.lowthresc, spotEdited.lowthresc);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Higthresc_" + index_str, pedited, spot.higthresc, spotEdited.higthresc);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Decayc_" + index_str, pedited, spot.decayc, spotEdited.decayc);
|
||||
|
||||
// Exposure
|
||||
spot.visiexpose = assignFromKeyfile(keyFile, "Locallab", "Expexpose_" + index_str, pedited, spot.expexpose, spotEdited.expexpose);
|
||||
|
@ -1084,6 +1084,10 @@ struct LocallabParams {
|
||||
std::vector<double> Lmaskcurve;
|
||||
std::vector<double> LLmaskcolcurvewav;
|
||||
Threshold<int> csthresholdcol;
|
||||
double recothresc;
|
||||
double lowthresc;
|
||||
double higthresc;
|
||||
double decayc;
|
||||
// Exposure
|
||||
bool visiexpose;
|
||||
bool expexpose;
|
||||
|
@ -1021,7 +1021,11 @@ int refreshmap[rtengine::NUMOFEVENTS] = {
|
||||
LUMINANCECURVE, // Evlocallabhigthresd
|
||||
LUMINANCECURVE, // Evlocallabinvmaskd
|
||||
LUMINANCECURVE, // Evlocallabinvmask
|
||||
LUMINANCECURVE // Evlocallabdecayd
|
||||
LUMINANCECURVE, // Evlocallabdecayd
|
||||
LUMINANCECURVE, // Evlocallabrecothresc
|
||||
LUMINANCECURVE, // Evlocallablowthresc
|
||||
LUMINANCECURVE, // Evlocallabhigthresc
|
||||
LUMINANCECURVE // Evlocallabdecayc
|
||||
|
||||
|
||||
};
|
||||
|
@ -424,6 +424,13 @@ LocallabColor::LocallabColor():
|
||||
structcol(Gtk::manage(new Adjuster(M("TP_LOCALLAB_STRUCCOL1"), 0, 100, 1, 0))),
|
||||
blurcolde(Gtk::manage(new Adjuster(M("TP_LOCALLAB_BLURDE"), 2, 100, 1, 5))),
|
||||
softradiuscol(Gtk::manage(new Adjuster(M("TP_LOCALLAB_SOFTRADIUSCOL"), 0.0, 100.0, 0.5, 0.))),
|
||||
exprecov(Gtk::manage(new MyExpander(false, M("TP_LOCALLAB_DENOI2_EXP")))),
|
||||
maskusablec(Gtk::manage(new Gtk::Label(M("TP_LOCALLAB_MASKUSABLE")))),
|
||||
maskunusablec(Gtk::manage(new Gtk::Label(M("TP_LOCALLAB_MASKUNUSABLE")))),
|
||||
recothresc(Gtk::manage(new Adjuster(M("TP_LOCALLAB_MASKRECOTHRES"), 1., 2., 0.01, 1.))),
|
||||
lowthresc(Gtk::manage(new Adjuster(M("TP_LOCALLAB_MASKLCTHRLOW"), 1., 80., 0.5, 12.))),
|
||||
higthresc(Gtk::manage(new Adjuster(M("TP_LOCALLAB_MASKLCTHR"), 20., 99., 0.5, 85.))),
|
||||
decayc(Gtk::manage(new Adjuster(M("TP_LOCALLAB_MASKDDECAY"), 0.5, 4., 0.1, 2.))),
|
||||
invers(Gtk::manage(new Gtk::CheckButton(M("TP_LOCALLAB_INVERS")))),
|
||||
expgradcol(Gtk::manage(new MyExpander(false, M("TP_LOCALLAB_EXPGRAD")))),
|
||||
strcol(Gtk::manage(new Adjuster(M("TP_LOCALLAB_GRADSTRLUM"), -4., 4., 0.05, 0.))),
|
||||
@ -531,6 +538,11 @@ LocallabColor::LocallabColor():
|
||||
|
||||
softradiuscol->setLogScale(10, 0);
|
||||
softradiuscol->setAdjusterListener(this);
|
||||
recothresc->setAdjusterListener(this);
|
||||
lowthresc->setAdjusterListener(this);
|
||||
higthresc->setAdjusterListener(this);
|
||||
decayc->setAdjusterListener(this);
|
||||
setExpandAlignProperties(exprecov, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_START);
|
||||
|
||||
inversConn = invers->signal_toggled().connect(sigc::mem_fun(*this, &LocallabColor::inversChanged));
|
||||
invers->set_tooltip_text(M("TP_LOCALLAB_INVERS_TOOLTIP"));
|
||||
@ -788,6 +800,18 @@ LocallabColor::LocallabColor():
|
||||
pack_start(*blurcolde);
|
||||
pack_start(*softradiuscol);
|
||||
pack_start(*invers);
|
||||
ToolParamBlock* const colBox3 = Gtk::manage(new ToolParamBlock());
|
||||
colBox3->pack_start(*maskusablec, Gtk::PACK_SHRINK, 0);
|
||||
colBox3->pack_start(*maskunusablec, Gtk::PACK_SHRINK, 0);
|
||||
colBox3->pack_start(*recothresc);
|
||||
colBox3->pack_start(*lowthresc);
|
||||
colBox3->pack_start(*higthresc);
|
||||
colBox3->pack_start(*decayc);
|
||||
// colBox3->pack_start(*invmaskc);
|
||||
exprecov->add(*colBox3, false);
|
||||
pack_start(*exprecov, false, false);
|
||||
|
||||
|
||||
ToolParamBlock* const gradcolBox = Gtk::manage(new ToolParamBlock());
|
||||
gradcolBox->pack_start(*strcol);
|
||||
gradcolBox->pack_start(*strcolab);
|
||||
@ -923,6 +947,7 @@ void LocallabColor::updateAdviceTooltips(const bool showTooltips)
|
||||
strengthgrid->set_tooltip_text(M("TP_LOCALLAB_STRENGRID_TOOLTIP"));
|
||||
blurcolde->set_tooltip_text(M("TP_LOCALLAB_BLURCOLDE_TOOLTIP"));
|
||||
softradiuscol->set_tooltip_text(M("TP_LOCALLAB_SOFTRADIUSCOL_TOOLTIP"));
|
||||
exprecov->set_tooltip_markup(M("TP_LOCALLAB_MASKRECOL_TOOLTIP"));
|
||||
expgradcol->set_tooltip_text(M("TP_LOCALLAB_EXPGRADCOL_TOOLTIP"));
|
||||
rgbCurveEditorG->set_tooltip_text(M("TP_LOCALLAB_RGBCURVE_TOOLTIP"));
|
||||
sensi->set_tooltip_text(M("TP_LOCALLAB_SENSI_TOOLTIP"));
|
||||
@ -963,6 +988,9 @@ void LocallabColor::updateAdviceTooltips(const bool showTooltips)
|
||||
blurcol->set_tooltip_text(M("TP_LOCALLAB_BLURRMASK_TOOLTIP"));
|
||||
lapmaskcol->set_tooltip_text(M("TP_LOCALLAB_LAPRAD1_TOOLTIP"));
|
||||
csThresholdcol->set_tooltip_text(M("TP_LOCALLAB_WAVEMASK_LEVEL_TOOLTIP"));
|
||||
decayc->set_tooltip_text(M("TP_LOCALLAB_MASKDECAY_TOOLTIP"));
|
||||
lowthresc->set_tooltip_text(M("TP_LOCALLAB_MASKLOWTHRESC_TOOLTIP"));
|
||||
higthresc->set_tooltip_text(M("TP_LOCALLAB_MASKHIGTHRESC_TOOLTIP"));
|
||||
} else {
|
||||
lumFrame->set_tooltip_text("");
|
||||
lightness->set_tooltip_text("");
|
||||
@ -970,6 +998,7 @@ void LocallabColor::updateAdviceTooltips(const bool showTooltips)
|
||||
strengthgrid->set_tooltip_text("");
|
||||
blurcolde->set_tooltip_text("");
|
||||
softradiuscol->set_tooltip_text("");
|
||||
exprecov->set_tooltip_markup("");
|
||||
expgradcol->set_tooltip_text("");
|
||||
rgbCurveEditorG->set_tooltip_text("");
|
||||
sensi->set_tooltip_text("");
|
||||
@ -1010,11 +1039,15 @@ void LocallabColor::updateAdviceTooltips(const bool showTooltips)
|
||||
mask2CurveEditorGwav->set_tooltip_text("");
|
||||
LLmaskcolshapewav->setTooltip("");
|
||||
csThresholdcol->set_tooltip_text("");
|
||||
decayc->set_tooltip_text("");
|
||||
lowthresc->set_tooltip_text("");
|
||||
higthresc->set_tooltip_text("");
|
||||
}
|
||||
}
|
||||
|
||||
void LocallabColor::setDefaultExpanderVisibility()
|
||||
{
|
||||
exprecov->set_expanded(false);
|
||||
expgradcol->set_expanded(false);
|
||||
expcurvcol->set_expanded(false);
|
||||
expmaskcol1->set_expanded(false);
|
||||
@ -1142,6 +1175,11 @@ void LocallabColor::read(const rtengine::procparams::ProcParams* pp, const Param
|
||||
merMethod->set_active(3);
|
||||
}
|
||||
|
||||
recothresc->setValue((double)spot.recothresc);
|
||||
lowthresc->setValue((double)spot.lowthresc);
|
||||
higthresc->setValue((double)spot.higthresc);
|
||||
decayc->setValue((double)spot.decayc);
|
||||
|
||||
if (spot.mergecolMethod == "one") {
|
||||
mergecolMethod->set_active(0);
|
||||
} else if (spot.mergecolMethod == "two") {
|
||||
@ -1275,6 +1313,11 @@ void LocallabColor::write(rtengine::procparams::ProcParams* pp, ParamsEdited* pe
|
||||
spot.strcolh = strcolh->getValue();
|
||||
spot.angcol = angcol->getValue();
|
||||
|
||||
spot.recothresc = recothresc->getValue();
|
||||
spot.lowthresc = lowthresc->getValue();
|
||||
spot.higthresc = higthresc->getValue();
|
||||
spot.decayc = decayc->getValue();
|
||||
|
||||
if (qualitycurveMethod->get_active_row_number() == 0) {
|
||||
spot.qualitycurveMethod = "none";
|
||||
} else if (qualitycurveMethod->get_active_row_number() == 1) {
|
||||
@ -1438,6 +1481,11 @@ void LocallabColor::setDefaults(const rtengine::procparams::ProcParams* defParam
|
||||
slomaskcol->setDefault(defSpot.slomaskcol);
|
||||
shadmaskcol->setDefault((double)defSpot.shadmaskcol);
|
||||
csThresholdcol->setDefault<int>(defSpot.csthresholdcol);
|
||||
recothresc->setDefault((double)defSpot.recothresc);
|
||||
lowthresc->setDefault((double)defSpot.lowthresc);
|
||||
higthresc->setDefault((double)defSpot.higthresc);
|
||||
decayc->setDefault((double)defSpot.decayc);
|
||||
|
||||
}
|
||||
|
||||
// Note: No need to manage pedited as batch mode is deactivated for Locallab
|
||||
@ -1502,6 +1550,36 @@ void LocallabColor::adjusterChanged(Adjuster* a, double newval)
|
||||
}
|
||||
}
|
||||
|
||||
if (a == recothresc) {
|
||||
|
||||
if (listener) {
|
||||
listener->panelChanged(Evlocallabrecothresc,
|
||||
recothresc->getTextValue() + " (" + escapeHtmlChars(spotName) + ")");
|
||||
}
|
||||
}
|
||||
|
||||
if (a == lowthresc) {
|
||||
if (listener) {
|
||||
listener->panelChanged(Evlocallablowthresc,
|
||||
lowthresc->getTextValue() + " (" + escapeHtmlChars(spotName) + ")");
|
||||
}
|
||||
}
|
||||
|
||||
if (a == higthresc) {
|
||||
if (listener) {
|
||||
listener->panelChanged(Evlocallabhigthresc,
|
||||
higthresc->getTextValue() + " (" + escapeHtmlChars(spotName) + ")");
|
||||
}
|
||||
}
|
||||
|
||||
if (a == decayc) {
|
||||
if (listener) {
|
||||
listener->panelChanged(Evlocallabdecayc,
|
||||
decayc->getTextValue() + " (" + escapeHtmlChars(spotName) + ")");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (a == strcol) {
|
||||
if (listener) {
|
||||
listener->panelChanged(Evlocallabstrcol,
|
||||
@ -1867,6 +1945,7 @@ void LocallabColor::convertParamToNormal()
|
||||
HHhmaskshape->setCurve(defSpot.HHhmaskcurve);
|
||||
LLmaskcolshapewav->setCurve(defSpot.LLmaskcolcurvewav);
|
||||
csThresholdcol->setValue<int>(defSpot.csthresholdcol);
|
||||
decayc->setValue(defSpot.decayc);
|
||||
|
||||
// Enable all listeners
|
||||
enableListener();
|
||||
@ -1901,13 +1980,17 @@ void LocallabColor::convertParamToSimple()
|
||||
showmaskcolMethod->set_active(0);
|
||||
showmaskcolMethodinv->set_active(0);
|
||||
enaColorMask->set_active(defSpot.enaColorMask);
|
||||
CCmaskshape->setCurve(defSpot.CCmaskcurve);
|
||||
LLmaskshape->setCurve(defSpot.LLmaskcurve);
|
||||
HHmaskshape->setCurve(defSpot.HHmaskcurve);
|
||||
blendmaskcol->setValue((double)defSpot.blendmaskcol);
|
||||
radmaskcol->setValue(defSpot.radmaskcol);
|
||||
chromaskcol->setValue(defSpot.chromaskcol);
|
||||
Lmaskshape->setCurve(defSpot.Lmaskcurve);
|
||||
// CCmaskshape->setCurve(defSpot.CCmaskcurve);
|
||||
// LLmaskshape->setCurve(defSpot.LLmaskcurve);
|
||||
// HHmaskshape->setCurve(defSpot.HHmaskcurve);
|
||||
// blendmaskcol->setValue((double)defSpot.blendmaskcol);
|
||||
// radmaskcol->setValue(defSpot.radmaskcol);
|
||||
// chromaskcol->setValue(defSpot.chromaskcol);
|
||||
// Lmaskshape->setCurve(defSpot.Lmaskcurve);
|
||||
recothresc->setValue(defSpot.recothresc);
|
||||
lowthresc->setValue(defSpot.lowthresc);
|
||||
higthresc->setValue(defSpot.higthresc);
|
||||
decayc->setValue(defSpot.decayc);
|
||||
|
||||
// Enable all listeners
|
||||
enableListener();
|
||||
@ -1925,7 +2008,10 @@ void LocallabColor::updateGUIToMode(const modeType new_type)
|
||||
expcurvcol->hide();
|
||||
expmaskcol1->hide();
|
||||
expmaskcol->hide();
|
||||
|
||||
exprecov->hide();
|
||||
maskusablec->hide();
|
||||
maskunusablec->hide();
|
||||
decayc->hide();
|
||||
break;
|
||||
|
||||
case Normal:
|
||||
@ -1940,6 +2026,7 @@ void LocallabColor::updateGUIToMode(const modeType new_type)
|
||||
H2CurveEditorG->hide();
|
||||
rgbCurveEditorG->hide();
|
||||
special->hide();
|
||||
exprecov->show();
|
||||
expmaskcol1->hide();
|
||||
struFrame->hide();
|
||||
blurFrame->hide();
|
||||
@ -1952,13 +2039,23 @@ void LocallabColor::updateGUIToMode(const modeType new_type)
|
||||
csThresholdcol->hide();
|
||||
// Specific Simple mode widgets are shown in Normal mode
|
||||
softradiuscol->show();
|
||||
if (enaColorMask->get_active()) {
|
||||
maskusablec->show();
|
||||
maskunusablec->hide();
|
||||
|
||||
} else {
|
||||
maskusablec->hide();
|
||||
maskunusablec->show();
|
||||
}
|
||||
|
||||
if (!invers->get_active()) { // Keep widget hidden when invers is toggled
|
||||
expgradcol->show();
|
||||
exprecov->show();
|
||||
}
|
||||
|
||||
expcurvcol->show();
|
||||
expmaskcol->show();
|
||||
decayc->hide();
|
||||
|
||||
break;
|
||||
|
||||
@ -1970,11 +2067,23 @@ void LocallabColor::updateGUIToMode(const modeType new_type)
|
||||
if (!invers->get_active()) { // Keep widget hidden when invers is toggled
|
||||
softradiuscol->show();
|
||||
expgradcol->show();
|
||||
exprecov->show();
|
||||
}
|
||||
|
||||
strcolab->show();
|
||||
strcolh->show();
|
||||
expcurvcol->show();
|
||||
if (enaColorMask->get_active()) {
|
||||
maskusablec->show();
|
||||
maskunusablec->hide();
|
||||
|
||||
} else {
|
||||
maskusablec->hide();
|
||||
maskunusablec->show();
|
||||
}
|
||||
|
||||
exprecov->show();
|
||||
decayc->show();
|
||||
|
||||
if (!invers->get_active()) { // Keep widgets hidden when invers is toggled
|
||||
clCurveEditorG->show();
|
||||
@ -2173,6 +2282,15 @@ void LocallabColor::showmaskcolMethodChangedinv()
|
||||
|
||||
void LocallabColor::enaColorMaskChanged()
|
||||
{
|
||||
if (enaColorMask->get_active()) {
|
||||
maskusablec->show();
|
||||
maskunusablec->hide();
|
||||
|
||||
} else {
|
||||
maskusablec->hide();
|
||||
maskunusablec->show();
|
||||
}
|
||||
|
||||
if (isLocActivated && exp->getEnabled()) {
|
||||
if (listener) {
|
||||
if (enaColorMask->get_active()) {
|
||||
@ -2227,6 +2345,7 @@ void LocallabColor::updateColorGUI1()
|
||||
structcol->hide();
|
||||
softradiuscol->hide();
|
||||
expgradcol->hide();
|
||||
exprecov->hide();
|
||||
labqualcurv->hide();
|
||||
qualitycurveMethod->hide();
|
||||
clCurveEditorG->hide();
|
||||
@ -2251,6 +2370,7 @@ void LocallabColor::updateColorGUI1()
|
||||
if (mode == Expert || mode == Normal) { // Keep widget hidden in Simple mode
|
||||
softradiuscol->show();
|
||||
expgradcol->show();
|
||||
exprecov->show();
|
||||
}
|
||||
|
||||
labqualcurv->show();
|
||||
@ -3250,13 +3370,13 @@ void LocallabExposure::convertParamToSimple()
|
||||
softradiusexp->setValue(defSpot.softradiusexp);
|
||||
enaExpMask->set_active(defSpot.enaExpMask);
|
||||
enaExpMaskaft->set_active(defSpot.enaExpMaskaft);
|
||||
CCmaskexpshape->setCurve(defSpot.CCmaskexpcurve);
|
||||
LLmaskexpshape->setCurve(defSpot.CCmaskexpcurve);
|
||||
HHmaskexpshape->setCurve(defSpot.HHmaskexpcurve);
|
||||
blendmaskexp->setValue((double)defSpot.blendmaskexp);
|
||||
radmaskexp->setValue(defSpot.radmaskexp);
|
||||
chromaskexp->setValue(defSpot.chromaskexp);
|
||||
Lmaskexpshape->setCurve(defSpot.Lmaskexpcurve);
|
||||
// CCmaskexpshape->setCurve(defSpot.CCmaskexpcurve);
|
||||
// LLmaskexpshape->setCurve(defSpot.CCmaskexpcurve);
|
||||
// HHmaskexpshape->setCurve(defSpot.HHmaskexpcurve);
|
||||
// blendmaskexp->setValue((double)defSpot.blendmaskexp);
|
||||
// radmaskexp->setValue(defSpot.radmaskexp);
|
||||
// chromaskexp->setValue(defSpot.chromaskexp);
|
||||
// Lmaskexpshape->setCurve(defSpot.Lmaskexpcurve);
|
||||
|
||||
// Enable all listeners
|
||||
enableListener();
|
||||
@ -4262,13 +4382,13 @@ void LocallabShadow::convertParamToSimple()
|
||||
showmaskSHMethod->set_active(0);
|
||||
showmaskSHMethodinv->set_active(0);
|
||||
enaSHMask->set_active(defSpot.enaSHMask);
|
||||
CCmaskSHshape->setCurve(defSpot.CCmaskSHcurve);
|
||||
LLmaskSHshape->setCurve(defSpot.LLmaskSHcurve);
|
||||
HHmaskSHshape->setCurve(defSpot.HHmaskSHcurve);
|
||||
blendmaskSH->setValue((double)defSpot.blendmaskSH);
|
||||
radmaskSH->setValue(defSpot.radmaskSH);
|
||||
chromaskSH->setValue(defSpot.chromaskSH);
|
||||
LmaskSHshape->setCurve(defSpot.LmaskSHcurve);
|
||||
// CCmaskSHshape->setCurve(defSpot.CCmaskSHcurve);
|
||||
// LLmaskSHshape->setCurve(defSpot.LLmaskSHcurve);
|
||||
// HHmaskSHshape->setCurve(defSpot.HHmaskSHcurve);
|
||||
// blendmaskSH->setValue((double)defSpot.blendmaskSH);
|
||||
// radmaskSH->setValue(defSpot.radmaskSH);
|
||||
// chromaskSH->setValue(defSpot.chromaskSH);
|
||||
// LmaskSHshape->setCurve(defSpot.LmaskSHcurve);
|
||||
|
||||
// Enable all listeners
|
||||
enableListener();
|
||||
@ -5169,13 +5289,13 @@ void LocallabVibrance::convertParamToSimple()
|
||||
angvib->setValue(defSpot.angvib);
|
||||
showmaskvibMethod->set_active(0);
|
||||
enavibMask->set_active(defSpot.enavibMask);
|
||||
CCmaskvibshape->setCurve(defSpot.CCmaskvibcurve);
|
||||
LLmaskvibshape->setCurve(defSpot.LLmaskvibcurve);
|
||||
HHmaskvibshape->setCurve(defSpot.HHmaskvibcurve);
|
||||
blendmaskvib->setValue((double)defSpot.blendmaskvib);
|
||||
radmaskvib->setValue(defSpot.radmaskvib);
|
||||
chromaskvib->setValue(defSpot.chromaskvib);
|
||||
Lmaskvibshape->setCurve(defSpot.Lmaskvibcurve);
|
||||
// CCmaskvibshape->setCurve(defSpot.CCmaskvibcurve);
|
||||
// LLmaskvibshape->setCurve(defSpot.LLmaskvibcurve);
|
||||
// HHmaskvibshape->setCurve(defSpot.HHmaskvibcurve);
|
||||
// blendmaskvib->setValue((double)defSpot.blendmaskvib);
|
||||
// radmaskvib->setValue(defSpot.radmaskvib);
|
||||
// chromaskvib->setValue(defSpot.chromaskvib);
|
||||
// Lmaskvibshape->setCurve(defSpot.Lmaskvibcurve);
|
||||
|
||||
// Enable all listener
|
||||
enableListener();
|
||||
@ -7158,15 +7278,15 @@ void LocallabBlur::convertParamToSimple()
|
||||
}
|
||||
lnoiselow->setValue(defSpot.lnoiselow);
|
||||
enablMask->set_active(defSpot.enablMask);
|
||||
CCmaskblshape->setCurve(defSpot.CCmaskblcurve);
|
||||
LLmaskblshape->setCurve(defSpot.LLmaskblcurve);
|
||||
HHmaskblshape->setCurve(defSpot.HHmaskblcurve);
|
||||
blendmaskbl->setValue((double)defSpot.blendmaskbl);
|
||||
radmaskbl->setValue(defSpot.radmaskbl);
|
||||
chromaskbl->setValue(defSpot.chromaskbl);
|
||||
gammaskbl->setValue(defSpot.gammaskbl);
|
||||
slomaskbl->setValue(defSpot.slomaskbl);
|
||||
Lmaskblshape->setCurve(defSpot.Lmasklccurve);
|
||||
// CCmaskblshape->setCurve(defSpot.CCmaskblcurve);
|
||||
// LLmaskblshape->setCurve(defSpot.LLmaskblcurve);
|
||||
// HHmaskblshape->setCurve(defSpot.HHmaskblcurve);
|
||||
// blendmaskbl->setValue((double)defSpot.blendmaskbl);
|
||||
// radmaskbl->setValue(defSpot.radmaskbl);
|
||||
// chromaskbl->setValue(defSpot.chromaskbl);
|
||||
// gammaskbl->setValue(defSpot.gammaskbl);
|
||||
// slomaskbl->setValue(defSpot.slomaskbl);
|
||||
// Lmaskblshape->setCurve(defSpot.Lmasklccurve);
|
||||
levelthr->setValue(defSpot.levelthr);
|
||||
lnoiselow->setValue(defSpot.lnoiselow);
|
||||
levelthrlow->setValue(defSpot.levelthrlow);
|
||||
|
@ -189,6 +189,13 @@ private:
|
||||
Adjuster* const structcol;
|
||||
Adjuster* const blurcolde;
|
||||
Adjuster* const softradiuscol;
|
||||
MyExpander* const exprecov;
|
||||
Gtk::Label* const maskusablec;
|
||||
Gtk::Label* const maskunusablec;
|
||||
Adjuster* const recothresc;
|
||||
Adjuster* const lowthresc;
|
||||
Adjuster* const higthresc;
|
||||
Adjuster* const decayc;
|
||||
Gtk::CheckButton* const invers;
|
||||
MyExpander* const expgradcol;
|
||||
Adjuster* const strcol;
|
||||
|
@ -555,13 +555,13 @@ void LocallabTone::convertParamToSimple()
|
||||
showmasktmMethod->set_active(0);
|
||||
enatmMask->set_active(defSpot.enatmMask);
|
||||
enatmMaskaft->set_active(defSpot.enatmMaskaft);
|
||||
CCmasktmshape->setCurve(defSpot.CCmasktmcurve);
|
||||
LLmasktmshape->setCurve(defSpot.LLmasktmcurve);
|
||||
HHmasktmshape->setCurve(defSpot.HHmasktmcurve);
|
||||
blendmasktm->setValue((double)defSpot.blendmasktm);
|
||||
radmasktm->setValue(defSpot.radmasktm);
|
||||
chromasktm->setValue(defSpot.chromasktm);
|
||||
Lmasktmshape->setCurve(defSpot.Lmasktmcurve);
|
||||
// CCmasktmshape->setCurve(defSpot.CCmasktmcurve);
|
||||
// LLmasktmshape->setCurve(defSpot.LLmasktmcurve);
|
||||
// HHmasktmshape->setCurve(defSpot.HHmasktmcurve);
|
||||
// blendmasktm->setValue((double)defSpot.blendmasktm);
|
||||
// radmasktm->setValue(defSpot.radmasktm);
|
||||
// chromasktm->setValue(defSpot.chromasktm);
|
||||
// Lmasktmshape->setCurve(defSpot.Lmasktmcurve);
|
||||
|
||||
// Enable all listeners
|
||||
enableListener();
|
||||
@ -3584,13 +3584,13 @@ void LocallabContrast::convertParamToSimple()
|
||||
|
||||
showmasklcMethod->set_active(0);
|
||||
enalcMask->set_active(defSpot.enalcMask);
|
||||
CCmasklcshape->setCurve(defSpot.CCmasklccurve);
|
||||
LLmasklcshape->setCurve(defSpot.LLmasklccurve);
|
||||
HHmasklcshape->setCurve(defSpot.HHmasklccurve);
|
||||
blendmasklc->setValue((double)defSpot.blendmasklc);
|
||||
radmasklc->setValue(defSpot.radmasklc);
|
||||
chromasklc->setValue(defSpot.chromasklc);
|
||||
Lmasklcshape->setCurve(defSpot.Lmasklccurve);
|
||||
// CCmasklcshape->setCurve(defSpot.CCmasklccurve);
|
||||
// LLmasklcshape->setCurve(defSpot.LLmasklccurve);
|
||||
// HHmasklcshape->setCurve(defSpot.HHmasklccurve);
|
||||
// blendmasklc->setValue((double)defSpot.blendmasklc);
|
||||
// radmasklc->setValue(defSpot.radmasklc);
|
||||
// chromasklc->setValue(defSpot.chromasklc);
|
||||
// Lmasklcshape->setCurve(defSpot.Lmasklccurve);
|
||||
|
||||
// Enable all listeners
|
||||
enableListener();
|
||||
@ -4505,15 +4505,15 @@ void LocallabCBDL::convertParamToSimple()
|
||||
softradiuscb->setValue(defSpot.softradiuscb);
|
||||
showmaskcbMethod->set_active(0);
|
||||
enacbMask->set_active(defSpot.enacbMask);
|
||||
CCmaskcbshape->setCurve(defSpot.CCmaskcbcurve);
|
||||
LLmaskcbshape->setCurve(defSpot.LLmaskcbcurve);
|
||||
HHmaskcbshape->setCurve(defSpot.HHmaskcbcurve);
|
||||
blendmaskcb->setValue((double)defSpot.blendmaskcb);
|
||||
radmaskcb->setValue(defSpot.radmaskcb);
|
||||
chromaskcb->setValue(defSpot.chromaskcb);
|
||||
gammaskcb->setValue(defSpot.gammaskcb);
|
||||
slomaskcb->setValue(defSpot.slomaskcb);
|
||||
Lmaskcbshape->setCurve(defSpot.Lmaskcbcurve);
|
||||
// CCmaskcbshape->setCurve(defSpot.CCmaskcbcurve);
|
||||
// LLmaskcbshape->setCurve(defSpot.LLmaskcbcurve);
|
||||
// HHmaskcbshape->setCurve(defSpot.HHmaskcbcurve);
|
||||
// blendmaskcb->setValue((double)defSpot.blendmaskcb);
|
||||
// radmaskcb->setValue(defSpot.radmaskcb);
|
||||
// chromaskcb->setValue(defSpot.chromaskcb);
|
||||
// gammaskcb->setValue(defSpot.gammaskcb);
|
||||
// slomaskcb->setValue(defSpot.slomaskcb);
|
||||
// Lmaskcbshape->setCurve(defSpot.Lmaskcbcurve);
|
||||
|
||||
// Enable all listers
|
||||
enableListener();
|
||||
|
@ -1151,6 +1151,10 @@ void ParamsEdited::initFrom(const std::vector<rtengine::procparams::ProcParams>&
|
||||
locallab.spots.at(j).Lmaskcurve = locallab.spots.at(j).Lmaskcurve && pSpot.Lmaskcurve == otherSpot.Lmaskcurve;
|
||||
locallab.spots.at(j).LLmaskcolcurvewav = locallab.spots.at(j).LLmaskcolcurvewav && pSpot.LLmaskcolcurvewav == otherSpot.LLmaskcolcurvewav;
|
||||
locallab.spots.at(j).csthresholdcol = locallab.spots.at(j).csthresholdcol && pSpot.csthresholdcol == otherSpot.csthresholdcol;
|
||||
locallab.spots.at(j).recothresc = locallab.spots.at(j).recothresc && pSpot.recothresc == otherSpot.recothresc;
|
||||
locallab.spots.at(j).lowthresc = locallab.spots.at(j).lowthresc && pSpot.lowthresc == otherSpot.lowthresc;
|
||||
locallab.spots.at(j).higthresc = locallab.spots.at(j).higthresc && pSpot.higthresc == otherSpot.higthresc;
|
||||
locallab.spots.at(j).decayc = locallab.spots.at(j).decayc && pSpot.decayc == otherSpot.decayc;
|
||||
// Exposure
|
||||
locallab.spots.at(j).visiexpose = locallab.spots.at(j).visiexpose && pSpot.visiexpose == otherSpot.visiexpose;
|
||||
locallab.spots.at(j).expexpose = locallab.spots.at(j).expexpose && pSpot.expexpose == otherSpot.expexpose;
|
||||
@ -3562,6 +3566,22 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng
|
||||
toEdit.locallab.spots.at(i).csthresholdcol = mods.locallab.spots.at(i).csthresholdcol;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).recothresc) {
|
||||
toEdit.locallab.spots.at(i).recothresc = mods.locallab.spots.at(i).recothresc;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).lowthresc) {
|
||||
toEdit.locallab.spots.at(i).lowthresc = mods.locallab.spots.at(i).lowthresc;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).higthresc) {
|
||||
toEdit.locallab.spots.at(i).higthresc = mods.locallab.spots.at(i).higthresc;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).decayc) {
|
||||
toEdit.locallab.spots.at(i).decayc = mods.locallab.spots.at(i).decayc;
|
||||
}
|
||||
|
||||
// Exposure
|
||||
if (locallab.spots.at(i).visiexpose) {
|
||||
toEdit.locallab.spots.at(i).visiexpose = mods.locallab.spots.at(i).visiexpose;
|
||||
@ -6504,6 +6524,10 @@ LocallabParamsEdited::LocallabSpotEdited::LocallabSpotEdited(bool v) :
|
||||
Lmaskcurve(v),
|
||||
LLmaskcolcurvewav(v),
|
||||
csthresholdcol(v),
|
||||
recothresc(v),
|
||||
lowthresc(v),
|
||||
higthresc(v),
|
||||
decayc(v),
|
||||
// Exposure
|
||||
visiexpose(v),
|
||||
expexpose(v),
|
||||
@ -7028,6 +7052,10 @@ void LocallabParamsEdited::LocallabSpotEdited::set(bool v)
|
||||
Lmaskcurve = v;
|
||||
LLmaskcolcurvewav = v;
|
||||
csthresholdcol = v;
|
||||
recothresc = v;
|
||||
lowthresc = v;
|
||||
higthresc = v;
|
||||
decayc = v;
|
||||
// Exposure
|
||||
visiexpose = v;
|
||||
expexpose = v;
|
||||
|
@ -492,6 +492,10 @@ public:
|
||||
bool Lmaskcurve;
|
||||
bool LLmaskcolcurvewav;
|
||||
bool csthresholdcol;
|
||||
bool recothresc;
|
||||
bool lowthresc;
|
||||
bool higthresc;
|
||||
bool decayc;
|
||||
// Exposure
|
||||
bool visiexpose;
|
||||
bool expexpose;
|
||||
|
Loading…
x
Reference in New Issue
Block a user