Tone mapping mask after
This commit is contained in:
parent
43228efea6
commit
b0f35cfa21
@ -992,6 +992,7 @@ HISTORY_MSG_751;Local - Reti Dehaze luminance
|
||||
HISTORY_MSG_752;Local - Reti Offset
|
||||
HISTORY_MSG_753;Local - Reti Transmission map
|
||||
HISTORY_MSG_754;Local - Reti Clip
|
||||
HISTORY_MSG_755;Local - TM use tm mask
|
||||
HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors
|
||||
HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction
|
||||
HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction
|
||||
@ -2233,6 +2234,7 @@ TP_LOCALLAB_SHOWDCT;Show process Fourier
|
||||
TP_LOCALLAB_SHOWMASKSOFT_TOOLTIP;Show process Fourier:\nShows the different stages of the process.\nLaplace - builds the second derivative according to the threshold (first step).\nFourier -shows the transformed Laplacian with DCT.\nPoisson - show solution of Poisson DCE.\nNormalize - show result whithout normalization luminance.
|
||||
TP_LOCALLAB_SHOWNORMAL;Normalize luminance (no)
|
||||
TP_LOCALLAB_TM;Tone Mapping
|
||||
TP_LOCALLAB_ENABLE_AFTER_MASK;Use Tone Mapping
|
||||
TP_LOCALLAB_STR;Strength
|
||||
TP_LOCALLAB_LOGLIN;Logarithm mode
|
||||
TP_LOCALLAB_STRRETI_TOOLTIP;if Strength Retinex < 0.2 only Dehaze is enabled.\nif Strength Retinex >= 0.1 Dehaze is in luminance mode.
|
||||
|
@ -7468,14 +7468,19 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
|
||||
JaggedArray<float> bufchro(bfw, bfh);
|
||||
std::unique_ptr<LabImage> bufgb(new LabImage(bfw, bfh));
|
||||
std::unique_ptr<LabImage> tmp1(new LabImage(bfw, bfh));
|
||||
std::unique_ptr<LabImage> bufgbm(new LabImage(bfw, bfh));
|
||||
std::unique_ptr<LabImage> tmp1m(new LabImage(bfw, bfh));
|
||||
std::unique_ptr<LabImage> bufmaskorigtm;
|
||||
std::unique_ptr<LabImage> bufmaskblurtm;
|
||||
std::unique_ptr<LabImage> originalmasktm;
|
||||
LabImage *orimask = nullptr;
|
||||
orimask = new LabImage(original->W, original->H);
|
||||
|
||||
if (lp.showmasktmmet == 2 || lp.enatmMask || lp.showmasktmmet == 3 || lp.showmasktmmet == 4) {
|
||||
if (lp.showmasktmmet == 0 || lp.showmasktmmet == 2 || lp.enatmMask || lp.showmasktmmet == 3 || lp.showmasktmmet == 4) {
|
||||
bufmaskorigtm.reset(new LabImage(bfw, bfh));
|
||||
bufmaskblurtm.reset(new LabImage(bfw, bfh));
|
||||
originalmasktm.reset(new LabImage(bfw, bfh));
|
||||
orimask->CopyFrom(original);
|
||||
}
|
||||
|
||||
int itera = 0;
|
||||
@ -7493,6 +7498,9 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
|
||||
bufgb->L[y - ystart][x - xstart] = original->L[y][x];
|
||||
bufgb->a[y - ystart][x - xstart] = original->a[y][x];
|
||||
bufgb->b[y - ystart][x - xstart] = original->b[y][x];
|
||||
bufgbm->L[y - ystart][x - xstart] = original->L[y][x];
|
||||
bufgbm->a[y - ystart][x - xstart] = original->a[y][x];
|
||||
bufgbm->b[y - ystart][x - xstart] = original->b[y][x];
|
||||
}
|
||||
}
|
||||
|
||||
@ -7533,36 +7541,43 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
|
||||
float gamma = lp.gammatm;
|
||||
float slope = lp.slomatm;
|
||||
float blendm = lp.blendmatm;
|
||||
maskcalccol(bfw, bfh, xstart, ystart, sk, cx, cy, bufgb.get(), bufmaskorigtm.get(), originalmasktm.get(), original, transformed, inv, lp,
|
||||
|
||||
if (!params->locallab.spots.at(sp).enatmMaskaft) {
|
||||
maskcalccol(bfw, bfh, xstart, ystart, sk, cx, cy, bufgbm.get(), bufmaskorigtm.get(), originalmasktm.get(), original, transformed, inv, lp,
|
||||
locccmastmCurve, lcmastmutili, locllmastmCurve, llmastmutili, lochhmastmCurve, lhmastmutili, multiThread,
|
||||
enaMask, showmaske, deltaE, modmask, zero, modif, chrom, rad, gamma, slope, blendm);
|
||||
|
||||
if (lp.showmasktmmet == 3) {
|
||||
showmask(lp, xstart, ystart, cx, cy, bfw, bfh, bufgb.get(), transformed, bufmaskorigtm.get(), 0);
|
||||
showmask(lp, xstart, ystart, cx, cy, bfw, bfh, bufgbm.get(), transformed, bufmaskorigtm.get(), 0);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if (lp.showmasktmmet == 0 || lp.showmasktmmet == 1 || lp.showmasktmmet == 2 || lp.showmasktmmet == 4 || lp.enatmMask) {
|
||||
|
||||
#ifdef _OPENMP
|
||||
#pragma omp parallel for schedule(dynamic,16)
|
||||
#endif
|
||||
|
||||
for (int y = 0; y < bfh ; y++) {
|
||||
for (int x = 0; x < bfw; x++) {
|
||||
bufgb->L[y][x] = original->L[y + ystart][x + xstart];
|
||||
bufgb->a[y][x] = original->a[y + ystart][x + xstart];
|
||||
bufgb->b[y][x] = original->b[y + ystart][x + xstart];
|
||||
}
|
||||
}
|
||||
|
||||
if (lp.showmasktmmet == 0 || lp.showmasktmmet == 1 || lp.showmasktmmet == 2 || lp.showmasktmmet == 4 || lp.showmasktmmet == 3 || lp.enatmMask) {
|
||||
|
||||
|
||||
|
||||
ImProcFunctions::EPDToneMaplocal(sp, bufgb.get(), tmp1.get(), itera, sk);//iterate to 0 calculate with edgstopping, improve result, call=1 dcrop we can put iterate to 5
|
||||
|
||||
tmp1m->CopyFrom(tmp1.get());
|
||||
|
||||
if (params->locallab.spots.at(sp).enatmMaskaft) {
|
||||
|
||||
maskcalccol(bfw, bfh, xstart, ystart, sk, cx, cy, tmp1m.get(), bufmaskorigtm.get(), originalmasktm.get(), orimask, transformed, inv, lp,
|
||||
locccmastmCurve, lcmastmutili, locllmastmCurve, llmastmutili, lochhmastmCurve, lhmastmutili, multiThread,
|
||||
enaMask, showmaske, deltaE, modmask, zero, modif, chrom, rad, gamma, slope, blendm);
|
||||
|
||||
if (lp.showmasktmmet == 3) {
|
||||
showmask(lp, xstart, ystart, cx, cy, bfw, bfh, tmp1m.get(), transformed, bufmaskorigtm.get(), 0);
|
||||
|
||||
return;
|
||||
}
|
||||
original->CopyFrom(orimask);
|
||||
}
|
||||
|
||||
delete orimask;
|
||||
|
||||
float minL = tmp1->L[0][0] - bufgb->L[0][0];
|
||||
float maxL = minL;
|
||||
float minC = sqrt(SQR(tmp1->a[0][0]) + SQR(tmp1->b[0][0])) - sqrt(SQR(bufgb->a[0][0]) + SQR(bufgb->b[0][0]));
|
||||
|
@ -781,6 +781,7 @@ enum ProcEventCode {
|
||||
Evlocallaboffs = 751,
|
||||
EvlocallabCTtransCurve = 752,
|
||||
Evlocallabcliptm = 753,
|
||||
EvLocallabEnatmMaskaft = 754,
|
||||
NUMOFEVENTS
|
||||
};
|
||||
|
||||
|
@ -2570,6 +2570,7 @@ LocallabParams::LocallabSpot::LocallabSpot() :
|
||||
LLmasktmcurve{(double)FCT_MinMaxCPoints, 0.0, 1.0, 0.35, 0.35, 0.50, 1.0, 0.35, 0.35, 1.0, 1.0, 0.35, 0.35},
|
||||
HHmasktmcurve{(double)FCT_MinMaxCPoints, 0.0, 1.0, 0.35, 0.35, 0.50, 1.0, 0.35, 0.35, 1.0, 1.0, 0.35, 0.35},
|
||||
enatmMask(false),
|
||||
enatmMaskaft(false),
|
||||
blendmasktm(0),
|
||||
radmasktm(10.0),
|
||||
chromasktm(0.0),
|
||||
@ -2837,6 +2838,7 @@ bool LocallabParams::LocallabSpot::operator ==(const LocallabSpot& other) const
|
||||
&& LLmasktmcurve == other.LLmasktmcurve
|
||||
&& HHmasktmcurve == other.HHmasktmcurve
|
||||
&& enatmMask == other.enatmMask
|
||||
&& enatmMaskaft == other.enatmMaskaft
|
||||
&& blendmasktm == other.blendmasktm
|
||||
&& radmasktm == other.radmasktm
|
||||
&& chromasktm == other.chromasktm
|
||||
@ -4090,6 +4092,7 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).LLmasktmcurve, "Locallab", "LLmasktmCurve_" + std::to_string(i), spot.LLmasktmcurve, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).HHmasktmcurve, "Locallab", "HHmasktmCurve_" + std::to_string(i), spot.HHmasktmcurve, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).enatmMask, "Locallab", "EnatmMask_" + std::to_string(i), spot.enatmMask, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).enatmMaskaft, "Locallab", "EnatmMaskaft_" + std::to_string(i), spot.enatmMaskaft, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).blendmasktm, "Locallab", "Blendmasktm_" + std::to_string(i), spot.blendmasktm, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).radmasktm, "Locallab", "Radmasktm_" + std::to_string(i), spot.radmasktm, keyFile);
|
||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).chromasktm, "Locallab", "Chromasktm_" + std::to_string(i), spot.chromasktm, keyFile);
|
||||
@ -5470,6 +5473,7 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited)
|
||||
assignFromKeyfile(keyFile, "Locallab", "LLmasktmCurve_" + std::to_string(i), pedited, spot.LLmasktmcurve, spotEdited.LLmasktmcurve);
|
||||
assignFromKeyfile(keyFile, "Locallab", "HHmasktmCurve_" + std::to_string(i), pedited, spot.HHmasktmcurve, spotEdited.HHmasktmcurve);
|
||||
assignFromKeyfile(keyFile, "Locallab", "EnatmMask_" + std::to_string(i), pedited, spot.enatmMask, spotEdited.enatmMask);
|
||||
assignFromKeyfile(keyFile, "Locallab", "EnatmMaskaft_" + std::to_string(i), pedited, spot.enatmMaskaft, spotEdited.enatmMaskaft);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Blendmasktm_" + std::to_string(i), pedited, spot.blendmasktm, spotEdited.blendmasktm);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Radmasktm_" + std::to_string(i), pedited, spot.radmasktm, spotEdited.radmasktm);
|
||||
assignFromKeyfile(keyFile, "Locallab", "Chromasktm_" + std::to_string(i), pedited, spot.chromasktm, spotEdited.chromasktm);
|
||||
|
@ -1119,6 +1119,7 @@ struct LocallabParams {
|
||||
std::vector<double> LLmasktmcurve;
|
||||
std::vector<double> HHmasktmcurve;
|
||||
bool enatmMask;
|
||||
bool enatmMaskaft;
|
||||
int blendmasktm;
|
||||
double radmasktm;
|
||||
double chromasktm;
|
||||
|
@ -780,7 +780,8 @@ int refreshmap[rtengine::NUMOFEVENTS] = {
|
||||
LUMINANCECURVE, // Evlocallablumonly
|
||||
LUMINANCECURVE, // Evlocallaboffs
|
||||
LUMINANCECURVE, //EvlocallabCTtransCurve
|
||||
LUMINANCECURVE //Evlocallabcliptm
|
||||
LUMINANCECURVE, //Evlocallabcliptm
|
||||
LUMINANCECURVE //Evlocallabenatmmaskaft
|
||||
};
|
||||
|
||||
|
||||
|
@ -353,6 +353,7 @@ Locallab::Locallab():
|
||||
//TM
|
||||
equiltm(Gtk::manage(new Gtk::CheckButton(M("TP_LOCALLAB_EQUIL")))),
|
||||
enatmMask(Gtk::manage(new Gtk::CheckButton(M("TP_LOCALLAB_ENABLE_MASK")))),
|
||||
enatmMaskaft(Gtk::manage(new Gtk::CheckButton(M("TP_LOCALLAB_ENABLE_AFTER_MASK")))),
|
||||
// Retinex
|
||||
equilret(Gtk::manage(new Gtk::CheckButton(M("TP_LOCALLAB_EQUIL")))),
|
||||
inversret(Gtk::manage(new Gtk::CheckButton(M("TP_LOCALLAB_INVERS")))),
|
||||
@ -1242,6 +1243,7 @@ Locallab::Locallab():
|
||||
|
||||
masktmCurveEditorG->curveListComplete();
|
||||
enatmMaskConn = enatmMask->signal_toggled().connect(sigc::mem_fun(*this, &Locallab::enatmMaskChanged));
|
||||
enatmMaskaftConn = enatmMaskaft->signal_toggled().connect(sigc::mem_fun(*this, &Locallab::enatmMaskaftChanged));
|
||||
|
||||
showmasktmMethod->append(M("TP_LOCALLAB_SHOWMNONE"));
|
||||
showmasktmMethod->append(M("TP_LOCALLAB_SHOWMODIF"));
|
||||
@ -1269,6 +1271,7 @@ Locallab::Locallab():
|
||||
ToolParamBlock* const masktmBox = Gtk::manage(new ToolParamBlock());
|
||||
masktmBox->pack_start(*showmasktmMethod, Gtk::PACK_SHRINK, 4);
|
||||
masktmBox->pack_start(*enatmMask, Gtk::PACK_SHRINK, 0);
|
||||
masktmBox->pack_start(*enatmMaskaft, Gtk::PACK_SHRINK, 0);
|
||||
masktmBox->pack_start(*masktmCurveEditorG, Gtk::PACK_SHRINK, 4); // Padding is mandatory to correct behavior of curve editor
|
||||
masktmBox->pack_start(*blendmasktm, Gtk::PACK_SHRINK, 0);
|
||||
masktmBox->pack_start(*radmasktm, Gtk::PACK_SHRINK, 0);
|
||||
@ -3160,6 +3163,7 @@ void Locallab::write(ProcParams* pp, ParamsEdited* pedited)
|
||||
pp->locallab.spots.at(pp->locallab.selspot).CCmasktmcurve = CCmasktmshape->getCurve();
|
||||
pp->locallab.spots.at(pp->locallab.selspot).HHmasktmcurve = HHmasktmshape->getCurve();
|
||||
pp->locallab.spots.at(pp->locallab.selspot).enatmMask = enatmMask->get_active();
|
||||
pp->locallab.spots.at(pp->locallab.selspot).enatmMaskaft = enatmMaskaft->get_active();
|
||||
pp->locallab.spots.at(pp->locallab.selspot).blendmasktm = blendmasktm->getIntValue();
|
||||
pp->locallab.spots.at(pp->locallab.selspot).radmasktm = radmasktm->getValue();
|
||||
pp->locallab.spots.at(pp->locallab.selspot).chromasktm = chromasktm->getValue();
|
||||
@ -3443,6 +3447,7 @@ void Locallab::write(ProcParams* pp, ParamsEdited* pedited)
|
||||
pe->locallab.spots.at(pp->locallab.selspot).LLmasktmcurve = pe->locallab.spots.at(pp->locallab.selspot).LLmasktmcurve || !LLmasktmshape->isUnChanged();
|
||||
pe->locallab.spots.at(pp->locallab.selspot).HHmasktmcurve = pe->locallab.spots.at(pp->locallab.selspot).HHmasktmcurve || !HHmasktmshape->isUnChanged();
|
||||
pe->locallab.spots.at(pp->locallab.selspot).enatmMask = pe->locallab.spots.at(pp->locallab.selspot).enatmMask || !enatmMask->get_inconsistent();
|
||||
pe->locallab.spots.at(pp->locallab.selspot).enatmMaskaft = pe->locallab.spots.at(pp->locallab.selspot).enatmMaskaft || !enatmMask->get_inconsistent();
|
||||
pe->locallab.spots.at(pp->locallab.selspot).blendmasktm = pe->locallab.spots.at(pp->locallab.selspot).blendmasktm || blendmasktm->getEditedState();
|
||||
pe->locallab.spots.at(pp->locallab.selspot).radmasktm = pe->locallab.spots.at(pp->locallab.selspot).radmasktm || radmasktm->getEditedState();
|
||||
pe->locallab.spots.at(pp->locallab.selspot).chromasktm = pe->locallab.spots.at(pp->locallab.selspot).chromasktm || chromasktm->getEditedState();
|
||||
@ -3716,6 +3721,7 @@ void Locallab::write(ProcParams* pp, ParamsEdited* pedited)
|
||||
pedited->locallab.spots.at(pp->locallab.selspot).LLmasktmcurve = pedited->locallab.spots.at(pp->locallab.selspot).LLmasktmcurve || !LLmasktmshape->isUnChanged();
|
||||
pedited->locallab.spots.at(pp->locallab.selspot).HHmasktmcurve = pedited->locallab.spots.at(pp->locallab.selspot).HHmasktmcurve || !HHmasktmshape->isUnChanged();
|
||||
pedited->locallab.spots.at(pp->locallab.selspot).enatmMask = pedited->locallab.spots.at(pp->locallab.selspot).enatmMask || !enatmMask->get_inconsistent();
|
||||
pedited->locallab.spots.at(pp->locallab.selspot).enatmMaskaft = pedited->locallab.spots.at(pp->locallab.selspot).enatmMaskaft || !enatmMaskaft->get_inconsistent();
|
||||
pedited->locallab.spots.at(pp->locallab.selspot).blendmasktm = pedited->locallab.spots.at(pp->locallab.selspot).blendmasktm || blendmasktm->getEditedState();
|
||||
pedited->locallab.spots.at(pp->locallab.selspot).radmasktm = pedited->locallab.spots.at(pp->locallab.selspot).radmasktm || radmasktm->getEditedState();
|
||||
pedited->locallab.spots.at(pp->locallab.selspot).chromasktm = pedited->locallab.spots.at(pp->locallab.selspot).chromasktm || chromasktm->getEditedState();
|
||||
@ -4753,6 +4759,30 @@ void Locallab::enatmMaskChanged()
|
||||
}
|
||||
}
|
||||
|
||||
void Locallab::enatmMaskaftChanged()
|
||||
{
|
||||
printf("enatmmaskaftChanged\n");
|
||||
|
||||
if (multiImage) {
|
||||
if (enatmMaskaft->get_inconsistent()) {
|
||||
enatmMaskaft->set_inconsistent(false);
|
||||
enatmMaskaftConn.block(true);
|
||||
enatmMaskaft->set_active(false);
|
||||
enatmMaskaftConn.block(false);
|
||||
}
|
||||
}
|
||||
|
||||
if (getEnabled() && exptonemap->getEnabled()) {
|
||||
if (listener) {
|
||||
if (enatmMaskaft->get_active()) {
|
||||
listener->panelChanged(EvLocallabEnatmMaskaft, M("GENERAL_ENABLED"));
|
||||
} else {
|
||||
listener->panelChanged(EvLocallabEnatmMaskaft, M("GENERAL_DISABLED"));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void Locallab::enaretiMaskChanged()
|
||||
{
|
||||
@ -7290,6 +7320,7 @@ void Locallab::enableListener()
|
||||
enabletonemapConn.block(false);
|
||||
equiltmConn.block(false);
|
||||
enatmMaskConn.block(false);
|
||||
enatmMaskaftConn.block(false);
|
||||
showmasktmMethodConn.block(false);
|
||||
// Retinex
|
||||
enableretiConn.block(false);
|
||||
@ -7366,6 +7397,7 @@ void Locallab::disableListener()
|
||||
enabletonemapConn.block(true);
|
||||
equiltmConn.block(true);
|
||||
enatmMaskConn.block(true);
|
||||
enatmMaskaftConn.block(true);
|
||||
showmasktmMethodConn.block(true);
|
||||
// Retinex
|
||||
enableretiConn.block(true);
|
||||
@ -7613,6 +7645,7 @@ void Locallab::updateLocallabGUI(const rtengine::procparams::ProcParams* pp, con
|
||||
amount->setValue(pp->locallab.spots.at(index).amount);
|
||||
equiltm->set_active(pp->locallab.spots.at(index).equiltm);
|
||||
enatmMask->set_active(pp->locallab.spots.at(index).enatmMask);
|
||||
enatmMaskaft->set_active(pp->locallab.spots.at(index).enatmMaskaft);
|
||||
blendmasktm->setValue(pp->locallab.spots.at(index).blendmasktm);
|
||||
radmasktm->setValue(pp->locallab.spots.at(index).radmasktm);
|
||||
chromasktm->setValue(pp->locallab.spots.at(index).chromasktm);
|
||||
@ -7945,6 +7978,7 @@ void Locallab::updateLocallabGUI(const rtengine::procparams::ProcParams* pp, con
|
||||
LLmasktmshape->setUnChanged(!spotState->LLmasktmcurve);
|
||||
HHmasktmshape->setUnChanged(!spotState->HHmasktmcurve);
|
||||
enatmMask->set_inconsistent(multiImage && !spotState->enatmMask);
|
||||
enatmMaskaft->set_inconsistent(multiImage && !spotState->enatmMaskaft);
|
||||
blendmasktm->setEditedState(spotState->blendmasktm ? Edited : UnEdited);
|
||||
radmasktm->setEditedState(spotState->radmasktm ? Edited : UnEdited);
|
||||
chromasktm->setEditedState(spotState->chromasktm ? Edited : UnEdited);
|
||||
|
@ -316,6 +316,8 @@ private:
|
||||
sigc::connection equiltmConn;
|
||||
Gtk::CheckButton* const enatmMask;
|
||||
sigc::connection enatmMaskConn;
|
||||
Gtk::CheckButton* const enatmMaskaft;
|
||||
sigc::connection enatmMaskaftConn;
|
||||
// Retinex
|
||||
Gtk::CheckButton* const equilret;
|
||||
sigc::connection equilretConn;
|
||||
@ -471,6 +473,7 @@ private:
|
||||
//TM
|
||||
void equiltmChanged();
|
||||
void enatmMaskChanged();
|
||||
void enatmMaskaftChanged();
|
||||
// Retinex
|
||||
void equilretChanged();
|
||||
void loglinChanged();
|
||||
|
@ -1111,6 +1111,7 @@ void ParamsEdited::initFrom(const std::vector<rtengine::procparams::ProcParams>&
|
||||
locallab.spots.at(j).LLmasktmcurve = locallab.spots.at(j).LLmasktmcurve && pSpot.LLmasktmcurve == otherSpot.LLmasktmcurve;
|
||||
locallab.spots.at(j).HHmasktmcurve = locallab.spots.at(j).HHmasktmcurve && pSpot.HHmasktmcurve == otherSpot.HHmasktmcurve;
|
||||
locallab.spots.at(j).enatmMask = locallab.spots.at(j).enatmMask && pSpot.enatmMask == otherSpot.enatmMask;
|
||||
locallab.spots.at(j).enatmMaskaft = locallab.spots.at(j).enatmMaskaft && pSpot.enatmMaskaft == otherSpot.enatmMaskaft;
|
||||
locallab.spots.at(j).blendmasktm = locallab.spots.at(j).blendmasktm && pSpot.blendmasktm == otherSpot.blendmasktm;
|
||||
locallab.spots.at(j).radmasktm = locallab.spots.at(j).radmasktm && pSpot.radmasktm == otherSpot.radmasktm;
|
||||
locallab.spots.at(j).chromasktm = locallab.spots.at(j).chromasktm && pSpot.chromasktm == otherSpot.chromasktm;
|
||||
@ -3296,6 +3297,10 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng
|
||||
toEdit.locallab.spots.at(i).enatmMask = mods.locallab.spots.at(i).enatmMask;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).enatmMaskaft) {
|
||||
toEdit.locallab.spots.at(i).enatmMaskaft = mods.locallab.spots.at(i).enatmMaskaft;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(i).blendmasktm) {
|
||||
toEdit.locallab.spots.at(i).blendmasktm = mods.locallab.spots.at(i).blendmasktm;
|
||||
}
|
||||
@ -4804,6 +4809,7 @@ LocallabParamsEdited::LocallabSpotEdited::LocallabSpotEdited(bool v) :
|
||||
LLmasktmcurve(v),
|
||||
HHmasktmcurve(v),
|
||||
enatmMask(v),
|
||||
enatmMaskaft(v),
|
||||
blendmasktm(v),
|
||||
radmasktm(v),
|
||||
chromasktm(v),
|
||||
@ -5068,6 +5074,7 @@ void LocallabParamsEdited::LocallabSpotEdited::set(bool v)
|
||||
LLmasktmcurve = v;
|
||||
HHmasktmcurve = v;
|
||||
enatmMask = v;
|
||||
enatmMaskaft = v;
|
||||
blendmasktm = v;
|
||||
radmasktm = v;
|
||||
chromasktm = v;
|
||||
|
@ -529,6 +529,7 @@ public:
|
||||
bool LLmasktmcurve;
|
||||
bool HHmasktmcurve;
|
||||
bool enatmMask;
|
||||
bool enatmMaskaft;
|
||||
bool blendmasktm;
|
||||
bool radmasktm;
|
||||
bool chromasktm;
|
||||
|
Loading…
x
Reference in New Issue
Block a user