Save provisory work GUI
This commit is contained in:
parent
7c79cc7184
commit
cf214c7a1b
@ -1118,7 +1118,7 @@ void Crop::update(int todo)
|
|||||||
locwavCurveden, locwavdenutili,
|
locwavCurveden, locwavdenutili,
|
||||||
LHutili, HHutili, cclocalcurve2, localcutili, rgblocalcurve2, localrgbutili, localexutili, exlocalcurve2, hltonecurveloc2, shtonecurveloc2, tonecurveloc2, lightCurveloc2,
|
LHutili, HHutili, cclocalcurve2, localcutili, rgblocalcurve2, localrgbutili, localexutili, exlocalcurve2, hltonecurveloc2, shtonecurveloc2, tonecurveloc2, lightCurveloc2,
|
||||||
huerefblu, chromarefblu, lumarefblu, huere, chromare, lumare, sobelre, lastsav,
|
huerefblu, chromarefblu, lumarefblu, huere, chromare, lumare, sobelre, lastsav,
|
||||||
parent->locallColorMask, parent->locallColorMaskinv, parent->locallExpMask, parent->locallExpMaskinv, parent->locallSHMask, parent->locallSHMaskinv, parent->locallvibMask, parent->locallcbMask, parent->locallretiMask, parent->locallsoftMask, parent->localltmMask, parent->locallblMask,
|
parent->locallColorMask, parent->locallColorMaskinv, parent->locallExpMask, parent->locallExpMaskinv, parent->locallSHMask, parent->locallSHMaskinv, parent->locallvibMask, parent->localllcMask, parent->locallcbMask, parent->locallretiMask, parent->locallsoftMask, parent->localltmMask, parent->locallblMask,
|
||||||
minCD, maxCD, mini, maxi, Tmean, Tsigma, Tmin, Tmax);
|
minCD, maxCD, mini, maxi, Tmean, Tsigma, Tmin, Tmax);
|
||||||
if (parent->locallListener) {
|
if (parent->locallListener) {
|
||||||
parent->locallListener->minmaxChanged(maxCD, minCD, mini, maxi, Tmean, Tsigma, Tmin, Tmax);
|
parent->locallListener->minmaxChanged(maxCD, minCD, mini, maxi, Tmean, Tsigma, Tmin, Tmax);
|
||||||
@ -1152,7 +1152,7 @@ void Crop::update(int todo)
|
|||||||
loccompwavCurve, loccompwavutili,
|
loccompwavCurve, loccompwavutili,
|
||||||
locwavCurveden, locwavdenutili,
|
locwavCurveden, locwavdenutili,
|
||||||
LHutili, HHutili, cclocalcurve2, localcutili, rgblocalcurve2, localrgbutili, localexutili, exlocalcurve2, hltonecurveloc2, shtonecurveloc2, tonecurveloc2, lightCurveloc2,
|
LHutili, HHutili, cclocalcurve2, localcutili, rgblocalcurve2, localrgbutili, localexutili, exlocalcurve2, hltonecurveloc2, shtonecurveloc2, tonecurveloc2, lightCurveloc2,
|
||||||
huerefblu, chromarefblu, lumarefblu, huere, chromare, lumare, sobelre, lastsav, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
huerefblu, chromarefblu, lumarefblu, huere, chromare, lumare, sobelre, lastsav, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
minCD, maxCD, mini, maxi, Tmean, Tsigma, Tmin, Tmax);
|
minCD, maxCD, mini, maxi, Tmean, Tsigma, Tmin, Tmax);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1239,7 +1239,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange)
|
|||||||
locwavCurveden, locwavdenutili,
|
locwavCurveden, locwavdenutili,
|
||||||
LHutili, HHutili, cclocalcurve, localcutili, rgblocalcurve, localrgbutili, localexutili, exlocalcurve, hltonecurveloc, shtonecurveloc, tonecurveloc, lightCurveloc,
|
LHutili, HHutili, cclocalcurve, localcutili, rgblocalcurve, localrgbutili, localexutili, exlocalcurve, hltonecurveloc, shtonecurveloc, tonecurveloc, lightCurveloc,
|
||||||
huerblu, chromarblu, lumarblu, huer, chromar, lumar, sobeler, lastsav,
|
huerblu, chromarblu, lumarblu, huer, chromar, lumar, sobeler, lastsav,
|
||||||
locallColorMask, locallColorMaskinv, locallExpMask, locallExpMaskinv, locallSHMask, locallSHMaskinv, locallvibMask, locallcbMask, locallretiMask, locallsoftMask, localltmMask, locallblMask,
|
locallColorMask, locallColorMaskinv, locallExpMask, locallExpMaskinv, locallSHMask, locallSHMaskinv, locallvibMask, localllcMask, locallcbMask, locallretiMask, locallsoftMask, localltmMask, locallblMask,
|
||||||
minCD, maxCD, mini, maxi, Tmean, Tsigma, Tmin, Tmax);
|
minCD, maxCD, mini, maxi, Tmean, Tsigma, Tmin, Tmax);
|
||||||
|
|
||||||
if (locallListener) {
|
if (locallListener) {
|
||||||
@ -1278,7 +1278,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange)
|
|||||||
loccompwavCurve, loccompwavutili,
|
loccompwavCurve, loccompwavutili,
|
||||||
locwavCurveden, locwavdenutili,
|
locwavCurveden, locwavdenutili,
|
||||||
LHutili, HHutili, cclocalcurve, localcutili, rgblocalcurve, localrgbutili, localexutili, exlocalcurve, hltonecurveloc, shtonecurveloc, tonecurveloc, lightCurveloc,
|
LHutili, HHutili, cclocalcurve, localcutili, rgblocalcurve, localrgbutili, localexutili, exlocalcurve, hltonecurveloc, shtonecurveloc, tonecurveloc, lightCurveloc,
|
||||||
huerblu, chromarblu, lumarblu, huer, chromar, lumar, sobeler, lastsav, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
huerblu, chromarblu, lumarblu, huer, chromar, lumar, sobeler, lastsav, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
minCD, maxCD, mini, maxi, Tmean, Tsigma, Tmin, Tmax);
|
minCD, maxCD, mini, maxi, Tmean, Tsigma, Tmin, Tmax);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -357,6 +357,7 @@ protected:
|
|||||||
int locallSHMask;
|
int locallSHMask;
|
||||||
int locallSHMaskinv;
|
int locallSHMaskinv;
|
||||||
int locallvibMask;
|
int locallvibMask;
|
||||||
|
int localllcMask;
|
||||||
int locallcbMask;
|
int locallcbMask;
|
||||||
int locallretiMask;
|
int locallretiMask;
|
||||||
int locallsoftMask;
|
int locallsoftMask;
|
||||||
@ -431,7 +432,7 @@ public:
|
|||||||
updaterThreadStart.unlock();
|
updaterThreadStart.unlock();
|
||||||
}
|
}
|
||||||
|
|
||||||
void setLocallabMaskVisibility (int locallColorMask, int locallColorMaskinv, int locallExpMask, int locallExpMaskinv, int locallSHMask, int locallSHMaskinv, int locallvibMask, int locallcbMask, int locallretiMask, int locallsoftMask, int localltmMask, int locallblMask) override
|
void setLocallabMaskVisibility (int locallColorMask, int locallColorMaskinv, int locallExpMask, int locallExpMaskinv, int locallSHMask, int locallSHMaskinv, int locallvibMask, int localllcMask, int locallcbMask, int locallretiMask, int locallsoftMask, int localltmMask, int locallblMask) override
|
||||||
{
|
{
|
||||||
this->locallColorMask = locallColorMask;
|
this->locallColorMask = locallColorMask;
|
||||||
this->locallColorMaskinv = locallColorMaskinv;
|
this->locallColorMaskinv = locallColorMaskinv;
|
||||||
@ -440,6 +441,7 @@ public:
|
|||||||
this->locallSHMask = locallSHMask;
|
this->locallSHMask = locallSHMask;
|
||||||
this->locallvibMask = locallvibMask;
|
this->locallvibMask = locallvibMask;
|
||||||
this->locallSHMaskinv = locallSHMaskinv;
|
this->locallSHMaskinv = locallSHMaskinv;
|
||||||
|
this->localllcMask = localllcMask;
|
||||||
this->locallcbMask = locallcbMask;
|
this->locallcbMask = locallcbMask;
|
||||||
this->locallretiMask = locallretiMask;
|
this->locallretiMask = locallretiMask;
|
||||||
this->locallsoftMask = locallsoftMask;
|
this->locallsoftMask = locallsoftMask;
|
||||||
|
@ -304,7 +304,7 @@ public:
|
|||||||
const LocwavCurve & locwavCurveden, bool & locwavdenutili,
|
const LocwavCurve & locwavCurveden, bool & locwavdenutili,
|
||||||
bool &LHutili, bool &HHutili, LUTf & cclocalcurve, bool & localcutili, LUTf & rgblocalcurve, bool & localrgbutili, bool & localexutili, LUTf & exlocalcurve, LUTf & hltonecurveloc, LUTf & shtonecurveloc, LUTf & tonecurveloc, LUTf & lightCurveloc,
|
bool &LHutili, bool &HHutili, LUTf & cclocalcurve, bool & localcutili, LUTf & rgblocalcurve, bool & localrgbutili, bool & localexutili, LUTf & exlocalcurve, LUTf & hltonecurveloc, LUTf & shtonecurveloc, LUTf & tonecurveloc, LUTf & lightCurveloc,
|
||||||
double & huerefblur, double &chromarefblur, double & lumarefblur, double &hueref, double &chromaref, double &lumaref, double &sobelref, int &lastsav,
|
double & huerefblur, double &chromarefblur, double & lumarefblur, double &hueref, double &chromaref, double &lumaref, double &sobelref, int &lastsav,
|
||||||
int llColorMask, int llColorMaskinv, int llExpMask, int llExpMaskinv, int llSHMask, int llSHMaskinv, int llvibMask, int llcbMask, int llretiMask, int llsoftMask, int lltmMask, int llblMask,
|
int llColorMask, int llColorMaskinv, int llExpMask, int llExpMaskinv, int llSHMask, int llSHMaskinv, int llvibMask, int lllcMask, int llcbMask, int llretiMask, int llsoftMask, int lltmMask, int llblMask,
|
||||||
float &minCD, float &maxCD, float &mini, float &maxi, float &Tmean, float &Tsigma, float &Tmin, float &Tmax);
|
float &minCD, float &maxCD, float &mini, float &maxi, float &Tmean, float &Tsigma, float &Tmin, float &Tmax);
|
||||||
|
|
||||||
void addGaNoise(LabImage *lab, LabImage *dst, const float mean, const float variance, const int sk);
|
void addGaNoise(LabImage *lab, LabImage *dst, const float mean, const float variance, const int sk);
|
||||||
|
@ -312,6 +312,7 @@ struct local_params {
|
|||||||
int showmaskSHmet;
|
int showmaskSHmet;
|
||||||
int showmaskSHmetinv;
|
int showmaskSHmetinv;
|
||||||
int showmaskvibmet;
|
int showmaskvibmet;
|
||||||
|
int showmasklcmet;
|
||||||
int showmaskcbmet;
|
int showmaskcbmet;
|
||||||
int showmaskretimet;
|
int showmaskretimet;
|
||||||
int showmasksoftmet;
|
int showmasksoftmet;
|
||||||
@ -389,6 +390,7 @@ struct local_params {
|
|||||||
bool enaSHMask;
|
bool enaSHMask;
|
||||||
bool enaSHMaskinv;
|
bool enaSHMaskinv;
|
||||||
bool enavibMask;
|
bool enavibMask;
|
||||||
|
bool enalcMask;
|
||||||
bool enacbMask;
|
bool enacbMask;
|
||||||
bool enaretiMask;
|
bool enaretiMask;
|
||||||
bool enaretiMasktmap;
|
bool enaretiMasktmap;
|
||||||
@ -498,7 +500,7 @@ static void SobelCannyLuma(float **sobelL, float **luma, int bfw, int bfh, float
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void calcLocalParams(int sp, int oW, int oH, const LocallabParams& locallab, struct local_params& lp, int llColorMask, int llColorMaskinv, int llExpMask, int llExpMaskinv, int llSHMask, int llSHMaskinv, int llvibMask, int llcbMask, int llretiMask, int llsoftMask, int lltmMask, int llblMask, const LocwavCurve & locwavCurveden, bool & locwavdenutili)
|
static void calcLocalParams(int sp, int oW, int oH, const LocallabParams& locallab, struct local_params& lp, int llColorMask, int llColorMaskinv, int llExpMask, int llExpMaskinv, int llSHMask, int llSHMaskinv, int llvibMask, int lllcMask, int llcbMask, int llretiMask, int llsoftMask, int lltmMask, int llblMask, const LocwavCurve & locwavCurveden, bool & locwavdenutili)
|
||||||
{
|
{
|
||||||
int w = oW;
|
int w = oW;
|
||||||
int h = oH;
|
int h = oH;
|
||||||
@ -585,22 +587,24 @@ static void calcLocalParams(int sp, int oW, int oH, const LocallabParams& locall
|
|||||||
lp.showmaskSHmet = llSHMask;
|
lp.showmaskSHmet = llSHMask;
|
||||||
lp.showmaskSHmetinv = llSHMaskinv;
|
lp.showmaskSHmetinv = llSHMaskinv;
|
||||||
lp.showmaskvibmet = llvibMask;
|
lp.showmaskvibmet = llvibMask;
|
||||||
|
lp.showmasklcmet = lllcMask;
|
||||||
lp.showmaskcbmet = llcbMask;
|
lp.showmaskcbmet = llcbMask;
|
||||||
lp.showmaskretimet = llretiMask;
|
lp.showmaskretimet = llretiMask;
|
||||||
lp.showmasksoftmet = llsoftMask;
|
lp.showmasksoftmet = llsoftMask;
|
||||||
lp.showmasktmmet = lltmMask;
|
lp.showmasktmmet = lltmMask;
|
||||||
lp.showmaskblmet = llblMask;
|
lp.showmaskblmet = llblMask;
|
||||||
lp.enaColorMask = locallab.spots.at(sp).enaColorMask && llColorMask == 0 && llExpMask == 0 && llSHMask == 0 && llcbMask == 0 && llretiMask == 0 && lltmMask == 0 && llblMask == 0 && llvibMask == 0;// Exposure mask is deactivated if Color & Light mask is visible
|
lp.enaColorMask = locallab.spots.at(sp).enaColorMask && llColorMask == 0 && lllcMask == 0 && llExpMask == 0 && llSHMask == 0 && llcbMask == 0 && llretiMask == 0 && lltmMask == 0 && llblMask == 0 && llvibMask == 0;// Exposure mask is deactivated if Color & Light mask is visible
|
||||||
lp.enaColorMaskinv = locallab.spots.at(sp).enaColorMask && llColorMaskinv == 0 && llExpMask == 0 && llSHMask == 0 && llcbMask == 0 && llretiMask == 0 && lltmMask == 0 && llblMask == 0 && llvibMask == 0;// Exposure mask is deactivated if Color & Light mask is visible
|
lp.enaColorMaskinv = locallab.spots.at(sp).enaColorMask && llColorMaskinv == 0 && lllcMask == 0 && llExpMask == 0 && llSHMask == 0 && llcbMask == 0 && llretiMask == 0 && lltmMask == 0 && llblMask == 0 && llvibMask == 0;// Exposure mask is deactivated if Color & Light mask is visible
|
||||||
lp.enaExpMask = locallab.spots.at(sp).enaExpMask && llExpMask == 0 && llColorMask == 0 && llSHMask == 0 && llcbMask == 0 && llretiMask == 0 && lltmMask == 0 && llblMask == 0 && llvibMask == 0;// Exposure mask is deactivated if Color & Light mask is visible
|
lp.enaExpMask = locallab.spots.at(sp).enaExpMask && llExpMask == 0 && llColorMask == 0 && lllcMask == 0 && llSHMask == 0 && llcbMask == 0 && llretiMask == 0 && lltmMask == 0 && llblMask == 0 && llvibMask == 0;// Exposure mask is deactivated if Color & Light mask is visible
|
||||||
lp.enaExpMaskinv = locallab.spots.at(sp).enaExpMask && llExpMaskinv == 0 && llColorMask == 0 && llSHMask == 0 && llcbMask == 0 && llretiMask == 0 && lltmMask == 0 && llblMask == 0 && llvibMask == 0;// Exposure mask is deactivated if Color & Light mask is visible
|
lp.enaExpMaskinv = locallab.spots.at(sp).enaExpMask && llExpMaskinv == 0 && llColorMask == 0 && lllcMask == 0 && llSHMask == 0 && llcbMask == 0 && llretiMask == 0 && lltmMask == 0 && llblMask == 0 && llvibMask == 0;// Exposure mask is deactivated if Color & Light mask is visible
|
||||||
lp.enaSHMask = locallab.spots.at(sp).enaSHMask && llSHMask == 0 && llColorMask == 0 && llExpMask == 0 && llcbMask == 0 && llretiMask == 0 && lltmMask == 0 && llblMask == 0 && llvibMask == 0;
|
lp.enaSHMask = locallab.spots.at(sp).enaSHMask && llSHMask == 0 && llColorMask == 0 && lllcMask == 0 && llExpMask == 0 && llcbMask == 0 && llretiMask == 0 && lltmMask == 0 && llblMask == 0 && llvibMask == 0;
|
||||||
lp.enaSHMaskinv = locallab.spots.at(sp).enaSHMask && llSHMaskinv == 0 && llColorMask == 0 && llExpMask == 0 && llcbMask == 0 && llretiMask == 0 && lltmMask == 0 && llblMask == 0 && llvibMask == 0;
|
lp.enaSHMaskinv = locallab.spots.at(sp).enaSHMask && llSHMaskinv == 0 && lllcMask == 0 && llColorMask == 0 && llExpMask == 0 && llcbMask == 0 && llretiMask == 0 && lltmMask == 0 && llblMask == 0 && llvibMask == 0;
|
||||||
lp.enacbMask = locallab.spots.at(sp).enacbMask && llcbMask == 0 && llColorMask == 0 && llExpMask == 0 && llSHMask == 0 && llretiMask == 0 && lltmMask == 0 && llblMask == 0 && llvibMask == 0;
|
lp.enacbMask = locallab.spots.at(sp).enacbMask && llcbMask == 0 && lllcMask == 0 && llColorMask == 0 && llExpMask == 0 && llSHMask == 0 && llretiMask == 0 && lltmMask == 0 && llblMask == 0 && llvibMask == 0;
|
||||||
lp.enaretiMask = locallab.spots.at(sp).enaretiMask && llretiMask == 0 && llColorMask == 0 && llExpMask == 0 && llSHMask == 0 && llcbMask == 0 && lltmMask == 0 && llblMask == 0 && llvibMask == 0;
|
lp.enaretiMask = locallab.spots.at(sp).enaretiMask && lllcMask == 0 && llretiMask == 0 && llColorMask == 0 && llExpMask == 0 && llSHMask == 0 && llcbMask == 0 && lltmMask == 0 && llblMask == 0 && llvibMask == 0;
|
||||||
lp.enatmMask = locallab.spots.at(sp).enatmMask && lltmMask == 0 && llColorMask == 0 && llExpMask == 0 && llSHMask == 0 && llcbMask == 0 && llretiMask == 0 && llblMask == 0 && llvibMask == 0;
|
lp.enatmMask = locallab.spots.at(sp).enatmMask && lltmMask == 0 && lllcMask == 0 && llColorMask == 0 && llExpMask == 0 && llSHMask == 0 && llcbMask == 0 && llretiMask == 0 && llblMask == 0 && llvibMask == 0;
|
||||||
lp.enablMask = locallab.spots.at(sp).enablMask && llblMask == 0 && llColorMask == 0 && llExpMask == 0 && llSHMask == 0 && llcbMask == 0 && llretiMask == 0 && lltmMask == 0 && llvibMask == 0;
|
lp.enablMask = locallab.spots.at(sp).enablMask && llblMask == 0 && lllcMask == 0 && llColorMask == 0 && llExpMask == 0 && llSHMask == 0 && llcbMask == 0 && llretiMask == 0 && lltmMask == 0 && llvibMask == 0;
|
||||||
lp.enavibMask = locallab.spots.at(sp).enavibMask && llvibMask == 0 && llColorMask == 0 && llExpMask == 0 && llcbMask == 0 && llretiMask == 0 && lltmMask == 0 && llblMask == 0 && llSHMask == 0;
|
lp.enavibMask = locallab.spots.at(sp).enavibMask && llvibMask == 0 && lllcMask == 0 && llColorMask == 0 && llExpMask == 0 && llcbMask == 0 && llretiMask == 0 && lltmMask == 0 && llblMask == 0 && llSHMask == 0;
|
||||||
|
lp.enalcMask = locallab.spots.at(sp).enalcMask && lllcMask == 0 && llcbMask == 0 && llColorMask == 0 && llExpMask == 0 && llSHMask == 0 && llretiMask == 0 && lltmMask == 0 && llblMask == 0 && llvibMask == 0;
|
||||||
|
|
||||||
if (locallab.spots.at(sp).softMethod == "soft") {
|
if (locallab.spots.at(sp).softMethod == "soft") {
|
||||||
lp.softmet = 0;
|
lp.softmet = 0;
|
||||||
@ -1090,20 +1094,20 @@ static void calcLocalParams(int sp, int oW, int oH, const LocallabParams& locall
|
|||||||
lp.detailsh = locallab.spots.at(sp).detailSH;
|
lp.detailsh = locallab.spots.at(sp).detailSH;
|
||||||
lp.threshol = thresho;
|
lp.threshol = thresho;
|
||||||
lp.chromacb = chromcbdl;
|
lp.chromacb = chromcbdl;
|
||||||
lp.colorena = locallab.spots.at(sp).expcolor && llExpMask == 0 && llSHMask == 0 && llcbMask == 0 && llretiMask == 0 && lltmMask == 0 && llvibMask == 0; // Color & Light tool is deactivated if Exposure mask is visible or SHMask
|
lp.colorena = locallab.spots.at(sp).expcolor && llExpMask == 0 && llSHMask == 0 && llcbMask == 0 && lllcMask == 0 && llretiMask == 0 && lltmMask == 0 && llvibMask == 0; // Color & Light tool is deactivated if Exposure mask is visible or SHMask
|
||||||
lp.blurena = locallab.spots.at(sp).expblur && llExpMask == 0 && llSHMask == 0 && llcbMask == 0 && llretiMask == 0 && llColorMask == 0 && lltmMask == 0 && llvibMask == 0;
|
lp.blurena = locallab.spots.at(sp).expblur && llExpMask == 0 && llSHMask == 0 && llcbMask == 0 && lllcMask == 0 && llretiMask == 0 && llColorMask == 0 && lltmMask == 0 && llvibMask == 0;
|
||||||
lp.tonemapena = locallab.spots.at(sp).exptonemap && llExpMask == 0 && llSHMask == 0 && llcbMask == 0 && llretiMask == 0 && llColorMask == 0 && llvibMask == 0;
|
lp.tonemapena = locallab.spots.at(sp).exptonemap && llExpMask == 0 && llSHMask == 0 && llcbMask == 0 && lllcMask == 0 && llretiMask == 0 && llColorMask == 0 && llvibMask == 0;
|
||||||
lp.retiena = locallab.spots.at(sp).expreti && llExpMask == 0 && llSHMask == 0 && llcbMask == 0 && llColorMask == 0 && lltmMask == 0 && llvibMask == 0 && llSHMask == 0;
|
lp.retiena = locallab.spots.at(sp).expreti && llExpMask == 0 && llSHMask == 0 && llcbMask == 0 && lllcMask == 0 && llColorMask == 0 && lltmMask == 0 && llvibMask == 0 && llSHMask == 0;
|
||||||
lp.sharpena = locallab.spots.at(sp).expsharp;
|
lp.sharpena = locallab.spots.at(sp).expsharp;
|
||||||
lp.lcena = locallab.spots.at(sp).expcontrast;
|
lp.lcena = locallab.spots.at(sp).expcontrast && llExpMask == 0 && llSHMask == 0 && llcbMask == 0 && llColorMask == 0 && lltmMask == 0 && llvibMask == 0 && llSHMask == 0;
|
||||||
lp.sfena = locallab.spots.at(sp).expsoft;
|
lp.sfena = locallab.spots.at(sp).expsoft;
|
||||||
lp.cbdlena = locallab.spots.at(sp).expcbdl && llExpMask == 0 && llSHMask == 0 && llretiMask == 0 && llColorMask == 0 && lltmMask == 0 && llvibMask == 0;
|
lp.cbdlena = locallab.spots.at(sp).expcbdl && llExpMask == 0 && llSHMask == 0 && llretiMask == 0 && lllcMask == 0 && lllcMask == 0 && llColorMask == 0 && lltmMask == 0 && llvibMask == 0;
|
||||||
lp.expvib = locallab.spots.at(sp).expvibrance;
|
lp.expvib = locallab.spots.at(sp).expvibrance;
|
||||||
lp.sensv = local_sensiv;
|
lp.sensv = local_sensiv;
|
||||||
lp.past = chromaPastel;
|
lp.past = chromaPastel;
|
||||||
lp.satur = chromaSatur;
|
lp.satur = chromaSatur;
|
||||||
|
|
||||||
lp.exposena = locallab.spots.at(sp).expexpose && llColorMask == 0 && llSHMask == 0 && llcbMask == 0 && llretiMask == 0 && lltmMask == 0 && llvibMask == 0; // Exposure tool is deactivated if Color & Light mask SHmask is visible
|
lp.exposena = locallab.spots.at(sp).expexpose && llColorMask == 0 && llSHMask == 0 && lllcMask == 0 && llcbMask == 0 && llretiMask == 0 && lltmMask == 0 && llvibMask == 0; // Exposure tool is deactivated if Color & Light mask SHmask is visible
|
||||||
lp.cut_past = cupas;
|
lp.cut_past = cupas;
|
||||||
lp.blac = locallab.spots.at(sp).black;
|
lp.blac = locallab.spots.at(sp).black;
|
||||||
lp.shcomp = locallab.spots.at(sp).shcompr;
|
lp.shcomp = locallab.spots.at(sp).shcompr;
|
||||||
@ -1115,7 +1119,7 @@ static void calcLocalParams(int sp, int oW, int oH, const LocallabParams& locall
|
|||||||
lp.expchroma = locallab.spots.at(sp).expchroma / 100.;
|
lp.expchroma = locallab.spots.at(sp).expchroma / 100.;
|
||||||
lp.sensex = local_sensiex;
|
lp.sensex = local_sensiex;
|
||||||
lp.war = local_warm;
|
lp.war = local_warm;
|
||||||
lp.hsena = locallab.spots.at(sp).expshadhigh && llColorMask == 0 && llExpMask == 0 && llcbMask == 0 && llretiMask == 0 && lltmMask == 0 && llvibMask == 0;// Shadow Highlight tool is deactivated if Color & Light mask or SHmask is visible
|
lp.hsena = locallab.spots.at(sp).expshadhigh && llColorMask == 0 && llExpMask == 0 && llcbMask == 0 && lllcMask == 0 && llretiMask == 0 && lltmMask == 0 && llvibMask == 0;// Shadow Highlight tool is deactivated if Color & Light mask or SHmask is visible
|
||||||
lp.highlihs = highhs;
|
lp.highlihs = highhs;
|
||||||
lp.shadowhs = shadhs;
|
lp.shadowhs = shadhs;
|
||||||
lp.radiushs = radhs;
|
lp.radiushs = radhs;
|
||||||
@ -1124,7 +1128,7 @@ static void calcLocalParams(int sp, int oW, int oH, const LocallabParams& locall
|
|||||||
lp.senshs = local_sensihs;
|
lp.senshs = local_sensihs;
|
||||||
lp.ftwlc = fftwlc;
|
lp.ftwlc = fftwlc;
|
||||||
lp.ftwreti = fftwreti;
|
lp.ftwreti = fftwreti;
|
||||||
lp.vibena = locallab.spots.at(sp).expvibrance && llColorMask == 0 && llExpMask == 0 && llcbMask == 0 && llretiMask == 0 && llcbMask == 0 && lltmMask == 0 && llSHMask == 0;// vibrance tool is deactivated if Color & Light mask or SHmask is visible
|
lp.vibena = locallab.spots.at(sp).expvibrance && llColorMask == 0 && llExpMask == 0 && llcbMask == 0 && lllcMask == 0 && llretiMask == 0 && llcbMask == 0 && lltmMask == 0 && llSHMask == 0;// vibrance tool is deactivated if Color & Light mask or SHmask is visible
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -5582,7 +5586,7 @@ void ImProcFunctions::calc_ref(int sp, LabImage * original, LabImage * transform
|
|||||||
if (params->locallab.enabled) {
|
if (params->locallab.enabled) {
|
||||||
//always calculate hueref, chromaref, lumaref before others operations use in normal mode for all modules exceprt denoise
|
//always calculate hueref, chromaref, lumaref before others operations use in normal mode for all modules exceprt denoise
|
||||||
struct local_params lp;
|
struct local_params lp;
|
||||||
calcLocalParams(sp, oW, oH, params->locallab, lp, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, locwavCurveden, locwavdenutili);
|
calcLocalParams(sp, oW, oH, params->locallab, lp, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, locwavCurveden, locwavdenutili);
|
||||||
int begy = lp.yc - lp.lyT;
|
int begy = lp.yc - lp.lyT;
|
||||||
int begx = lp.xc - lp.lxL;
|
int begx = lp.xc - lp.lxL;
|
||||||
int yEn = lp.yc + lp.ly;
|
int yEn = lp.yc + lp.ly;
|
||||||
@ -9053,7 +9057,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
|
|||||||
const LocwavCurve & locwavCurveden, bool & locwavdenutili,
|
const LocwavCurve & locwavCurveden, bool & locwavdenutili,
|
||||||
bool & LHutili, bool & HHutili, LUTf & cclocalcurve, bool & localcutili, LUTf & rgblocalcurve, bool & localrgbutili, bool & localexutili, LUTf & exlocalcurve, LUTf & hltonecurveloc, LUTf & shtonecurveloc, LUTf & tonecurveloc, LUTf & lightCurveloc,
|
bool & LHutili, bool & HHutili, LUTf & cclocalcurve, bool & localcutili, LUTf & rgblocalcurve, bool & localrgbutili, bool & localexutili, LUTf & exlocalcurve, LUTf & hltonecurveloc, LUTf & shtonecurveloc, LUTf & tonecurveloc, LUTf & lightCurveloc,
|
||||||
double & huerefblur, double & chromarefblur, double & lumarefblur, double & hueref, double & chromaref, double & lumaref, double & sobelref, int &lastsav,
|
double & huerefblur, double & chromarefblur, double & lumarefblur, double & hueref, double & chromaref, double & lumaref, double & sobelref, int &lastsav,
|
||||||
int llColorMask, int llColorMaskinv, int llExpMask, int llExpMaskinv, int llSHMask, int llSHMaskinv, int llvibMask, int llcbMask, int llretiMask, int llsoftMask, int lltmMask, int llblMask,
|
int llColorMask, int llColorMaskinv, int llExpMask, int llExpMaskinv, int llSHMask, int llSHMaskinv, int llvibMask, int lllcMask, int llcbMask, int llretiMask, int llsoftMask, int lltmMask, int llblMask,
|
||||||
float & minCD, float & maxCD, float & mini, float & maxi, float & Tmean, float & Tsigma, float & Tmin, float & Tmax)
|
float & minCD, float & maxCD, float & mini, float & maxi, float & Tmean, float & Tsigma, float & Tmin, float & Tmax)
|
||||||
{
|
{
|
||||||
//general call of others functions : important return hueref, chromaref, lumaref
|
//general call of others functions : important return hueref, chromaref, lumaref
|
||||||
@ -9069,7 +9073,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
|
|||||||
int del = 3; // to avoid crash with [loy - begy] and [lox - begx] and bfh bfw // with gtk2 [loy - begy-1] [lox - begx -1 ] and del = 1
|
int del = 3; // to avoid crash with [loy - begy] and [lox - begx] and bfh bfw // with gtk2 [loy - begy-1] [lox - begx -1 ] and del = 1
|
||||||
int delxy = 0;
|
int delxy = 0;
|
||||||
struct local_params lp;
|
struct local_params lp;
|
||||||
calcLocalParams(sp, oW, oH, params->locallab, lp, llColorMask, llColorMaskinv, llExpMask, llExpMaskinv, llSHMask, llSHMaskinv, llvibMask, llcbMask, llretiMask, llsoftMask, lltmMask, llblMask, locwavCurveden, locwavdenutili);
|
calcLocalParams(sp, oW, oH, params->locallab, lp, llColorMask, llColorMaskinv, llExpMask, llExpMaskinv, llSHMask, llSHMaskinv, llvibMask, lllcMask, llcbMask, llretiMask, llsoftMask, lltmMask, llblMask, locwavCurveden, locwavdenutili);
|
||||||
|
|
||||||
const float radius = lp.rad / (sk * 1.4f); //0 to 70 ==> see skip
|
const float radius = lp.rad / (sk * 1.4f); //0 to 70 ==> see skip
|
||||||
int strred = 1;//(lp.strucc - 1);
|
int strred = 1;//(lp.strucc - 1);
|
||||||
|
@ -900,6 +900,10 @@ enum ProcEventCode {
|
|||||||
EvlocallabLLmasklcshape = 871,
|
EvlocallabLLmasklcshape = 871,
|
||||||
EvLocallabEnalcMask = 872,
|
EvLocallabEnalcMask = 872,
|
||||||
EvlocallabshowmasklcMethod = 873,
|
EvlocallabshowmasklcMethod = 873,
|
||||||
|
Evlocallabblendmasklc = 874,
|
||||||
|
Evlocallabradmasklc = 875,
|
||||||
|
Evlocallabchromasklc = 876,
|
||||||
|
EvlocallabLmasklcshape = 877,
|
||||||
NUMOFEVENTS
|
NUMOFEVENTS
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -2747,6 +2747,10 @@ LocallabParams::LocallabSpot::LocallabSpot() :
|
|||||||
LLmasklccurve{(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},
|
LLmasklccurve{(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},
|
||||||
HHmasklccurve{(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},
|
HHmasklccurve{(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},
|
||||||
enalcMask(false),
|
enalcMask(false),
|
||||||
|
blendmasklc(0),
|
||||||
|
radmasklc(0.0),
|
||||||
|
chromasklc(0.0),
|
||||||
|
Lmasklccurve{(double)DCT_NURBS, 0.0, 0.0, 1.0, 1.0},
|
||||||
|
|
||||||
// Contrast by detail levels
|
// Contrast by detail levels
|
||||||
expcbdl(false),
|
expcbdl(false),
|
||||||
@ -3148,6 +3152,10 @@ bool LocallabParams::LocallabSpot::operator ==(const LocallabSpot& other) const
|
|||||||
&& LLmasklccurve == other.LLmasklccurve
|
&& LLmasklccurve == other.LLmasklccurve
|
||||||
&& HHmasklccurve == other.HHmasklccurve
|
&& HHmasklccurve == other.HHmasklccurve
|
||||||
&& enalcMask == other.enalcMask
|
&& enalcMask == other.enalcMask
|
||||||
|
&& blendmasklc == other.blendmasklc
|
||||||
|
&& radmasklc == other.radmasklc
|
||||||
|
&& chromasklc == other.chromasklc
|
||||||
|
&& Lmasklccurve == other.Lmasklccurve
|
||||||
// Constrast by detail levels
|
// Constrast by detail levels
|
||||||
&& expcbdl == other.expcbdl
|
&& expcbdl == other.expcbdl
|
||||||
&& [this, &other]()->bool {
|
&& [this, &other]()->bool {
|
||||||
@ -4529,6 +4537,10 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo
|
|||||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).LLmasklccurve, "Locallab", "LLmasklcCurve_" + std::to_string(i), spot.LLmasklccurve, keyFile);
|
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).LLmasklccurve, "Locallab", "LLmasklcCurve_" + std::to_string(i), spot.LLmasklccurve, keyFile);
|
||||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).HHmasklccurve, "Locallab", "HHmasklcCurve_" + std::to_string(i), spot.HHmasklccurve, keyFile);
|
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).HHmasklccurve, "Locallab", "HHmasklcCurve_" + std::to_string(i), spot.HHmasklccurve, keyFile);
|
||||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).enalcMask, "Locallab", "EnalcMask_" + std::to_string(i), spot.enalcMask, keyFile);
|
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).enalcMask, "Locallab", "EnalcMask_" + std::to_string(i), spot.enalcMask, keyFile);
|
||||||
|
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).blendmasklc, "Locallab", "Blendmasklc_" + std::to_string(i), spot.blendmasklc, keyFile);
|
||||||
|
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).radmasklc, "Locallab", "Radmasklc_" + std::to_string(i), spot.radmasklc, keyFile);
|
||||||
|
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).chromasklc, "Locallab", "Chromasklc_" + std::to_string(i), spot.chromasklc, keyFile);
|
||||||
|
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).Lmasklccurve, "Locallab", "LmasklcCurve_" + std::to_string(i), spot.Lmasklccurve, keyFile);
|
||||||
|
|
||||||
// Contrast by detail levels
|
// Contrast by detail levels
|
||||||
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).expcbdl, "Locallab", "Expcbdl_" + std::to_string(i), spot.expcbdl, keyFile);
|
saveToKeyfile(!pedited || pedited->locallab.spots.at(i).expcbdl, "Locallab", "Expcbdl_" + std::to_string(i), spot.expcbdl, keyFile);
|
||||||
@ -6059,6 +6071,10 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited)
|
|||||||
assignFromKeyfile(keyFile, "Locallab", "LLmasklcCurve_" + std::to_string(i), pedited, spot.LLmasklccurve, spotEdited.LLmasklccurve);
|
assignFromKeyfile(keyFile, "Locallab", "LLmasklcCurve_" + std::to_string(i), pedited, spot.LLmasklccurve, spotEdited.LLmasklccurve);
|
||||||
assignFromKeyfile(keyFile, "Locallab", "HHmasklcCurve_" + std::to_string(i), pedited, spot.HHmasklccurve, spotEdited.HHmasklccurve);
|
assignFromKeyfile(keyFile, "Locallab", "HHmasklcCurve_" + std::to_string(i), pedited, spot.HHmasklccurve, spotEdited.HHmasklccurve);
|
||||||
assignFromKeyfile(keyFile, "Locallab", "EnalcMask_" + std::to_string(i), pedited, spot.enalcMask, spotEdited.enalcMask);
|
assignFromKeyfile(keyFile, "Locallab", "EnalcMask_" + std::to_string(i), pedited, spot.enalcMask, spotEdited.enalcMask);
|
||||||
|
assignFromKeyfile(keyFile, "Locallab", "Blendmasklc_" + std::to_string(i), pedited, spot.blendmasklc, spotEdited.blendmasklc);
|
||||||
|
assignFromKeyfile(keyFile, "Locallab", "Radmasklc_" + std::to_string(i), pedited, spot.radmasklc, spotEdited.radmasklc);
|
||||||
|
assignFromKeyfile(keyFile, "Locallab", "Chromasklc_" + std::to_string(i), pedited, spot.chromasklc, spotEdited.chromasklc);
|
||||||
|
assignFromKeyfile(keyFile, "Locallab", "LmasklcCurve_" + std::to_string(i), pedited, spot.Lmasklccurve, spotEdited.Lmasklccurve);
|
||||||
|
|
||||||
if (keyFile.has_key("Locallab", "CSThreshold_" + std::to_string(i))) {
|
if (keyFile.has_key("Locallab", "CSThreshold_" + std::to_string(i))) {
|
||||||
|
|
||||||
|
@ -1290,6 +1290,10 @@ struct LocallabParams {
|
|||||||
std::vector<double> LLmasklccurve;
|
std::vector<double> LLmasklccurve;
|
||||||
std::vector<double> HHmasklccurve;
|
std::vector<double> HHmasklccurve;
|
||||||
bool enalcMask;
|
bool enalcMask;
|
||||||
|
int blendmasklc;
|
||||||
|
double radmasklc;
|
||||||
|
double chromasklc;
|
||||||
|
std::vector<double> Lmasklccurve;
|
||||||
|
|
||||||
// Contrast by detail levels
|
// Contrast by detail levels
|
||||||
bool expcbdl;
|
bool expcbdl;
|
||||||
|
@ -903,7 +903,11 @@ int refreshmap[rtengine::NUMOFEVENTS] = {
|
|||||||
LUMINANCECURVE, //EvlocallabCCmasklcshape
|
LUMINANCECURVE, //EvlocallabCCmasklcshape
|
||||||
LUMINANCECURVE, //EvlocallabLLmasklcshape
|
LUMINANCECURVE, //EvlocallabLLmasklcshape
|
||||||
LUMINANCECURVE, //EvlocallabEnalcMask
|
LUMINANCECURVE, //EvlocallabEnalcMask
|
||||||
LUMINANCECURVE //EvlocallabshowmasklcMethod
|
LUMINANCECURVE, //EvlocallabshowmasklcMethod
|
||||||
|
LUMINANCECURVE, //Evlocallabblendmasklc
|
||||||
|
LUMINANCECURVE, // Evlocallabradmasklc
|
||||||
|
LUMINANCECURVE, //Evlocallabchromasklc
|
||||||
|
LUMINANCECURVE //EvlocallabLmasklcshape
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -524,7 +524,7 @@ public:
|
|||||||
|
|
||||||
virtual void updateUnLock() = 0;
|
virtual void updateUnLock() = 0;
|
||||||
|
|
||||||
virtual void setLocallabMaskVisibility(int locallColorMask, int locallColorMaskinv, int locallExpMask, int locallExpMaskinv, int locallvibMask, int locallSHMask, int locallSHMaskinv, int locallcbMask, int locallretiMask, int locallsoftMask, int localltmMask, int locallblMask) = 0;
|
virtual void setLocallabMaskVisibility(int locallColorMask, int locallColorMaskinv, int locallExpMask, int locallExpMaskinv, int locallvibMask, int locallSHMask, int locallSHMaskinv, int localllcMask, int locallcbMask, int locallretiMask, int locallsoftMask, int localltmMask, int locallblMask) = 0;
|
||||||
|
|
||||||
/** Creates and returns a Crop instance that acts as a window on the image
|
/** Creates and returns a Crop instance that acts as a window on the image
|
||||||
* @param editDataProvider pointer to the EditDataProvider that communicates with the EditSubscriber
|
* @param editDataProvider pointer to the EditDataProvider that communicates with the EditSubscriber
|
||||||
|
@ -1313,7 +1313,7 @@ private:
|
|||||||
loccompwavCurve, loccompwavutili,
|
loccompwavCurve, loccompwavutili,
|
||||||
locwavCurveden, locwavdenutili,
|
locwavCurveden, locwavdenutili,
|
||||||
LHutili, HHutili, cclocalcurve, localcutili, rgblocalcurve, localrgbutili, localexutili, exlocalcurve, hltonecurveloc, shtonecurveloc, tonecurveloc, lightCurveloc,
|
LHutili, HHutili, cclocalcurve, localcutili, rgblocalcurve, localrgbutili, localexutili, exlocalcurve, hltonecurveloc, shtonecurveloc, tonecurveloc, lightCurveloc,
|
||||||
huerefblu, chromarefblu, lumarefblu, huere, chromare, lumare, sobelre, lastsav, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
huerefblu, chromarefblu, lumarefblu, huere, chromare, lumare, sobelre, lastsav, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
minCD, maxCD, mini, maxi, Tmean, Tsigma, Tmin, Tmax);
|
minCD, maxCD, mini, maxi, Tmean, Tsigma, Tmin, Tmax);
|
||||||
|
|
||||||
lastorigView->CopyFrom(labView);
|
lastorigView->CopyFrom(labView);
|
||||||
|
@ -357,6 +357,9 @@ Locallab::Locallab():
|
|||||||
wavshapecomp(static_cast<FlatCurveEditor*>(LocalcurveEditorwavcomp->addCurve(CT_Flat, "", nullptr, false, false))),
|
wavshapecomp(static_cast<FlatCurveEditor*>(LocalcurveEditorwavcomp->addCurve(CT_Flat, "", nullptr, false, false))),
|
||||||
|
|
||||||
masklcCurveEditorG(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_MASK"))),
|
masklcCurveEditorG(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_MASK"))),
|
||||||
|
mask2lcCurveEditorG(new CurveEditorGroup(options.lastlocalCurvesDir, M("TP_LOCALLAB_MASK2"))),
|
||||||
|
|
||||||
|
Lmasklcshape(static_cast<DiagonalCurveEditor*>(mask2lcCurveEditorG->addCurve(CT_Diagonal, "L(L)"))),
|
||||||
CCmasklcshape(static_cast<FlatCurveEditor*>(masklcCurveEditorG->addCurve(CT_Flat, "C(C)", nullptr, false, false))),
|
CCmasklcshape(static_cast<FlatCurveEditor*>(masklcCurveEditorG->addCurve(CT_Flat, "C(C)", nullptr, false, false))),
|
||||||
LLmasklcshape(static_cast<FlatCurveEditor*>(masklcCurveEditorG->addCurve(CT_Flat, "L(L)", nullptr, false, false))),
|
LLmasklcshape(static_cast<FlatCurveEditor*>(masklcCurveEditorG->addCurve(CT_Flat, "L(L)", nullptr, false, false))),
|
||||||
HHmasklcshape(static_cast<FlatCurveEditor *>(masklcCurveEditorG->addCurve(CT_Flat, "LC(H)", nullptr, false, true))),
|
HHmasklcshape(static_cast<FlatCurveEditor *>(masklcCurveEditorG->addCurve(CT_Flat, "LC(H)", nullptr, false, true))),
|
||||||
@ -575,6 +578,9 @@ sigma(Gtk::manage(new Adjuster(M("TP_LOCALLAB_SIGMAWAV"), 0.2, 2.5, 0.01, 1.))),
|
|||||||
fatdet(Gtk::manage(new Adjuster(M("TP_LOCALLAB_FATDETAIL"), -100., 300., 1., 0.))),
|
fatdet(Gtk::manage(new Adjuster(M("TP_LOCALLAB_FATDETAIL"), -100., 300., 1., 0.))),
|
||||||
fatanch(Gtk::manage(new Adjuster(M("TP_LOCALLAB_FATANCHOR"), 1., 100., 1., 50., Gtk::manage(new RTImage("circle-black-small.png")), Gtk::manage(new RTImage("circle-white-small.png"))))),
|
fatanch(Gtk::manage(new Adjuster(M("TP_LOCALLAB_FATANCHOR"), 1., 100., 1., 50., Gtk::manage(new RTImage("circle-black-small.png")), Gtk::manage(new RTImage("circle-white-small.png"))))),
|
||||||
fatres(Gtk::manage(new Adjuster(M("TP_LOCALLAB_FATRES"), 0., 100., 1., 0.))),
|
fatres(Gtk::manage(new Adjuster(M("TP_LOCALLAB_FATRES"), 0., 100., 1., 0.))),
|
||||||
|
blendmasklc(Gtk::manage(new Adjuster(M("TP_LOCALLAB_BLENDMASKCOL"), -100, 100, 1, 0))),
|
||||||
|
radmasklc(Gtk::manage(new Adjuster(M("TP_LOCALLAB_RADMASKCOL"), -10.0, 1000.0, 0.1, 0.))),
|
||||||
|
chromasklc(Gtk::manage(new Adjuster(M("TP_LOCALLAB_CHROMASKCOL"), -100.0, 100.0, 0.1, 0.))),
|
||||||
|
|
||||||
multiplier(
|
multiplier(
|
||||||
[this]() -> std::array<Adjuster*, 6> {
|
[this]() -> std::array<Adjuster*, 6> {
|
||||||
@ -2900,6 +2906,10 @@ pe(nullptr)
|
|||||||
claricres->setAdjusterListener(this);
|
claricres->setAdjusterListener(this);
|
||||||
|
|
||||||
sensilc->setAdjusterListener(this);
|
sensilc->setAdjusterListener(this);
|
||||||
|
blendmasklc->setAdjusterListener(this);
|
||||||
|
radmasklc->setLogScale(10, -10);
|
||||||
|
radmasklc->setAdjusterListener(this);
|
||||||
|
chromasklc->setAdjusterListener(this);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -3032,6 +3042,19 @@ pe(nullptr)
|
|||||||
|
|
||||||
masklcCurveEditorG->curveListComplete();
|
masklcCurveEditorG->curveListComplete();
|
||||||
|
|
||||||
|
mask2lcCurveEditorG->setCurveListener(this);
|
||||||
|
Lmasklcshape->setResetCurve(DiagonalCurveType(defSpot.Lmasklccurve.at(0)), defSpot.Lmasklccurve);
|
||||||
|
|
||||||
|
if (showtooltip) {
|
||||||
|
Lmasklcshape->setTooltip(M("TP_LOCALLAB_LMASK_LL_TOOLTIP"));
|
||||||
|
}
|
||||||
|
|
||||||
|
const std::vector<GradientMilestone>& mLmasklcshape = zero_one_shape;
|
||||||
|
Lmasklcshape->setBottomBarBgGradient(mLmasklcshape);
|
||||||
|
Lmasklcshape->setLeftBarBgGradient(mLmasklcshape);
|
||||||
|
mask2lcCurveEditorG->curveListComplete();
|
||||||
|
|
||||||
|
|
||||||
enalcMaskConn = enalcMask->signal_toggled().connect(sigc::mem_fun(*this, &Locallab::enalcMaskChanged));
|
enalcMaskConn = enalcMask->signal_toggled().connect(sigc::mem_fun(*this, &Locallab::enalcMaskChanged));
|
||||||
|
|
||||||
showmasklcMethod->append(M("TP_LOCALLAB_SHOWMNONE"));
|
showmasklcMethod->append(M("TP_LOCALLAB_SHOWMNONE"));
|
||||||
@ -3051,8 +3074,10 @@ pe(nullptr)
|
|||||||
masklcBox->pack_start(*showmasklcMethod, Gtk::PACK_SHRINK, 4);
|
masklcBox->pack_start(*showmasklcMethod, Gtk::PACK_SHRINK, 4);
|
||||||
masklcBox->pack_start(*enalcMask, Gtk::PACK_SHRINK, 0);
|
masklcBox->pack_start(*enalcMask, Gtk::PACK_SHRINK, 0);
|
||||||
masklcBox->pack_start(*masklcCurveEditorG, Gtk::PACK_SHRINK, 4); // Padding is mandatory to correct behavior of curve editor
|
masklcBox->pack_start(*masklcCurveEditorG, Gtk::PACK_SHRINK, 4); // Padding is mandatory to correct behavior of curve editor
|
||||||
// maskcbBox->pack_start(*blendmaskcb, Gtk::PACK_SHRINK, 0);
|
masklcBox->pack_start(*blendmasklc, Gtk::PACK_SHRINK, 0);
|
||||||
// maskcbBox->pack_start(*radmaskcb, Gtk::PACK_SHRINK, 0);
|
masklcBox->pack_start(*radmasklc, Gtk::PACK_SHRINK, 0);
|
||||||
|
masklcBox->pack_start(*chromasklc, Gtk::PACK_SHRINK, 0);
|
||||||
|
masklcBox->pack_start(*mask2lcCurveEditorG, Gtk::PACK_SHRINK, 4); // Padding is mandatory to correct behavior of curve editor
|
||||||
|
|
||||||
if (complexsoft < 1) {
|
if (complexsoft < 1) {
|
||||||
// maskcbBox->pack_start(*lapmaskcb, Gtk::PACK_SHRINK, 0);
|
// maskcbBox->pack_start(*lapmaskcb, Gtk::PACK_SHRINK, 0);
|
||||||
@ -3741,6 +3766,7 @@ Locallab::~Locallab()
|
|||||||
delete maskretiCurveEditorG;
|
delete maskretiCurveEditorG;
|
||||||
delete mask2retiCurveEditorG;
|
delete mask2retiCurveEditorG;
|
||||||
delete maskcbCurveEditorG;
|
delete maskcbCurveEditorG;
|
||||||
|
delete mask2lcCurveEditorG;
|
||||||
delete mask2cbCurveEditorG;
|
delete mask2cbCurveEditorG;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -5248,6 +5274,10 @@ void Locallab::write(rtengine::procparams::ProcParams* pp, ParamsEdited* pedited
|
|||||||
pp->locallab.spots.at(pp->locallab.selspot).CCmasklccurve = CCmasklcshape->getCurve();
|
pp->locallab.spots.at(pp->locallab.selspot).CCmasklccurve = CCmasklcshape->getCurve();
|
||||||
pp->locallab.spots.at(pp->locallab.selspot).HHmasklccurve = HHmasklcshape->getCurve();
|
pp->locallab.spots.at(pp->locallab.selspot).HHmasklccurve = HHmasklcshape->getCurve();
|
||||||
pp->locallab.spots.at(pp->locallab.selspot).enalcMask = enalcMask->get_active();
|
pp->locallab.spots.at(pp->locallab.selspot).enalcMask = enalcMask->get_active();
|
||||||
|
pp->locallab.spots.at(pp->locallab.selspot).blendmasklc = blendmasklc->getIntValue();
|
||||||
|
pp->locallab.spots.at(pp->locallab.selspot).radmasklc = radmasklc->getValue();
|
||||||
|
pp->locallab.spots.at(pp->locallab.selspot).chromasklc = chromasklc->getValue();
|
||||||
|
pp->locallab.spots.at(pp->locallab.selspot).Lmasklccurve = Lmasklcshape->getCurve();
|
||||||
|
|
||||||
// Contrast by detail levels
|
// Contrast by detail levels
|
||||||
pp->locallab.spots.at(pp->locallab.selspot).expcbdl = expcbdl->getEnabled();
|
pp->locallab.spots.at(pp->locallab.selspot).expcbdl = expcbdl->getEnabled();
|
||||||
@ -5647,6 +5677,10 @@ void Locallab::write(rtengine::procparams::ProcParams* pp, ParamsEdited* pedited
|
|||||||
pe->locallab.spots.at(pp->locallab.selspot).LLmasklccurve = pe->locallab.spots.at(pp->locallab.selspot).LLmasklccurve || !LLmasklcshape->isUnChanged();
|
pe->locallab.spots.at(pp->locallab.selspot).LLmasklccurve = pe->locallab.spots.at(pp->locallab.selspot).LLmasklccurve || !LLmasklcshape->isUnChanged();
|
||||||
pe->locallab.spots.at(pp->locallab.selspot).HHmasklccurve = pe->locallab.spots.at(pp->locallab.selspot).HHmasklccurve || !HHmasklcshape->isUnChanged();
|
pe->locallab.spots.at(pp->locallab.selspot).HHmasklccurve = pe->locallab.spots.at(pp->locallab.selspot).HHmasklccurve || !HHmasklcshape->isUnChanged();
|
||||||
pe->locallab.spots.at(pp->locallab.selspot).enalcMask = pe->locallab.spots.at(pp->locallab.selspot).enalcMask || !enalcMask->get_inconsistent();
|
pe->locallab.spots.at(pp->locallab.selspot).enalcMask = pe->locallab.spots.at(pp->locallab.selspot).enalcMask || !enalcMask->get_inconsistent();
|
||||||
|
pe->locallab.spots.at(pp->locallab.selspot).blendmasklc = pe->locallab.spots.at(pp->locallab.selspot).blendmasklc || blendmasklc->getEditedState();
|
||||||
|
pe->locallab.spots.at(pp->locallab.selspot).radmasklc = pe->locallab.spots.at(pp->locallab.selspot).radmasklc || radmasklc->getEditedState();
|
||||||
|
pe->locallab.spots.at(pp->locallab.selspot).chromasklc = pe->locallab.spots.at(pp->locallab.selspot).chromasklc || chromasklc->getEditedState();
|
||||||
|
pe->locallab.spots.at(pp->locallab.selspot).Lmasklccurve = pe->locallab.spots.at(pp->locallab.selspot).Lmasklccurve || !Lmasklcshape->isUnChanged();
|
||||||
|
|
||||||
|
|
||||||
// Contrast by detail levels
|
// Contrast by detail levels
|
||||||
@ -6050,6 +6084,11 @@ void Locallab::write(rtengine::procparams::ProcParams* pp, ParamsEdited* pedited
|
|||||||
pedited->locallab.spots.at(pp->locallab.selspot).HHmasklccurve = pedited->locallab.spots.at(pp->locallab.selspot).HHmasklccurve || !HHmasklcshape->isUnChanged();
|
pedited->locallab.spots.at(pp->locallab.selspot).HHmasklccurve = pedited->locallab.spots.at(pp->locallab.selspot).HHmasklccurve || !HHmasklcshape->isUnChanged();
|
||||||
pedited->locallab.spots.at(pp->locallab.selspot).enalcMask = pedited->locallab.spots.at(pp->locallab.selspot).enalcMask || !enalcMask->get_inconsistent();
|
pedited->locallab.spots.at(pp->locallab.selspot).enalcMask = pedited->locallab.spots.at(pp->locallab.selspot).enalcMask || !enalcMask->get_inconsistent();
|
||||||
|
|
||||||
|
pedited->locallab.spots.at(pp->locallab.selspot).blendmasklc = pedited->locallab.spots.at(pp->locallab.selspot).blendmasklc || blendmasklc->getEditedState();
|
||||||
|
pedited->locallab.spots.at(pp->locallab.selspot).radmasklc = pedited->locallab.spots.at(pp->locallab.selspot).radmasklc || radmasklc->getEditedState();
|
||||||
|
pedited->locallab.spots.at(pp->locallab.selspot).chromasklc = pedited->locallab.spots.at(pp->locallab.selspot).chromasklc || chromasklc->getEditedState();
|
||||||
|
pedited->locallab.spots.at(pp->locallab.selspot).Lmasklccurve = pedited->locallab.spots.at(pp->locallab.selspot).Lmasklccurve || !Lmasklcshape->isUnChanged();
|
||||||
|
|
||||||
// Contrast by detail levels
|
// Contrast by detail levels
|
||||||
pedited->locallab.spots.at(pp->locallab.selspot).expcbdl = pedited->locallab.spots.at(pp->locallab.selspot).expcbdl || !expcbdl->get_inconsistent();
|
pedited->locallab.spots.at(pp->locallab.selspot).expcbdl = pedited->locallab.spots.at(pp->locallab.selspot).expcbdl || !expcbdl->get_inconsistent();
|
||||||
|
|
||||||
@ -6566,6 +6605,12 @@ void Locallab::curveChanged(CurveEditor* ce)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (ce == Lmasklcshape) {
|
||||||
|
if (listener) {
|
||||||
|
listener->panelChanged(EvlocallabLmasklcshape, M("HISTORY_CUSTOMCURVE"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
//denoise
|
//denoise
|
||||||
if (getEnabled() && expdenoi->getEnabled()) {
|
if (getEnabled() && expdenoi->getEnabled()) {
|
||||||
@ -8701,6 +8746,9 @@ void Locallab::setDefaults(const rtengine::procparams::ProcParams * defParams, c
|
|||||||
clarisoft->setDefault(defSpot->clarisoft);
|
clarisoft->setDefault(defSpot->clarisoft);
|
||||||
sensilc->setDefault((double)defSpot->sensilc);
|
sensilc->setDefault((double)defSpot->sensilc);
|
||||||
csThreshold->setDefault<int>(defSpot->csthreshold);
|
csThreshold->setDefault<int>(defSpot->csthreshold);
|
||||||
|
blendmasklc->setDefault((double)defSpot->blendmasklc);
|
||||||
|
radmasklc->setDefault(defSpot->radmasklc);
|
||||||
|
chromasklc->setDefault(defSpot->chromasklc);
|
||||||
|
|
||||||
// Contrast by detail levels
|
// Contrast by detail levels
|
||||||
for (int i = 0; i < 6; i++) {
|
for (int i = 0; i < 6; i++) {
|
||||||
@ -8937,6 +8985,9 @@ void Locallab::setDefaults(const rtengine::procparams::ProcParams * defParams, c
|
|||||||
clarisoft->setDefaultEditedState(Irrelevant);
|
clarisoft->setDefaultEditedState(Irrelevant);
|
||||||
sensilc->setDefaultEditedState(Irrelevant);
|
sensilc->setDefaultEditedState(Irrelevant);
|
||||||
csThreshold->setDefaultEditedState(Irrelevant);
|
csThreshold->setDefaultEditedState(Irrelevant);
|
||||||
|
blendmasklc->setDefaultEditedState(Irrelevant);
|
||||||
|
radmasklc->setDefaultEditedState(Irrelevant);
|
||||||
|
chromasklc->setDefaultEditedState(Irrelevant);
|
||||||
|
|
||||||
// Contrast by detail levels
|
// Contrast by detail levels
|
||||||
for (int i = 0; i < 6; i++) {
|
for (int i = 0; i < 6; i++) {
|
||||||
@ -9178,6 +9229,9 @@ void Locallab::setDefaults(const rtengine::procparams::ProcParams * defParams, c
|
|||||||
clarisoft->setDefaultEditedState(defSpotState->clarisoft ? Edited : UnEdited);
|
clarisoft->setDefaultEditedState(defSpotState->clarisoft ? Edited : UnEdited);
|
||||||
sensilc->setDefaultEditedState(defSpotState->sensilc ? Edited : UnEdited);
|
sensilc->setDefaultEditedState(defSpotState->sensilc ? Edited : UnEdited);
|
||||||
csThreshold->setDefaultEditedState(defSpotState->csthreshold ? Edited : UnEdited);
|
csThreshold->setDefaultEditedState(defSpotState->csthreshold ? Edited : UnEdited);
|
||||||
|
blendmasklc->setDefaultEditedState(defSpotState->blendmasklc ? Edited : UnEdited);
|
||||||
|
radmasklc->setDefaultEditedState(defSpotState->radmasklc ? Edited : UnEdited);
|
||||||
|
chromasklc->setDefaultEditedState(defSpotState->chromasklc ? Edited : UnEdited);
|
||||||
|
|
||||||
// Contrast by detail levels
|
// Contrast by detail levels
|
||||||
for (int i = 0; i < 6; i++) {
|
for (int i = 0; i < 6; i++) {
|
||||||
@ -10385,6 +10439,25 @@ void Locallab::adjusterChanged(Adjuster * a, double newval)
|
|||||||
listener->panelChanged(Evlocallabsensilc, sensilc->getTextValue());
|
listener->panelChanged(Evlocallabsensilc, sensilc->getTextValue());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (a == blendmasklc) {
|
||||||
|
if (listener) {
|
||||||
|
listener->panelChanged(Evlocallabblendmasklc, blendmasklc->getTextValue());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (a == radmasklc) {
|
||||||
|
if (listener) {
|
||||||
|
listener->panelChanged(Evlocallabradmasklc, radmasklc->getTextValue());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (a == chromasklc) {
|
||||||
|
if (listener) {
|
||||||
|
listener->panelChanged(Evlocallabchromasklc, chromasklc->getTextValue());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Contrast by detail levels
|
// Contrast by detail levels
|
||||||
@ -10842,6 +10915,9 @@ void Locallab::setBatchMode(bool batchMode)
|
|||||||
clarisoft->showEditedCB();
|
clarisoft->showEditedCB();
|
||||||
csThreshold->showEditedCB();
|
csThreshold->showEditedCB();
|
||||||
sensilc->showEditedCB();
|
sensilc->showEditedCB();
|
||||||
|
blendmasklc->showEditedCB();
|
||||||
|
radmasklc->showEditedCB();
|
||||||
|
chromasklc->showEditedCB();
|
||||||
|
|
||||||
// Contrast by detail levels
|
// Contrast by detail levels
|
||||||
for (int i = 0; i < 6; i++) {
|
for (int i = 0; i < 6; i++) {
|
||||||
@ -11931,6 +12007,10 @@ void Locallab::updateLocallabGUI(const rtengine::procparams::ProcParams* pp, con
|
|||||||
LLmasklcshape->setCurve(pp->locallab.spots.at(index).LLmasklccurve);
|
LLmasklcshape->setCurve(pp->locallab.spots.at(index).LLmasklccurve);
|
||||||
HHmasklcshape->setCurve(pp->locallab.spots.at(index).HHmasklccurve);
|
HHmasklcshape->setCurve(pp->locallab.spots.at(index).HHmasklccurve);
|
||||||
enalcMask->set_active(pp->locallab.spots.at(index).enalcMask);
|
enalcMask->set_active(pp->locallab.spots.at(index).enalcMask);
|
||||||
|
blendmasklc->setValue(pp->locallab.spots.at(index).blendmasklc);
|
||||||
|
radmasklc->setValue(pp->locallab.spots.at(index).radmasklc);
|
||||||
|
chromasklc->setValue(pp->locallab.spots.at(index).chromasklc);
|
||||||
|
Lmasklcshape->setCurve(pp->locallab.spots.at(index).Lmasklccurve);
|
||||||
|
|
||||||
if (fftwlc->get_active()) {
|
if (fftwlc->get_active()) {
|
||||||
lcradius->setLimits(20, 1000, 1, 80);
|
lcradius->setLimits(20, 1000, 1, 80);
|
||||||
@ -12421,6 +12501,10 @@ void Locallab::updateLocallabGUI(const rtengine::procparams::ProcParams* pp, con
|
|||||||
HHmasklcshape->setUnChanged(!spotState->HHmasklccurve);
|
HHmasklcshape->setUnChanged(!spotState->HHmasklccurve);
|
||||||
CCmasklcshape->setUnChanged(!spotState->CCmasklccurve);
|
CCmasklcshape->setUnChanged(!spotState->CCmasklccurve);
|
||||||
enalcMask->set_inconsistent(multiImage && !spotState->enalcMask);
|
enalcMask->set_inconsistent(multiImage && !spotState->enalcMask);
|
||||||
|
blendmasklc->setEditedState(spotState->blendmasklc ? Edited : UnEdited);
|
||||||
|
radmasklc->setEditedState(spotState->radmasklc ? Edited : UnEdited);
|
||||||
|
chromasklc->setEditedState(spotState->chromasklc ? Edited : UnEdited);
|
||||||
|
Lmasklcshape->setUnChanged(!spotState->Lmasklccurve);
|
||||||
|
|
||||||
if (!spotState->retinexMethod) {
|
if (!spotState->retinexMethod) {
|
||||||
localcontMethod->set_active_text(M("GENERAL_UNCHANGED"));
|
localcontMethod->set_active_text(M("GENERAL_UNCHANGED"));
|
||||||
|
@ -174,7 +174,8 @@ private:
|
|||||||
CurveEditorGroup* const LocalcurveEditorwavcomp;
|
CurveEditorGroup* const LocalcurveEditorwavcomp;
|
||||||
FlatCurveEditor* const wavshapecomp;
|
FlatCurveEditor* const wavshapecomp;
|
||||||
CurveEditorGroup* const masklcCurveEditorG;
|
CurveEditorGroup* const masklcCurveEditorG;
|
||||||
// DiagonalCurveEditor* const Lmasklcshape;
|
CurveEditorGroup* const mask2lcCurveEditorG;
|
||||||
|
DiagonalCurveEditor* const Lmasklcshape;
|
||||||
FlatCurveEditor* const CCmasklcshape;
|
FlatCurveEditor* const CCmasklcshape;
|
||||||
FlatCurveEditor* const LLmasklcshape;
|
FlatCurveEditor* const LLmasklcshape;
|
||||||
FlatCurveEditor* const HHmasklcshape;
|
FlatCurveEditor* const HHmasklcshape;
|
||||||
@ -372,6 +373,9 @@ private:
|
|||||||
Adjuster* const fatdet;
|
Adjuster* const fatdet;
|
||||||
Adjuster* const fatanch;
|
Adjuster* const fatanch;
|
||||||
Adjuster* const fatres;
|
Adjuster* const fatres;
|
||||||
|
Adjuster* const blendmasklc;
|
||||||
|
Adjuster* const radmasklc;
|
||||||
|
Adjuster* const chromasklc;
|
||||||
// Contrast by detail levels
|
// Contrast by detail levels
|
||||||
const std::array<Adjuster*, 6> multiplier;
|
const std::array<Adjuster*, 6> multiplier;
|
||||||
Adjuster* const chromacbdl;
|
Adjuster* const chromacbdl;
|
||||||
|
@ -1284,6 +1284,10 @@ void ParamsEdited::initFrom(const std::vector<rtengine::procparams::ProcParams>&
|
|||||||
locallab.spots.at(j).LLmasklccurve = locallab.spots.at(j).LLmasklccurve && pSpot.LLmasklccurve == otherSpot.LLmasklccurve;
|
locallab.spots.at(j).LLmasklccurve = locallab.spots.at(j).LLmasklccurve && pSpot.LLmasklccurve == otherSpot.LLmasklccurve;
|
||||||
locallab.spots.at(j).HHmasklccurve = locallab.spots.at(j).HHmasklccurve && pSpot.HHmasklccurve == otherSpot.HHmasklccurve;
|
locallab.spots.at(j).HHmasklccurve = locallab.spots.at(j).HHmasklccurve && pSpot.HHmasklccurve == otherSpot.HHmasklccurve;
|
||||||
locallab.spots.at(j).enalcMask = locallab.spots.at(j).enalcMask && pSpot.enalcMask == otherSpot.enalcMask;
|
locallab.spots.at(j).enalcMask = locallab.spots.at(j).enalcMask && pSpot.enalcMask == otherSpot.enalcMask;
|
||||||
|
locallab.spots.at(j).blendmasklc = locallab.spots.at(j).blendmasklc && pSpot.blendmasklc == otherSpot.blendmasklc;
|
||||||
|
locallab.spots.at(j).radmasklc = locallab.spots.at(j).radmasklc && pSpot.radmaskcb == otherSpot.radmasklc;
|
||||||
|
locallab.spots.at(j).chromasklc = locallab.spots.at(j).chromasklc && pSpot.chromasklc == otherSpot.chromasklc;
|
||||||
|
locallab.spots.at(j).Lmasklccurve = locallab.spots.at(j).Lmasklccurve && pSpot.Lmasklccurve == otherSpot.Lmasklccurve;
|
||||||
|
|
||||||
// Contrast by detail levels
|
// Contrast by detail levels
|
||||||
locallab.spots.at(j).expcbdl = locallab.spots.at(j).expcbdl && pSpot.expcbdl == otherSpot.expcbdl;
|
locallab.spots.at(j).expcbdl = locallab.spots.at(j).expcbdl && pSpot.expcbdl == otherSpot.expcbdl;
|
||||||
@ -4102,6 +4106,23 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng
|
|||||||
toEdit.locallab.spots.at(i).enalcMask = mods.locallab.spots.at(i).enalcMask;
|
toEdit.locallab.spots.at(i).enalcMask = mods.locallab.spots.at(i).enalcMask;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (locallab.spots.at(i).blendmasklc) {
|
||||||
|
toEdit.locallab.spots.at(i).blendmasklc = mods.locallab.spots.at(i).blendmasklc;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (locallab.spots.at(i).radmasklc) {
|
||||||
|
toEdit.locallab.spots.at(i).radmasklc = mods.locallab.spots.at(i).radmasklc;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (locallab.spots.at(i).chromasklc) {
|
||||||
|
toEdit.locallab.spots.at(i).chromasklc = mods.locallab.spots.at(i).chromasklc;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (locallab.spots.at(i).Lmasklccurve) {
|
||||||
|
toEdit.locallab.spots.at(i).Lmasklccurve = mods.locallab.spots.at(i).Lmasklccurve;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// Contrast by detail levels
|
// Contrast by detail levels
|
||||||
if (locallab.spots.at(i).expcbdl) {
|
if (locallab.spots.at(i).expcbdl) {
|
||||||
toEdit.locallab.spots.at(i).expcbdl = mods.locallab.spots.at(i).expcbdl;
|
toEdit.locallab.spots.at(i).expcbdl = mods.locallab.spots.at(i).expcbdl;
|
||||||
@ -5596,6 +5617,10 @@ LocallabParamsEdited::LocallabSpotEdited::LocallabSpotEdited(bool v) :
|
|||||||
LLmasklccurve(v),
|
LLmasklccurve(v),
|
||||||
HHmasklccurve(v),
|
HHmasklccurve(v),
|
||||||
enalcMask(v),
|
enalcMask(v),
|
||||||
|
blendmasklc(v),
|
||||||
|
radmasklc(v),
|
||||||
|
chromasklc(v),
|
||||||
|
Lmasklccurve(v),
|
||||||
|
|
||||||
// Contrast by detail levels
|
// Contrast by detail levels
|
||||||
expcbdl(v),
|
expcbdl(v),
|
||||||
@ -5987,6 +6012,10 @@ void LocallabParamsEdited::LocallabSpotEdited::set(bool v)
|
|||||||
LLmasklccurve = v;
|
LLmasklccurve = v;
|
||||||
HHmasklccurve = v;
|
HHmasklccurve = v;
|
||||||
enalcMask = v;
|
enalcMask = v;
|
||||||
|
blendmasklc = v;
|
||||||
|
radmasklc = v;
|
||||||
|
chromasklc = v;
|
||||||
|
Lmasklccurve = v;
|
||||||
// Contrast by detail levels
|
// Contrast by detail levels
|
||||||
expcbdl = v;
|
expcbdl = v;
|
||||||
|
|
||||||
|
@ -716,6 +716,10 @@ public:
|
|||||||
bool LLmasklccurve;
|
bool LLmasklccurve;
|
||||||
bool HHmasklccurve;
|
bool HHmasklccurve;
|
||||||
bool enalcMask;
|
bool enalcMask;
|
||||||
|
bool blendmasklc;
|
||||||
|
bool radmasklc;
|
||||||
|
bool chromasklc;
|
||||||
|
bool Lmasklccurve;
|
||||||
// Contrast by detail levels
|
// Contrast by detail levels
|
||||||
bool expcbdl;
|
bool expcbdl;
|
||||||
bool mult[6];
|
bool mult[6];
|
||||||
|
@ -509,9 +509,9 @@ void ToolPanelCoordinator::panelChanged(const rtengine::ProcEvent& event, const
|
|||||||
// Manage Locallab mask visibility
|
// Manage Locallab mask visibility
|
||||||
if (event == rtengine::EvlocallabshowmaskcolMethod || event == rtengine::EvlocallabshowmaskcolMethodinv ||event == rtengine::EvlocallabshowmaskexpMethod ||event == rtengine::EvlocallabshowmaskexpMethodinv
|
if (event == rtengine::EvlocallabshowmaskcolMethod || event == rtengine::EvlocallabshowmaskcolMethodinv ||event == rtengine::EvlocallabshowmaskexpMethod ||event == rtengine::EvlocallabshowmaskexpMethodinv
|
||||||
|| event == rtengine::EvlocallabshowmaskSHMethod || event == rtengine::EvlocallabshowmaskSHMethodinv || event == rtengine::EvlocallabshowmaskvibMethod || event == rtengine::EvlocallabshowmasksoftMethod
|
|| event == rtengine::EvlocallabshowmaskSHMethod || event == rtengine::EvlocallabshowmaskSHMethodinv || event == rtengine::EvlocallabshowmaskvibMethod || event == rtengine::EvlocallabshowmasksoftMethod
|
||||||
|| event == rtengine::EvlocallabshowmaskcbMethod || event == rtengine::EvlocallabshowmaskretiMethod || event == rtengine::EvlocallabshowmasktmMethod || event == rtengine::EvlocallabshowmaskblMethod) {
|
|| event == rtengine::EvlocallabshowmaskcbMethod || event == rtengine::EvlocallabshowmasklcMethod || event == rtengine::EvlocallabshowmaskretiMethod || event == rtengine::EvlocallabshowmasktmMethod || event == rtengine::EvlocallabshowmaskblMethod) {
|
||||||
Locallab::llMaskVisibility* maskStruc = locallab->getMaskVisibility();
|
Locallab::llMaskVisibility* maskStruc = locallab->getMaskVisibility();
|
||||||
ipc->setLocallabMaskVisibility(maskStruc->colorMask, maskStruc->colorMaskinv, maskStruc->expMask, maskStruc->expMaskinv, maskStruc->SHMask, maskStruc->SHMaskinv, maskStruc->vibMask, maskStruc->cbMask, maskStruc->retiMask, maskStruc->softMask, maskStruc->tmMask, maskStruc->blMask);
|
ipc->setLocallabMaskVisibility(maskStruc->colorMask, maskStruc->colorMaskinv, maskStruc->expMask, maskStruc->expMaskinv, maskStruc->SHMask, maskStruc->SHMaskinv, maskStruc->vibMask, maskStruc->lcMask, maskStruc->cbMask, maskStruc->retiMask, maskStruc->softMask, maskStruc->tmMask, maskStruc->blMask);
|
||||||
}
|
}
|
||||||
|
|
||||||
ipc->endUpdateParams(changeFlags); // starts the IPC processing
|
ipc->endUpdateParams(changeFlags); // starts the IPC processing
|
||||||
@ -619,7 +619,7 @@ void ToolPanelCoordinator::profileChange(
|
|||||||
// Reset Locallab mask visibility when a picture is loaded
|
// Reset Locallab mask visibility when a picture is loaded
|
||||||
if (event == rtengine::EvPhotoLoaded) {
|
if (event == rtengine::EvPhotoLoaded) {
|
||||||
locallab->resetMaskVisibility();
|
locallab->resetMaskVisibility();
|
||||||
ipc->setLocallabMaskVisibility(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
|
ipc->setLocallabMaskVisibility(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
// start the IPC processing
|
// start the IPC processing
|
||||||
|
Loading…
x
Reference in New Issue
Block a user