+
+ ///Class used to represent the actual state of the image selected and to perform comparisons on its values
+ class ImageExtent
+ {
+ public:
+ ImageExtent(const std::string& x, const std::string& y, const std::string& z, const std::string& t)
+ {
+ sscanf(x.c_str(),"%d",&mExtent[0]);
+ sscanf(y.c_str(),"%d",&mExtent[1]);
+ sscanf(z.c_str(),"%d",&mExtent[2]);
+ sscanf(t.c_str(),"%d",&mExtent[3]);
+ if(x==""){mExtent[0]=1;}
+ if(y==""){mExtent[1]=1;}
+ if(z==""){mExtent[2]=1;}
+ if(t==""){mExtent[3]=1;}
+
+ if (mExtent[3]>1) mDim=4;
+ else if (mExtent[2]>1) mDim=3;
+ else if (mExtent[1]>1) mDim=2;
+ else if (mExtent[0]>1) mDim=1;
+ else mDim=0;
+ }
+
+
+ ///Clears the extent
+ void Clear() { mExtent[0] = mExtent[1] = mExtent[2] = mExtent[3] = 1; }
+
+ ///Returns true if the two extents are compatible
+ bool IsCompatible( const ImageExtent& );
+
+ ///Adds the extent passed as a parameter to the current extent
+ void Add ( const ImageExtent& );
+
+ ///Returns the ieth position of the extent
+ int Get(int i) { return mExtent[i]; }
+
+ ///Returns the dimension of the current image
+ void SetDimension(int dim) { mDim=dim; }
+
+ ///Returns the dimension of the current image
+ int GetDimension() { return mDim; }
+
+ private:
+ int mExtent[4];
+ int mDim;
+ };
+
+ //======================================================================
+