LA - new tool - Color appearance (Cam16 & JzCzHz) (#6377)

* Gui improvments

* Several improvments GUI Jz algo

* Change function La for lightess Jz

* SH jzazbz first

* enable Jz SH

* Clean code

* Disabled Munsell correction when Jz

* Change tooltip and Cam16 Munsell

* GUI for CzHz and HzHz curves

* Enable curves Hz(Hz) Cz(Hz)

* Improve Cz chroma

* Jz100 reference refine

* Change limit Jz100

* Refine link between jz100 and peak adaptation

* Improve GUI

* Various improvment PQ PU gamut

* Change defaults settings

* forgotten PL in gamutjz

* Small changes and comment

* Change gamujz parameter

* disabled gamut Jz too slow

* Jzazbz curve Jz(Hz)

* reenable gamutjz

* small changes

* Change tooltip

* Change labels tooltips

* Jzazbz only on advanced mode

* GUI improvments

* Change tooltip

* Change default values and tooltip

* Added tooltip Jz

* Disabled Jz gamut

* Change gamma color and light - remove exposure

* Gamma for exposure and DR

* gamma Sharp

* Gamma vibrance

* gamma optimizations

* Change tooltips

* Optimization PQ

* LA GUI for tone curve Ciecam

* LA ciecam Enable curve lightness - brightness

* LA ciecam GUI color curve

* LA ciecam enable color curve

* Change tooltip and default values

* Enable Jz curve

* Enable Cz(Cz) curve

* Enable Cz(Jz) curve

* Added Log encoding to ciecam

* Improvment algorithm remapping

* Reenable forgotten listener logencodchanged

* Change Jz tooltips

* Reenable dynamic range and exposure

* First change GUI auto ciecam

* 2nd fixed ciecam auto

* Improve GUI maskbackground curves

* Enable activspot for la ciecam

* set sensitive sliders La ciecam when auto scene conditions

* Change internal calculations see comments

* Checcbox ForceJz to 1

* Change tool position - change order CAM model

* Expander for Jzczhz

* Remove unused code

* GUI changes

* Change labels CAM16 Jzazbz

* Change slider brightness parameters

* improvment SH jz

* Some changes to brightness Jz

* Fixed scene conditions auto

* Renable forgotten change

* Prepare calculation Zcam

* Prepare Iz for zcam

* First GUI Zcam

* Improve GUI Zcam

* Calculate Qz white - brightness of the reference white

* Prepare for PQ - eventually

* Init LUT ZCAMBrightCurveJz and ZCAMBrightCurveQz

* prepare zcam achromatic variables

* First zcam

* Change algo step 5 zcam

* Another change original algo

* Another change to original algo

* first colorfullness

* Fixed bad behavior threshold and change c c2 surround parameters

* added saturation Zcam

* Change parameters surround

* Enable chroma zcam

* change chroma and lightness formula

* disable OMP for 2nd process Zcam

* Improvment zcam for some high-light images

* Change parameters overflow zcam

* Change parmeters high datas

* another change to retrieve...

* Simplify code matrix conversion xyz-jzazbz

* Adjust internam parameters zcam

* Change some parameters - clean code

* Enable PQCam16

* Enable PQ Cam16 - disable ZCAM

* remove warning compilation message

* Change GUI jzczhz

* Fixed bad behavior remaping jz

* Remove forgotten parameter - hide Jz100 - PU adaptation- chnage tooltips

* Another change to chroma parameter

* Small changes

* If verbose display in console Cam16 informations

* If verbose display in console source saturation colorfullness

* Change to La calculation for ciecam

* Change GUI cam16 - jzczhz - remove cam16 and jzczhz

* Disable exposure compensation to calculate La for all Ciecam and Log encoding

* Change label Cam16 and jzczhz

* Improve GUI Jz

* Other improvment GUI Jz Cam16

* verify nan Jz and ciecam matrix to avoid crash

* Enable La manual for Jz to change PU-adaptation

* Improve calculation to avoid crash Jz and Cam16 matrix

* Fixed crash with local contrast in cam16

* Clean code loccont

* First step GUI Cie mask

* GUI part 2 - Cie

* Build cieMask

* Gui part 3 cie

* Valid llcieMask

* Valid llcieMask

* Pass GUI curves parameters to iplocallab.cc

* 2nd pass parameters from GUI to iplocallab.cc

* Init first functions modifications

* Add expander to cam16 adjustments

* First test mask cie

* Various improvment GUI - tooltips - process

* Take into account Yb cam16 for Jz - reenable warm-cool

* Surround source Cam16 before Jz

* Improve GUI and process

* Fixed bug and bad behavior last commit

* Fixed bug chroma mask - improve GUI - Relative luminance for Jz

* Increase sensitivity mask chroma

* Improve Jz with saturation Z - improve GUI Jzczhz

* Small code improvment

* Another change mask C and enable mask for Cam16 and Jz

* Some changes

* Enable denoise chroma mask

* Small change LIM01 normchromar

* Enable Zcam matrix

* Improve chroma curves...mask and boudaries

* take into account recursive slider in settings

* Change tooltip - improvment to C curve (denoise C - best value in curves - etc.) - remove Zcam button

* Change tooltips

* First part GUI - local contrast wavelet Jz

* Passed parameters GUI local contrast wav jz to rtengine

* save config wavelet jz

* first try wavelet local contrast Jz

* Add tooltips

* Simplify code wavelet local contrast

* take into account edge wavelet performance in Wavelet Jz

* Fixed overflow jz when usig botth contradt and wavelt local jz contrast

* Adapt size winGdiHandles in filepanel to avoid crash in Windows multieditor

* First GUI part Clarity wavelet Jz

* First try wavelet Jz Cz clarity

* Added tooltips

* Small change to enable wavelet jz

* Disabled (commented) all Zcam code

* Improve behavior when SH local-contrast and Clarity are use both

* Change limit PQremap jz

* Clean and optimize code

* Reenable mjjz

* Change settings guidedfilter wavelet Jz

* Fixed crash when revory based on lum mask negative

* Change tooltip

* Fixed ad behavior auto mean and absolute luminance

* Remove warning in console

* Fixed bad behavior auto Log encoding - bad behavior curves L(H) Jz

* Fixed another bad behavior - reenable curves color and light L(H) C(H)

* first transposition Lab Jz for curves H

* Change mask boundary for Jz

* Various improvment to H curves Jz

* Add amountchrom to Hcurve Color and Light

* Improve gray boundary curves behavior

* reenable Jz curve H(H) - soft radius

* Improve guidefilter Jz H curve

* Threshold chroma Jz(Hz)

* Enable guidedfilter chroma curve H

* improve GUI curves Hz

* Checkbutton chroma for curve Jz(Hz)

* Change event selectspot

* Clean and small optimization code

* Another clean code

* Change calculation Hz references for curves Hz

* Clean code

* Various changes to GF and GUI

* Another change to Chroma for Jz(H)

* Change GUI sensitive Jz100 adapdjzcie

* Improve code for Jz100

* Change default value skin-protection to 0 instead of 50

* Clean code

* Remove BENCHFUN for ciecam

* small correction to huejz_to_huehsv2 conversion

* Added missing plum parameter for jch2xyz_ciecam02float

* another small change to huejz_to_huehsv2

* Improvment to huelab_to_huehsv2 and some double functions

* Fixed warning hide parameters in lgtm-com

* Fixed ? Missing retuen statement in lgtm-com

* Change behavior Log encoding whith PQ Cam16

* Small improvment to Jz PU adaptation

* Added forgoten to_one for Cz slider

* Replace 0.707... by RT_SQRT1_2 - change some settings chroma

* Improvment to getAutoLogloc

* Fixed crash with array in getAutoLogloc

* First try Jz Log encoding

* Forgotten Cz

* Various improvment GUI setlogscale - Jz log encoding

* Change labels tooltips Jz log

* Change wrong clipcz value

* Change tooltip auto scene conditions

* Fixed bad behavior blackevjz whiteevjz

* Small improvment to LA Log encoding std

* Avoid bad behavior Jz log when enable Relative luminance

* Change sourcegray jz calculation

* Revert last change

* Clean and comment code

* Review tooltips thanks to Wayne - harmonize response La log encoding and Jz Log encoding

* Always force Dynamic Range evaluation in full frame mode for Jz log encoding

* Remove unused code

* Small optimizations sigmoid Cam16 and Jz

* Comment code

* Change parameters deltaE for HDR

* Various improvment to Jz - La - sigmoid - log encoding

* Basic support for Sony ILCE-7M4 in camconst.json

* German translation Spot Removal (#6388)

* Filmnegative German translation (#6389)

* (Temporarily) disable `ftree-loop-vectorize` for GCC 11 because of #6384

* Added BlacEv WhiteEv to sigmoidJz

* Improve GUI for BlackEv WhiteEv

* Change location SigmoidJz in Iplocallab

* Improvment GUI and sensitivity sliders strength sigmoid

* Change labels

Co-authored-by: Thanatomanic <6567747+Thanatomanic@users.noreply.github.com>
Co-authored-by: Anna <simonanna@gmx.net>
This commit is contained in:
Desmis
2021-12-21 07:43:59 +01:00
committed by GitHub
parent 4b8481f1c9
commit 1e4f41bc05
31 changed files with 9425 additions and 784 deletions

View File

@@ -118,7 +118,7 @@ public:
bool isLocallabToolAdded();
// Mask background management function
void refChanged(const double huer, const double lumar, const double chromar);
void refChanged(const double huer, const double lumar, const double chromar, const float fab);
// Mask preview functions
virtual bool isMaskViewActive()
@@ -126,7 +126,7 @@ public:
return false;
};
virtual void resetMaskView() {};
virtual void getMaskView(int &colorMask, int &colorMaskinv, int &expMask, int &expMaskinv, int &shMask, int &shMaskinv, int &vibMask, int &softMask, int &blMask, int &tmMask, int &retiMask, int &sharMask, int &lcMask, int &cbMask, int &logMask, int &maskMask) {};
virtual void getMaskView(int &colorMask, int &colorMaskinv, int &expMask, int &expMaskinv, int &shMask, int &shMaskinv, int &vibMask, int &softMask, int &blMask, int &tmMask, int &retiMask, int &sharMask, int &lcMask, int &cbMask, int &logMask, int &maskMask, int &cieMask) {};
// Advice tooltips management function
virtual void updateAdviceTooltips(const bool showTooltips) {};
@@ -151,7 +151,7 @@ public:
protected:
// To be implemented
virtual void updateMaskBackground(const double normChromar, const double normLumar, const double normHuer) {}; // Only necessary when using mask
virtual void updateMaskBackground(const double normChromar, const double normLumar, const double normHuer, const double normHuerjz) {}; // Only necessary when using mask
private:
// Remove button event function
@@ -180,6 +180,7 @@ private:
// Color & Light specific widgets
Gtk::Frame* const lumFrame;
Adjuster* const reparcol;
Adjuster* const gamc;
Adjuster* const lightness;
Adjuster* const contrast;
Adjuster* const chroma;
@@ -277,7 +278,7 @@ public:
bool isMaskViewActive() override;
void resetMaskView() override;
void getMaskView(int &colorMask, int &colorMaskinv, int &expMask, int &expMaskinv, int &shMask, int &shMaskinv, int &vibMask, int &softMask, int &blMask, int &tmMask, int &retiMask, int &sharMask, int &lcMask, int &cbMask, int &logMask, int &maskMask) override;
void getMaskView(int &colorMask, int &colorMaskinv, int &expMask, int &expMaskinv, int &shMask, int &shMaskinv, int &vibMask, int &softMask, int &blMask, int &tmMask, int &retiMask, int &sharMask, int &lcMask, int &cbMask, int &logMask, int &maskMask, int &cieMask) override;
void updateAdviceTooltips(const bool showTooltips) override;
@@ -302,7 +303,7 @@ private:
void convertParamToSimple() override;
void updateGUIToMode(const modeType new_type) override;
void updateMaskBackground(const double normChromar, const double normLumar, const double normHuer) override;
void updateMaskBackground(const double normChromar, const double normLumar, const double normHuer, const double normHuerjz) override;
void curvactivChanged();
void gridMethodChanged();
@@ -347,6 +348,7 @@ private:
Gtk::CheckButton* const norm;
Adjuster* const fatlevel;
Adjuster* const fatanchor;
Adjuster* const gamex;
Adjuster* const sensiex;
Adjuster* const structexp;
Adjuster* const blurexpde;
@@ -402,7 +404,7 @@ public:
bool isMaskViewActive() override;
void resetMaskView() override;
void getMaskView(int &colorMask, int &colorMaskinv, int &expMask, int &expMaskinv, int &shMask, int &shMaskinv, int &vibMask, int &softMask, int &blMask, int &tmMask, int &retiMask, int &sharMask, int &lcMask, int &cbMask, int &logMask, int &maskMask) override;
void getMaskView(int &colorMask, int &colorMaskinv, int &expMask, int &expMaskinv, int &shMask, int &shMaskinv, int &vibMask, int &softMask, int &blMask, int &tmMask, int &retiMask, int &sharMask, int &lcMask, int &cbMask, int &logMask, int &maskMask, int &cieMask) override;
void updateAdviceTooltips(const bool showTooltips) override;
@@ -421,7 +423,7 @@ private:
void convertParamToSimple() override;
void updateGUIToMode(const modeType new_type) override;
void updateMaskBackground(const double normChromar, const double normLumar, const double normHuer) override;
void updateMaskBackground(const double normChromar, const double normLumar, const double normHuer, const double normHuerjz) override;
void expMethodChanged();
void exnoiseMethodChanged();
@@ -438,7 +440,7 @@ private:
};
/* ==== LocallabShadow ==== */
/* ==== LocallabjShadow ==== */
class LocallabShadow:
public Gtk::Box,
public LocallabTool
@@ -498,7 +500,7 @@ public:
bool isMaskViewActive() override;
void resetMaskView() override;
void getMaskView(int &colorMask, int &colorMaskinv, int &expMask, int &expMaskinv, int &shMask, int &shMaskinv, int &vibMask, int &softMask, int &blMask, int &tmMask, int &retiMask, int &sharMask, int &lcMask, int &cbMask, int &logMask, int &maskMask) override;
void getMaskView(int &colorMask, int &colorMaskinv, int &expMask, int &expMaskinv, int &shMask, int &shMaskinv, int &vibMask, int &softMask, int &blMask, int &tmMask, int &retiMask, int &sharMask, int &lcMask, int &cbMask, int &logMask, int &maskMask, int &cieMask) override;
void updateAdviceTooltips(const bool showTooltips) override;
@@ -517,7 +519,7 @@ private:
void convertParamToSimple() override;
void updateGUIToMode(const modeType new_type) override;
void updateMaskBackground(const double normChromar, const double normLumar, const double normHuer) override;
void updateMaskBackground(const double normChromar, const double normLumar, const double normHuer, const double normHuerjz) override;
void shMethodChanged();
void inversshChanged();
@@ -540,6 +542,7 @@ private:
// Vibrance specific widgets
Adjuster* const saturated;
Adjuster* const pastels;
Adjuster* const vibgam;
Adjuster* const warm;
ThresholdAdjuster* const psThreshold;
Gtk::CheckButton* const protectSkins;
@@ -584,7 +587,7 @@ public:
bool isMaskViewActive() override;
void resetMaskView() override;
void getMaskView(int &colorMask, int &colorMaskinv, int &expMask, int &expMaskinv, int &shMask, int &shMaskinv, int &vibMask, int &softMask, int &blMask, int &tmMask, int &retiMask, int &sharMask, int &lcMask, int &cbMask, int &logMask, int &maskMask) override;
void getMaskView(int &colorMask, int &colorMaskinv, int &expMask, int &expMaskinv, int &shMask, int &shMaskinv, int &vibMask, int &softMask, int &blMask, int &tmMask, int &retiMask, int &sharMask, int &lcMask, int &cbMask, int &logMask, int &maskMask, int &cieMask) override;
void updateAdviceTooltips(const bool showTooltips) override;
@@ -610,7 +613,7 @@ private:
void convertParamToSimple() override;
void updateGUIToMode(const modeType new_type) override;
void updateMaskBackground(const double normChromar, const double normLumar, const double normHuer) override;
void updateMaskBackground(const double normChromar, const double normLumar, const double normHuer, const double normHuerjz) override;
void protectskins_toggled();
void avoidcolorshift_toggled();
@@ -642,7 +645,7 @@ public:
bool isMaskViewActive() override;
void resetMaskView() override;
void getMaskView(int &colorMask, int &colorMaskinv, int &expMask, int &expMaskinv, int &shMask, int &shMaskinv, int &vibMask, int &softMask, int &blMask, int &tmMask, int &retiMask, int &sharMask, int &lcMask, int &cbMask, int &logMask, int &maskMask) override;
void getMaskView(int &colorMask, int &colorMaskinv, int &expMask, int &expMaskinv, int &shMask, int &shMaskinv, int &vibMask, int &softMask, int &blMask, int &tmMask, int &retiMask, int &sharMask, int &lcMask, int &cbMask, int &logMask, int &maskMask, int &cieMask) override;
void updateAdviceTooltips(const bool showTooltips) override;
@@ -724,6 +727,7 @@ private:
Adjuster* const noiselumc;
Adjuster* const noiselumdetail;
Adjuster* const noiselequal;
Adjuster* const noisegam;
CurveEditorGroup* const LocalcurveEditorwavhue;
FlatCurveEditor* wavhue;
Adjuster* const noisechrof;
@@ -787,7 +791,7 @@ public:
bool isMaskViewActive() override;
void resetMaskView() override;
void getMaskView(int &colorMask, int &colorMaskinv, int &expMask, int &expMaskinv, int &shMask, int &shMaskinv, int &vibMask, int &softMask, int &blMask, int &tmMask, int &retiMask, int &sharMask, int &lcMask, int &cbMask, int &logMask, int &maskMask) override;
void getMaskView(int &colorMask, int &colorMaskinv, int &expMask, int &expMaskinv, int &shMask, int &shMaskinv, int &vibMask, int &softMask, int &blMask, int &tmMask, int &retiMask, int &sharMask, int &lcMask, int &cbMask, int &logMask, int &maskMask, int &cieMask) override;
void updateAdviceTooltips(const bool showTooltips) override;
void neutral_pressed();
@@ -813,7 +817,7 @@ private:
void convertParamToSimple() override;
void updateGUIToMode(const modeType new_type) override;
void updateMaskBackground(const double normChromar, const double normLumar, const double normHuer) override;
void updateMaskBackground(const double normChromar, const double normLumar, const double normHuer, const double normHuerjz) override;
void blMethodChanged();
void fftwblChanged();
@@ -884,7 +888,7 @@ public:
bool isMaskViewActive() override;
void resetMaskView() override;
void getMaskView(int &colorMask, int &colorMaskinv, int &expMask, int &expMaskinv, int &shMask, int &shMaskinv, int &vibMask, int &softMask, int &blMask, int &tmMask, int &retiMask, int &sharMask, int &lcMask, int &cbMask, int &logMask, int &maskMask) override;
void getMaskView(int &colorMask, int &colorMaskinv, int &expMask, int &expMaskinv, int &shMask, int &shMaskinv, int &vibMask, int &softMask, int &blMask, int &tmMask, int &retiMask, int &sharMask, int &lcMask, int &cbMask, int &logMask, int &maskMask, int &cieMask) override;
void updateAdviceTooltips(const bool showTooltips) override;
@@ -903,7 +907,7 @@ private:
void convertParamToSimple() override;
void updateGUIToMode(const modeType new_type) override;
void updateMaskBackground(const double normChromar, const double normLumar, const double normHuer) override;
void updateMaskBackground(const double normChromar, const double normLumar, const double normHuer, const double normHuerjz) override;
void equiltmChanged();
void showmasktmMethodChanged();
@@ -983,7 +987,7 @@ public:
bool isMaskViewActive() override;
void resetMaskView() override;
void getMaskView(int &colorMask, int &colorMaskinv, int &expMask, int &expMaskinv, int &shMask, int &shMaskinv, int &vibMask, int &softMask, int &blMask, int &tmMask, int &retiMask, int &sharMask, int &lcMask, int &cbMask, int &logMask, int &maskMask) override;
void getMaskView(int &colorMask, int &colorMaskinv, int &expMask, int &expMaskinv, int &shMask, int &shMaskinv, int &vibMask, int &softMask, int &blMask, int &tmMask, int &retiMask, int &sharMask, int &lcMask, int &cbMask, int &logMask, int &maskMask, int &cieMask) override;
void updateAdviceTooltips(const bool showTooltips) override;
@@ -1002,7 +1006,7 @@ private:
void convertParamToSimple() override;
void updateGUIToMode(const modeType new_type) override;
void updateMaskBackground(const double normChromar, const double normLumar, const double normHuer) override;
void updateMaskBackground(const double normChromar, const double normLumar, const double normHuer, const double normHuerjz) override;
void loglinChanged();
void retinexMethodChanged();
@@ -1026,6 +1030,7 @@ class LocallabSharp:
private:
Adjuster* const sharcontrast;
Adjuster* const sharblur;
Adjuster* const shargam;
Adjuster* const sharamount;
Adjuster* const shardamping;
Adjuster* const shariter;
@@ -1042,7 +1047,7 @@ public:
bool isMaskViewActive() override;
void resetMaskView() override;
void getMaskView(int &colorMask, int &colorMaskinv, int &expMask, int &expMaskinv, int &shMask, int &shMaskinv, int &vibMask, int &softMask, int &blMask, int &tmMask, int &retiMask, int &sharMask, int &lcMask, int &cbMask, int &logMask, int &maskMask) override;
void getMaskView(int &colorMask, int &colorMaskinv, int &expMask, int &expMaskinv, int &shMask, int &shMaskinv, int &vibMask, int &softMask, int &blMask, int &tmMask, int &retiMask, int &sharMask, int &lcMask, int &cbMask, int &logMask, int &maskMask, int &cieMask) override;
void updateAdviceTooltips(const bool showTooltips) override;
@@ -1089,6 +1094,9 @@ private:
Adjuster* const residshathr;
Adjuster* const residhi;
Adjuster* const residhithr;
Adjuster* const gamlc;
Adjuster* const residgam;
Adjuster* const residslop;
Adjuster* const sensilc;
Adjuster* const reparw;
Gtk::Frame* const clariFrame;
@@ -1173,7 +1181,7 @@ public:
bool isMaskViewActive() override;
void resetMaskView() override;
void getMaskView(int &colorMask, int &colorMaskinv, int &expMask, int &expMaskinv, int &shMask, int &shMaskinv, int &vibMask, int &softMask, int &blMask, int &tmMask, int &retiMask, int &sharMask, int &lcMask, int &cbMask, int &logMask, int &maskMask) override;
void getMaskView(int &colorMask, int &colorMaskinv, int &expMask, int &expMaskinv, int &shMask, int &shMaskinv, int &vibMask, int &softMask, int &blMask, int &tmMask, int &retiMask, int &sharMask, int &lcMask, int &cbMask, int &logMask, int &maskMask, int &cieMask) override;
void updateAdviceTooltips(const bool showTooltips) override;
@@ -1198,7 +1206,7 @@ private:
void convertParamToSimple() override;
void updateGUIToMode(const modeType new_type) override;
void updateMaskBackground(const double normChromar, const double normLumar, const double normHuer) override;
void updateMaskBackground(const double normChromar, const double normLumar, const double normHuer, const double normHuerjz) override;
void localcontMethodChanged();
void origlcChanged();
@@ -1272,7 +1280,7 @@ public:
bool isMaskViewActive() override;
void resetMaskView() override;
void getMaskView(int &colorMask, int &colorMaskinv, int &expMask, int &expMaskinv, int &shMask, int &shMaskinv, int &vibMask, int &softMask, int &blMask, int &tmMask, int &retiMask, int &sharMask, int &lcMask, int &cbMask, int &logMask, int &maskMask) override;
void getMaskView(int &colorMask, int &colorMaskinv, int &expMask, int &expMaskinv, int &shMask, int &shMaskinv, int &vibMask, int &softMask, int &blMask, int &tmMask, int &retiMask, int &sharMask, int &lcMask, int &cbMask, int &logMask, int &maskMask, int &cieMask) override;
void updateAdviceTooltips(const bool showTooltips) override;
@@ -1291,7 +1299,7 @@ private:
void convertParamToSimple() override;
void updateGUIToMode(const modeType new_type) override;
void updateMaskBackground(const double normChromar, const double normLumar, const double normHuer) override;
void updateMaskBackground(const double normChromar, const double normLumar, const double normHuer, const double normHuerjz) override;
void showmaskcbMethodChanged();
void enacbMaskChanged();
@@ -1375,7 +1383,7 @@ public:
bool isMaskViewActive() override;
void resetMaskView() override;
void getMaskView(int &colorMask, int &colorMaskinv, int &expMask, int &expMaskinv, int &shMask, int &shMaskinv, int &vibMask, int &softMask, int &blMask, int &tmMask, int &retiMask, int &sharMask, int &lcMask, int &cbMask, int &logMask, int &maskMask) override;
void getMaskView(int &colorMask, int &colorMaskinv, int &expMask, int &expMaskinv, int &shMask, int &shMaskinv, int &vibMask, int &softMask, int &blMask, int &tmMask, int &retiMask, int &sharMask, int &lcMask, int &cbMask, int &logMask, int &maskMask, int &cieMask) override;
void updateAdviceTooltips(const bool showTooltips) override;
void surroundChanged();
@@ -1390,7 +1398,7 @@ public:
void adjusterChanged(Adjuster* a, double newval) override;
void curveChanged(CurveEditor* ce) override;
void updateAutocompute(const float blackev, const float whiteev, const float sourceg, const float sourceab, const float targetg);
void updateAutocompute(const float blackev, const float whiteev, const float sourceg, const float sourceab, const float targetg, const float jz1);
private:
void enabledChanged() override;
@@ -1405,7 +1413,7 @@ private:
void ciecamChanged();
void showmaskLMethodChanged();
void enaLMaskChanged();
void updateMaskBackground(const double normChromar, const double normLumar, const double normHuer) override;
void updateMaskBackground(const double normChromar, const double normLumar, const double normHuer, const double normHuerjz) override;
void updateLogGUI();
void updateLogGUI2();
@@ -1462,7 +1470,7 @@ public:
bool isMaskViewActive() override;
void resetMaskView() override;
void getMaskView(int &colorMask, int &colorMaskinv, int &expMask, int &expMaskinv, int &shMask, int &shMaskinv, int &vibMask, int &softMask, int &blMask, int &tmMask, int &retiMask, int &sharMask, int &lcMask, int &cbMask, int &logMask, int &maskMask) override;
void getMaskView(int &colorMask, int &colorMaskinv, int &expMask, int &expMaskinv, int &shMask, int &shMaskinv, int &vibMask, int &softMask, int &blMask, int &tmMask, int &retiMask, int &sharMask, int &lcMask, int &cbMask, int &logMask, int &maskMask, int &cieMask) override;
void updateAdviceTooltips(const bool showTooltips) override;
@@ -1488,7 +1496,7 @@ private:
void convertParamToSimple() override;
void updateGUIToMode(const modeType new_type) override;
void updateMaskBackground(const double normChromar, const double normLumar, const double normHuer) override;
void updateMaskBackground(const double normChromar, const double normLumar, const double normHuer, const double normHuerjz) override;
void showmask_MethodChanged();
void enamaskChanged();
@@ -1498,4 +1506,221 @@ private:
void updateMaskGUI();
};
/* ==== Locallabcie ==== */
class Locallabcie:
public Gtk::Box,
public ThresholdAdjusterListener,
public LocallabTool
{
private:
Adjuster* const sensicie;
Adjuster* const reparcie;
Gtk::CheckButton* const jabcie;
MyComboBoxText* const modecam;
MyComboBoxText* const modecie;
Gtk::Frame* const jzFrame;
Gtk::Box* const modeHBoxcam;
Gtk::Box* const modeHBoxcie;
Gtk::Frame* const cieFrame;
Gtk::CheckButton* const Autograycie;
Adjuster* const sourceGraycie;
Adjuster* const sourceabscie;
MyComboBoxText* const sursourcie;
Gtk::Box* const surHBoxcie;
Gtk::Frame* const cie1Frame;
Gtk::Frame* const cie1lightFrame;
Gtk::Frame* const cie1contFrame;
Gtk::Frame* const cie1colorFrame;
Gtk::Frame* const czlightFrame;
// Gtk::Frame* const czcontFrame;
Gtk::Frame* const czcolorFrame;
Gtk::Frame* const PQFrame;
Gtk::CheckButton* const qtoj;
Adjuster* const lightlcie;
Adjuster* const lightjzcie;
Adjuster* const contjzcie;
Adjuster* const adapjzcie;
Adjuster* const jz100;
Adjuster* const pqremap;
Adjuster* const pqremapcam16;
Gtk::CheckButton* const forcejz;
MyExpander* const expjz;
Gtk::Frame* const jzshFrame;
Adjuster* const hljzcie;
Adjuster* const hlthjzcie;
Adjuster* const shjzcie;
Adjuster* const shthjzcie;
Adjuster* const radjzcie;
MyExpander* const expwavjz;
Gtk::Frame* const contFramejz;
Adjuster* const sigmalcjz;
CurveEditorGroup* const LocalcurveEditorwavjz;
FlatCurveEditor* const wavshapejz;
ThresholdAdjuster* const csThresholdjz;
Gtk::Frame* const clariFramejz;
Adjuster* const clarilresjz;
Adjuster* const claricresjz;
Adjuster* const clarisoftjz;
MyExpander* const expcam16;
Adjuster* const lightqcie;
Adjuster* const contlcie;
Adjuster* const contqcie;
Adjuster* const contthrescie;
Gtk::Frame* const logjzFrame;
Gtk::CheckButton* const logjz;
Adjuster* const blackEvjz;
Adjuster* const whiteEvjz;
Adjuster* const targetjz;
Gtk::Frame* const bevwevFrame;
Gtk::CheckButton* const forcebw;
Gtk::Frame* const sigmoidFrame;
Adjuster* const sigmoidldacie;
Adjuster* const sigmoidthcie;
Adjuster* const sigmoidblcie;
Gtk::CheckButton* const sigmoidqjcie;
Gtk::Frame* const sigmoidjzFrame;
Gtk::CheckButton* const sigjz;
Adjuster* const sigmoidldajzcie;
Adjuster* const sigmoidthjzcie;
Adjuster* const sigmoidbljzcie;
Adjuster* const colorflcie;
Adjuster* const saturlcie;
Adjuster* const rstprotectcie;
Adjuster* const chromlcie;
Adjuster* const huecie;
CurveEditorGroup* const cieCurveEditorG;
MyComboBoxText* const toneMethodcie;
DiagonalCurveEditor* const shapecie;
CurveEditorGroup* const cieCurveEditorG2;
MyComboBoxText* const toneMethodcie2;
DiagonalCurveEditor* const shapecie2;
Adjuster* const chromjzcie;
Adjuster* const saturjzcie;
Adjuster* const huejzcie;
CurveEditorGroup* const jz1CurveEditorG;
DiagonalCurveEditor* const shapejz;
DiagonalCurveEditor* const shapecz;
Gtk::Frame* const HFramejz;
Gtk::Frame* const JzHFramejz;
CurveEditorGroup* const jz2CurveEditorG;
CurveEditorGroup* const jz3CurveEditorG;
DiagonalCurveEditor* const shapeczjz;
FlatCurveEditor* const HHshapejz;
FlatCurveEditor* const CHshapejz;
FlatCurveEditor* const LHshapejz;
Adjuster* const softjzcie;
Adjuster* const thrhjzcie;
Gtk::CheckButton* const chjzcie;
Adjuster* const strsoftjzcie;
/*
Gtk::Frame* const ciezFrame;
Adjuster* const lightlzcam;
Adjuster* const lightqzcam;
Adjuster* const contlzcam;
Adjuster* const contqzcam;
Adjuster* const contthreszcam;
Adjuster* const colorflzcam;
Adjuster* const saturzcam;
Adjuster* const chromzcam;
*/
MyExpander* const expLcie;
Gtk::Frame* const cie2Frame;
Adjuster* const targetGraycie;
Adjuster* const targabscie;
Adjuster* const detailcie;
Adjuster* const catadcie;
MyComboBoxText* const surroundcie;
Gtk::Box* const surrHBoxcie;
MyExpander* const exprecovcie;
Gtk::Label* const maskusablecie;
Gtk::Label* const maskunusablecie;
Adjuster* const recothrescie;
Adjuster* const lowthrescie;
Adjuster* const higthrescie;
Adjuster* const decaycie;
MyExpander* const expmaskcie;
MyComboBoxText* const showmaskcieMethod;
Gtk::CheckButton* const enacieMask;
CurveEditorGroup* const maskcieCurveEditorG;
FlatCurveEditor* const CCmaskcieshape;
FlatCurveEditor* const LLmaskcieshape;
FlatCurveEditor* const HHmaskcieshape;
Adjuster* const blendmaskcie;
Adjuster* const radmaskcie;
Adjuster* const lapmaskcie;
Adjuster* const chromaskcie;
Adjuster* const gammaskcie;
Adjuster* const slomaskcie;
CurveEditorGroup* const mask2cieCurveEditorG;
DiagonalCurveEditor* const Lmaskcieshape;
sigc::connection AutograycieConn, forcejzConn, forcebwConn, qtojConn, showmaskcieMethodConn, enacieMaskConn, jabcieConn, sursourcieconn, surroundcieconn, modecieconn, modecamconn, sigmoidqjcieconn, logjzconn, sigjzconn, chjzcieconn, toneMethodcieConn, toneMethodcieConn2;
public:
Locallabcie();
~Locallabcie();
bool isMaskViewActive() override;
void resetMaskView() override;
void getMaskView(int &colorMask, int &colorMaskinv, int &expMask, int &expMaskinv, int &shMask, int &shMaskinv, int &vibMask, int &softMask, int &blMask, int &tmMask, int &retiMask, int &sharMask, int &lcMask, int &cbMask, int &logMask, int &maskMask, int &cieMask) override;
void updateAdviceTooltips(const bool showTooltips) override;
void setDefaultExpanderVisibility() override;
void disableListener() override;
void enableListener() override;
void read(const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr) override;
void write(rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr) override;
void setDefaults(const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr) override;
void adjusterChanged(Adjuster* a, double newval) override;
void adjusterChanged(ThresholdAdjuster* a, double newBottom, double newTop) override {}; // Not used
// void adjusterChanged3(ThresholdAdjuster* a, double newBottom, double newTop) override {};
void adjusterChanged(ThresholdAdjuster* a, double newBottomLeft, double newTopLeft, double newBottomRight, double newTopRight) override {}; // Not used
void adjusterChanged(ThresholdAdjuster* a, int newBottom, int newTop) override {}; // Not used
void adjusterChanged(ThresholdAdjuster* a, int newBottomLeft, int newTopLeft, int newBottomRight, int newTopRight) override {}; // Not used
void adjusterChanged2(ThresholdAdjuster* a, int newBottomL, int newTopL, int newBottomR, int newTopR) override;
void sursourcieChanged();
void surroundcieChanged();
void modecieChanged();
void modecamChanged();
void curveChanged(CurveEditor* ce) override;
void toneMethodcieChanged();
void toneMethodcie2Changed();
void updateAutocompute(const float blackev, const float whiteev, const float sourceg, const float sourceab, const float targetg, const float jz1);
private:
void enabledChanged() override;
void convertParamToNormal() override;
void convertParamToSimple() override;
void updateGUIToMode(const modeType new_type) override;
void complexityModeChanged();
void AutograycieChanged();
void forcejzChanged();
void forcebwChanged();
void qtojChanged();
void jabcieChanged();
void sigmoidqjcieChanged();
void logjzChanged();
void sigjzChanged();
void chjzcieChanged();
void updatecieGUI();
void updateMaskBackground(const double normChromar, const double normLumar, const double normHuer, const double normHuerjz) override;
void showmaskcieMethodChanged();
void enacieMaskChanged();
};
#endif