diff --git a/newimage.h b/newimage.h index 472226a837e2ff6bc22f4719e4cf67fb55105cdb..f2a2707518a624d49d9b8607491b268d5950163c 100644 --- a/newimage.h +++ b/newimage.h @@ -278,7 +278,22 @@ int readGeneralVolume(volume<T>& target, const std::string& filename, _use_default_validity(false) {} }; - private: + // initialize can be called from the ShadowVolume + // class, hence has protected visibility + protected: + virtual int initialize( + int64_t xsize, int64_t ysize, int64_t zsize, + int64_t tsize, int64_t d5, int64_t d6, int64_t d7, + T *d, bool d_owner, int64_t nthreads); //Master 7D + + private: + + int initialize( + int64_t xsize, int64_t ysize, int64_t zsize, + T *d, bool d_owner, int64_t nthreads); //3D + int initialize( + int64_t xsize, int64_t ysize, int64_t zsize, + int64_t tsize, T *d, bool d_owner, int64_t nthreads); //4D // Internal functions inline T* basicptr(int64_t x, int64_t y, int64_t z) { @@ -287,10 +302,6 @@ int readGeneralVolume(volume<T>& target, const std::string& filename, inline T* basicptr(int64_t x, int64_t y, int64_t z) const { return (Data + (z*RowsY + y)*ColumnsX + x); } - int initialize(int64_t xsize, int64_t ysize, int64_t zsize, T *d, bool d_owner, int64_t nthreads); //3D - int initialize(int64_t xsize, int64_t ysize, int64_t zsize, int64_t tsize, T *d, bool d_owner, int64_t nthreads); //4D - virtual int initialize(int64_t xsize, int64_t ysize, int64_t zsize, int64_t tsize, int64_t d5, int64_t d6, int64_t d7, T *d, bool d_owner, int64_t nthreads); //Master 7D - void setdefaultproperties(); void enforcelimits(std::vector<int>& lims) const; @@ -808,6 +819,12 @@ private: const volume<T>& owner() const; +protected: + virtual int initialize( + int64_t xsize, int64_t ysize, int64_t zsize, + int64_t tsize, int64_t d5, int64_t d6, int64_t d7, + T *d, bool d_owner, int64_t nt); + public: using volume<T>::operator=; @@ -842,8 +859,6 @@ public: [[deprecated("Calling setsplineorder on a ShadowVolume will result in runtime errors!")]] virtual void setsplineorder(int order); - virtual int initialize(int64_t xsize, int64_t ysize, int64_t zsize, int64_t tsize, int64_t d5, int64_t d6, int64_t d7, T *d, bool d_owner, int64_t nt); - const volume<T>& equals(const volume<T>& source); ShadowVolume();