Added common mask wavelet curve

This commit is contained in:
Desmis 2020-06-22 22:36:02 +02:00
parent 476ea4861a
commit e3bed2c920
8 changed files with 61 additions and 6 deletions

View File

@ -971,6 +971,7 @@ enum ProcEventCode {
Evlocallabcontmask = 945, Evlocallabcontmask = 945,
Evlocallabshadmask = 946, Evlocallabshadmask = 946,
EvlocallabLmask_shape = 947, EvlocallabLmask_shape = 947,
EvlocallabLLmask_shapewav = 948,
NUMOFEVENTS NUMOFEVENTS
}; };

View File

@ -3817,6 +3817,17 @@ LocallabParams::LocallabSpot::LocallabSpot() :
0.0, 0.0,
1.0, 1.0,
1.0 1.0
},
LLmask_curvewav{
static_cast<double>(FCT_MinMaxCPoints),
0.0,
0.5,
0.35,
0.35,
1.,
0.5,
0.35,
0.35
} }
@ -4312,7 +4323,8 @@ bool LocallabParams::LocallabSpot::operator ==(const LocallabSpot& other) const
&& slopmask == other.slopmask && slopmask == other.slopmask
&& shadmask == other.shadmask && shadmask == other.shadmask
&& HHhmask_curve == other.HHhmask_curve && HHhmask_curve == other.HHhmask_curve
&& Lmask_curve == other.Lmask_curve; && Lmask_curve == other.Lmask_curve
&& LLmask_curvewav == other.LLmask_curvewav;
} }
@ -5830,6 +5842,7 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo
saveToKeyfile(!pedited || spot_edited->shadmask, "Locallab", "Shadmask_" + index_str, spot.shadmask, keyFile); saveToKeyfile(!pedited || spot_edited->shadmask, "Locallab", "Shadmask_" + index_str, spot.shadmask, keyFile);
saveToKeyfile(!pedited || spot_edited->HHhmask_curve, "Locallab", "HHhmask_Curve_" + index_str, spot.HHhmask_curve, 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->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);
} }
} }
} }
@ -7566,6 +7579,7 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited)
assignFromKeyfile(keyFile, "Locallab", "Shadmask_" + index_str, pedited, spot.shadmask, spotEdited.shadmask); assignFromKeyfile(keyFile, "Locallab", "Shadmask_" + index_str, pedited, spot.shadmask, spotEdited.shadmask);
assignFromKeyfile(keyFile, "Locallab", "HHhmask_Curve_" + index_str, pedited, spot.HHhmask_curve, spotEdited.HHhmask_curve); 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", "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);
if (spot.visimask) { if (spot.visimask) {
spotEdited.visimask = true; spotEdited.visimask = true;

View File

@ -1444,6 +1444,7 @@ struct LocallabParams {
double shadmask; double shadmask;
std::vector<double> HHhmask_curve; std::vector<double> HHhmask_curve;
std::vector<double> Lmask_curve; std::vector<double> Lmask_curve;
std::vector<double> LLmask_curvewav;
LocallabSpot(); LocallabSpot();

View File

@ -974,7 +974,8 @@ int refreshmap[rtengine::NUMOFEVENTS] = {
LUMINANCECURVE, // Evlocallabblurmask LUMINANCECURVE, // Evlocallabblurmask
LUMINANCECURVE, // Evlocallabcontmask LUMINANCECURVE, // Evlocallabcontmask
LUMINANCECURVE, // Evlocallabshadmask LUMINANCECURVE, // Evlocallabshadmask
LUMINANCECURVE // EvlocallabLmask_shape LUMINANCECURVE, // EvlocallabLmask_shape
LUMINANCECURVE // EvlocallabLLmask_shapewav
}; };

View File

@ -1230,6 +1230,8 @@ private:
FlatCurveEditor* const HHhmask_shape; FlatCurveEditor* const HHhmask_shape;
CurveEditorGroup* const mask2CurveEditorG; CurveEditorGroup* const mask2CurveEditorG;
DiagonalCurveEditor* const Lmask_shape; DiagonalCurveEditor* const Lmask_shape;
CurveEditorGroup* const mask2CurveEditorGwav;
FlatCurveEditor* const LLmask_shapewav;
sigc::connection showmaskMethodConn, enamaskConn, toolmaskConn, fftmaskConn; sigc::connection showmaskMethodConn, enamaskConn, toolmaskConn, fftmaskConn;

View File

@ -4757,7 +4757,9 @@ LocallabMask::LocallabMask():
mask_HCurveEditorG(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_MASKH"))), mask_HCurveEditorG(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_MASKH"))),
HHhmask_shape(static_cast<FlatCurveEditor *>(mask_HCurveEditorG->addCurve(CT_Flat, "H(H)", nullptr, false, true))), HHhmask_shape(static_cast<FlatCurveEditor *>(mask_HCurveEditorG->addCurve(CT_Flat, "H(H)", nullptr, false, true))),
mask2CurveEditorG(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_MASK2"))), mask2CurveEditorG(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_MASK2"))),
Lmask_shape(static_cast<DiagonalCurveEditor*>(mask2CurveEditorG->addCurve(CT_Diagonal, "L(L)"))) 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)))
{ {
// Parameter Mask common specific widgets // Parameter Mask common specific widgets
@ -4826,6 +4828,14 @@ LocallabMask::LocallabMask():
mask2CurveEditorG->curveListComplete(); mask2CurveEditorG->curveListComplete();
mask2CurveEditorGwav->setCurveListener(this);
LLmask_shapewav->setIdentityValue(0.);
LLmask_shapewav->setResetCurve(FlatCurveType(defSpot.LLmask_curvewav.at(0)), defSpot.LLmask_curvewav);
LLmask_shapewav->setBottomBarBgGradient({{0., 0., 0., 0.}, {1., 1., 1., 1.}});
mask2CurveEditorGwav->curveListComplete();
pack_start(*sensimask, Gtk::PACK_SHRINK, 0); pack_start(*sensimask, Gtk::PACK_SHRINK, 0);
pack_start(*blendmask, Gtk::PACK_SHRINK, 0); pack_start(*blendmask, Gtk::PACK_SHRINK, 0);
@ -4860,6 +4870,7 @@ LocallabMask::LocallabMask():
toolmaskBox->pack_start(*shadmask, Gtk::PACK_SHRINK, 0); toolmaskBox->pack_start(*shadmask, Gtk::PACK_SHRINK, 0);
toolmaskBox->pack_start(*mask_HCurveEditorG, Gtk::PACK_SHRINK, 4); // Padding is mandatory to correct behavior of curve editor toolmaskBox->pack_start(*mask_HCurveEditorG, Gtk::PACK_SHRINK, 4); // Padding is mandatory to correct behavior of curve editor
toolmaskBox->pack_start(*mask2CurveEditorG, Gtk::PACK_SHRINK, 4); // Padding is mandatory to correct behavior of curve editor 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
toolmaskFrame->add(*toolmaskBox); toolmaskFrame->add(*toolmaskBox);
maskmaskBox->pack_start(*toolmaskFrame); maskmaskBox->pack_start(*toolmaskFrame);
pack_start(*maskmaskBox); pack_start(*maskmaskBox);
@ -4900,6 +4911,8 @@ void LocallabMask::updateAdviceTooltips(const bool showTooltips)
lapmask->set_tooltip_text(M("TP_LOCALLAB_LAPRAD_TOOLTIP")); lapmask->set_tooltip_text(M("TP_LOCALLAB_LAPRAD_TOOLTIP"));
mask2CurveEditorG->set_tooltip_text(M("TP_LOCALLAB_WAVMASK_TOOLTIP")); mask2CurveEditorG->set_tooltip_text(M("TP_LOCALLAB_WAVMASK_TOOLTIP"));
Lmask_shape->setTooltip(M("TP_LOCALLAB_LMASK_LL_TOOLTIP")); Lmask_shape->setTooltip(M("TP_LOCALLAB_LMASK_LL_TOOLTIP"));
mask2CurveEditorGwav->set_tooltip_text(M("TP_LOCALLAB_WAVMASK_TOOLTIP"));
LLmask_shapewav->setTooltip(M("TP_LOCALLAB_LMASK_LEVEL_TOOLTIP"));
} else { } else {
exp->set_tooltip_text(M("")); exp->set_tooltip_text(M(""));
@ -4914,6 +4927,8 @@ void LocallabMask::updateAdviceTooltips(const bool showTooltips)
lapmask->set_tooltip_text(M("")); lapmask->set_tooltip_text(M(""));
mask2CurveEditorG->set_tooltip_text(M("")); mask2CurveEditorG->set_tooltip_text(M(""));
Lmask_shape->setTooltip(M("")); Lmask_shape->setTooltip(M(""));
mask2CurveEditorGwav->set_tooltip_text(M(""));
LLmask_shapewav->setTooltip(M(""));
} }
} }
@ -4922,6 +4937,7 @@ LocallabMask::~LocallabMask()
delete mask_CurveEditorG; delete mask_CurveEditorG;
delete mask_HCurveEditorG; delete mask_HCurveEditorG;
delete mask2CurveEditorG; delete mask2CurveEditorG;
delete mask2CurveEditorGwav;
} }
void LocallabMask::disableListener() void LocallabMask::disableListener()
@ -4997,6 +5013,7 @@ void LocallabMask::read(const rtengine::procparams::ProcParams* pp, const Params
HHhmask_shape->setCurve(spot.HHhmask_curve); HHhmask_shape->setCurve(spot.HHhmask_curve);
fftmask->set_active(spot.fftmask); fftmask->set_active(spot.fftmask);
Lmask_shape->setCurve(spot.Lmask_curve); Lmask_shape->setCurve(spot.Lmask_curve);
LLmask_shapewav->setCurve(spot.LLmask_curvewav);
} }
@ -5042,6 +5059,7 @@ void LocallabMask::write(rtengine::procparams::ProcParams* pp, ParamsEdited* ped
spot.contmask = contmask->getValue(); spot.contmask = contmask->getValue();
spot.blurmask = blurmask->getValue(); spot.blurmask = blurmask->getValue();
spot.Lmask_curve = Lmask_shape->getCurve(); spot.Lmask_curve = Lmask_shape->getCurve();
spot.LLmask_curvewav = LLmask_shapewav->getCurve();
} }
@ -5104,7 +5122,8 @@ void LocallabMask::updateGUIToMode(const modeType new_type)
blurFrame->hide(); blurFrame->hide();
mask_HCurveEditorG->hide(); mask_HCurveEditorG->hide();
// mask2CurveEditorG->hide(); // mask2CurveEditorG->hide();
mask2CurveEditorGwav->hide();
} else { } else {
// Advanced widgets are shown in Expert mode // Advanced widgets are shown in Expert mode
lapmask->show(); lapmask->show();
@ -5115,7 +5134,8 @@ void LocallabMask::updateGUIToMode(const modeType new_type)
blurFrame->show(); blurFrame->show();
mask_HCurveEditorG->show(); mask_HCurveEditorG->show();
// mask2CurveEditorG->show(); // mask2CurveEditorG->show();
mask2CurveEditorGwav->show();
} }
} }
@ -5138,6 +5158,7 @@ void LocallabMask::convertParamToNormal()
contmask->setValue(defSpot.contmask); contmask->setValue(defSpot.contmask);
HHhmask_shape->setCurve(defSpot.HHhmask_curve); HHhmask_shape->setCurve(defSpot.HHhmask_curve);
// Lmask_shape->setCurve(defSpot.Lmask_curve); // Lmask_shape->setCurve(defSpot.Lmask_curve);
LLmask_shapewav->setCurve(defSpot.LLmask_curvewav);
// Enable all listeners // Enable all listeners
enableListener(); enableListener();
@ -5233,6 +5254,13 @@ void LocallabMask::curveChanged(CurveEditor* ce)
} }
} }
if (ce == LLmask_shapewav) {
if (listener) {
listener->panelChanged(EvlocallabLLmask_shapewav,
M("HISTORY_CUSTOMCURVE") + " (" + escapeHtmlChars(spotName) + ")");
}
}
} }
} }

View File

@ -1500,6 +1500,7 @@ void ParamsEdited::initFrom(const std::vector<rtengine::procparams::ProcParams>&
locallab.spots.at(j).shadmask = locallab.spots.at(j).shadmask && pSpot.shadmask == otherSpot.shadmask; locallab.spots.at(j).shadmask = locallab.spots.at(j).shadmask && pSpot.shadmask == otherSpot.shadmask;
locallab.spots.at(j).HHhmask_curve = locallab.spots.at(j).HHhmask_curve && pSpot.HHhmask_curve == otherSpot.HHhmask_curve; 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).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;
} }
} }
@ -4894,6 +4895,10 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng
toEdit.locallab.spots.at(i).Lmask_curve = mods.locallab.spots.at(i).Lmask_curve; toEdit.locallab.spots.at(i).Lmask_curve = mods.locallab.spots.at(i).Lmask_curve;
} }
if (locallab.spots.at(i).LLmask_curvewav) {
toEdit.locallab.spots.at(i).LLmask_curvewav = mods.locallab.spots.at(i).LLmask_curvewav;
}
} }
if (pcvignette.enabled) { if (pcvignette.enabled) {
@ -6485,7 +6490,8 @@ LocallabParamsEdited::LocallabSpotEdited::LocallabSpotEdited(bool v) :
slopmask(v), slopmask(v),
shadmask(v), shadmask(v),
HHhmask_curve(v), HHhmask_curve(v),
Lmask_curve(v) Lmask_curve(v),
LLmask_curvewav(v)
{ {
} }
@ -6970,6 +6976,7 @@ void LocallabParamsEdited::LocallabSpotEdited::set(bool v)
shadmask = v; shadmask = v;
HHhmask_curve =(v); HHhmask_curve =(v);
Lmask_curve =(v); Lmask_curve =(v);
LLmask_curvewav =(v);
} }
bool CaptureSharpeningParamsEdited::isUnchanged() const bool CaptureSharpeningParamsEdited::isUnchanged() const

View File

@ -858,6 +858,7 @@ public:
bool shadmask; bool shadmask;
bool HHhmask_curve; bool HHhmask_curve;
bool Lmask_curve; bool Lmask_curve;
bool LLmask_curvewav;
LocallabSpotEdited(bool v); LocallabSpotEdited(bool v);