diff --git a/rtengine/badpixels.cc b/rtengine/badpixels.cc index 79b8187f7..5f519f7c2 100644 --- a/rtengine/badpixels.cc +++ b/rtengine/badpixels.cc @@ -20,6 +20,7 @@ #include "array2D.h" #include "median.h" #include "pixelsmap.h" +#include "rawimage.h" #include "rawimagesource.h" namespace rtengine diff --git a/rtengine/capturesharpening.cc b/rtengine/capturesharpening.cc index 63c42026e..4eeca1f15 100644 --- a/rtengine/capturesharpening.cc +++ b/rtengine/capturesharpening.cc @@ -20,6 +20,7 @@ #include #include "rtengine.h" +#include "rawimage.h" #include "rawimagesource.h" #include "rt_math.h" #include "procparams.h" diff --git a/rtengine/dcp.cc b/rtengine/dcp.cc index 9fac31c99..78655dcf6 100644 --- a/rtengine/dcp.cc +++ b/rtengine/dcp.cc @@ -21,6 +21,7 @@ #include #include #include +#include #include "dcp.h" diff --git a/rtengine/dfmanager.h b/rtengine/dfmanager.h index 23ca97d14..e1fa38f77 100644 --- a/rtengine/dfmanager.h +++ b/rtengine/dfmanager.h @@ -30,6 +30,7 @@ namespace rtengine { +class RawImage; class dfInfo { public: diff --git a/rtengine/eahd_demosaic.cc b/rtengine/eahd_demosaic.cc index aa8fdf485..b87c0771d 100644 --- a/rtengine/eahd_demosaic.cc +++ b/rtengine/eahd_demosaic.cc @@ -20,6 +20,7 @@ #include #include "color.h" +#include "rawimage.h" #include "rawimagesource.h" #include "rawimagesource_i.h" #include "jaggedarray.h" diff --git a/rtengine/ffmanager.cc b/rtengine/ffmanager.cc index e1a9134a8..2dbc95055 100644 --- a/rtengine/ffmanager.cc +++ b/rtengine/ffmanager.cc @@ -50,6 +50,13 @@ inline ffInfo& ffInfo::operator =(const ffInfo &o) return *this; } +ffInfo::~ffInfo() +{ + if( ri ) { + delete ri; + } +} + bool ffInfo::operator <(const ffInfo &e2) const { if( this->maker.compare( e2.maker) >= 0 ) { diff --git a/rtengine/ffmanager.h b/rtengine/ffmanager.h index 537f8ee46..80ef5fa1c 100644 --- a/rtengine/ffmanager.h +++ b/rtengine/ffmanager.h @@ -19,16 +19,16 @@ #pragma once #include +#include #include #include #include -#include "rawimage.h" - namespace rtengine { +class RawImage; class ffInfo { public: @@ -48,13 +48,8 @@ public: ffInfo( const ffInfo &o) : pathname(o.pathname), maker(o.maker), model(o.model), lens(o.lens), aperture(o.aperture), focallength(o.focallength), timestamp(o.timestamp), ri(nullptr) {} - ~ffInfo() - { - if( ri ) { - delete ri; - } - } + ~ffInfo(); ffInfo &operator =(const ffInfo &o); bool operator <(const ffInfo &e2) const; diff --git a/rtengine/filmnegativeproc.cc b/rtengine/filmnegativeproc.cc index 81de775a3..1eae22ad6 100644 --- a/rtengine/filmnegativeproc.cc +++ b/rtengine/filmnegativeproc.cc @@ -23,6 +23,7 @@ #include #endif +#include "rawimage.h" #include "rawimagesource.h" #include "mytime.h" diff --git a/rtengine/hphd_demosaic_RT.cc b/rtengine/hphd_demosaic_RT.cc index 0e56eae48..342cd2b6b 100644 --- a/rtengine/hphd_demosaic_RT.cc +++ b/rtengine/hphd_demosaic_RT.cc @@ -18,6 +18,7 @@ */ #include +#include "rawimage.h" #include "rawimagesource.h" #include "rawimagesource_i.h" #include "jaggedarray.h" diff --git a/rtengine/imagedata.h b/rtengine/imagedata.h index 99caaf361..06c7f4edf 100644 --- a/rtengine/imagedata.h +++ b/rtengine/imagedata.h @@ -21,7 +21,6 @@ #include #include -#include "rawimage.h" #include #include #include "../rtexif/rtexif.h" diff --git a/rtengine/pdaflinesfilter.cc b/rtengine/pdaflinesfilter.cc index d0694fd11..350c6f758 100644 --- a/rtengine/pdaflinesfilter.cc +++ b/rtengine/pdaflinesfilter.cc @@ -19,6 +19,7 @@ */ #include "pdaflinesfilter.h" +#include "rawimage.h" #include "settings.h" #include #include "camconst.h" diff --git a/rtengine/pdaflinesfilter.h b/rtengine/pdaflinesfilter.h index 7f4c7985b..e2904716e 100644 --- a/rtengine/pdaflinesfilter.h +++ b/rtengine/pdaflinesfilter.h @@ -26,6 +26,8 @@ namespace rtengine { +class RawImage; + class PDAFLinesFilter: public rtengine::NonCopyable { public: diff --git a/rtengine/rawimage.h b/rtengine/rawimage.h index 9c6d42969..4537fdcab 100644 --- a/rtengine/rawimage.h +++ b/rtengine/rawimage.h @@ -16,8 +16,7 @@ * You should have received a copy of the GNU General Public License * along with RawTherapee. If not, see . */ -#ifndef __RAWIMAGE_H -#define __RAWIMAGE_H +#pragma once #include #include @@ -307,5 +306,3 @@ public: }; } - -#endif // __RAWIMAGE_H diff --git a/rtengine/rawimagesource.cc b/rtengine/rawimagesource.cc index d7e8ac812..ca324a5c1 100644 --- a/rtengine/rawimagesource.cc +++ b/rtengine/rawimagesource.cc @@ -21,6 +21,7 @@ #include "rtengine.h" #include "imagefloat.h" +#include "rawimage.h" #include "rawimagesource.h" #include "rawimagesource_i.h" #include "jaggedarray.h" @@ -501,6 +502,26 @@ RawImageSource::~RawImageSource () } } +unsigned RawImageSource::FC(int row, int col) const +{ + return ri->FC(row, col); +} + +eSensorType RawImageSource::getSensorType () const +{ + return ri != nullptr ? ri->getSensorType() : ST_NONE; +} + +bool RawImageSource::isMono() const +{ + return ri->get_colors() == 1; +} + +int RawImageSource::getRotateDegree() const +{ + return ri->get_rotateDegree(); +} + //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% void RawImageSource::transformRect (const PreviewProps &pp, int tran, int &ssx1, int &ssy1, int &width, int &height, int &fw) diff --git a/rtengine/rawimagesource.h b/rtengine/rawimagesource.h index 771398fa0..118dcb559 100644 --- a/rtengine/rawimagesource.h +++ b/rtengine/rawimagesource.h @@ -33,7 +33,7 @@ namespace rtengine { - +class RawImage; class DiagonalCurve; class RetinextransmissionCurve; class RetinexgaintransmissionCurve; @@ -110,10 +110,7 @@ protected: void transformRect (const PreviewProps &pp, int tran, int &sx1, int &sy1, int &width, int &height, int &fw); void transformPosition (int x, int y, int tran, int& tx, int& ty); - unsigned FC(int row, int col) const - { - return ri->FC(row, col); - } + unsigned FC(int row, int col) const; inline void getRowStartEnd (int x, int &start, int &end); static void getProfilePreprocParams(cmsHPROFILE in, float& gammafac, float& lineFac, float& lineSum); @@ -147,15 +144,9 @@ public: void scaleColors (int winx, int winy, int winw, int winh, const procparams::RAWParams &raw, array2D &rawData); // raw for cblack void getImage (const ColorTemp &ctemp, int tran, Imagefloat* image, const PreviewProps &pp, const procparams::ToneCurveParams &hrp, const procparams::RAWParams &raw) override; - eSensorType getSensorType () const override - { - return ri != nullptr ? ri->getSensorType() : ST_NONE; - } - bool isMono () const override - { - return ri->get_colors() == 1; - } - ColorTemp getWB () const override + eSensorType getSensorType () const override; + bool isMono () const override; + ColorTemp getWB () const override { return camera_wb; } @@ -173,10 +164,7 @@ public: void getFullSize (int& w, int& h, int tr = TR_NONE) override; void getSize (const PreviewProps &pp, int& w, int& h) override; - int getRotateDegree() const override - { - return ri->get_rotateDegree(); - } + int getRotateDegree() const override; ImageMatrices* getImageMatrices () override { diff --git a/rtengine/vng4_demosaic_RT.cc b/rtengine/vng4_demosaic_RT.cc index 66413e4c7..384ec3219 100644 --- a/rtengine/vng4_demosaic_RT.cc +++ b/rtengine/vng4_demosaic_RT.cc @@ -21,6 +21,7 @@ //////////////////////////////////////////////////////////////// #include "rtengine.h" +#include "rawimage.h" #include "rawimagesource.h" #include "procparams.h" #include "../rtgui/multilangmgr.h" diff --git a/rtengine/xtrans_demosaic.cc b/rtengine/xtrans_demosaic.cc index 9a3b341cc..418d369b8 100644 --- a/rtengine/xtrans_demosaic.cc +++ b/rtengine/xtrans_demosaic.cc @@ -20,6 +20,7 @@ //////////////////////////////////////////////////////////////// #include "rtengine.h" +#include "rawimage.h" #include "rawimagesource.h" #include "rt_algo.h" #include "rt_math.h" diff --git a/rtgui/bayerpreprocess.h b/rtgui/bayerpreprocess.h index 5d2b101d9..9114c37d4 100644 --- a/rtgui/bayerpreprocess.h +++ b/rtgui/bayerpreprocess.h @@ -22,7 +22,6 @@ #include #include "adjuster.h" #include "toolpanel.h" -#include "../rtengine/rawimage.h" class BayerPreProcess : public ToolParamBlock, public AdjusterListener, public FoldableToolPanel { diff --git a/rtgui/preprocess.h b/rtgui/preprocess.h index 015fa3650..cf4cc8857 100644 --- a/rtgui/preprocess.h +++ b/rtgui/preprocess.h @@ -24,7 +24,6 @@ #include "toolpanel.h" #include "adjuster.h" #include "guiutils.h" -#include "../rtengine/rawimage.h" class PreProcess : public ToolParamBlock, public AdjusterListener, public FoldableToolPanel { diff --git a/rtgui/rawexposure.h b/rtgui/rawexposure.h index 1dafd4d64..339a054c9 100644 --- a/rtgui/rawexposure.h +++ b/rtgui/rawexposure.h @@ -22,7 +22,6 @@ #include #include "adjuster.h" #include "toolpanel.h" -#include "../rtengine/rawimage.h" class RAWExposure : public ToolParamBlock, public AdjusterListener, public FoldableToolPanel { diff --git a/rtgui/xtransrawexposure.h b/rtgui/xtransrawexposure.h index 08cdcc8bf..4211e3e0c 100644 --- a/rtgui/xtransrawexposure.h +++ b/rtgui/xtransrawexposure.h @@ -22,7 +22,6 @@ #include #include "adjuster.h" #include "toolpanel.h" -#include "../rtengine/rawimage.h" class XTransRAWExposure : public ToolParamBlock, public AdjusterListener, public FoldableToolPanel {