5 #include "Kernel_global.h"
14 template <
typename T=qu
int32>
class KERNELSHARED_EXPORT
Size
20 Size() : _xsize(0), _ysize(0), _zsize(0) {}
27 Size(T x, T y, T z) : _xsize(x), _ysize(y), _zsize(z) {}
32 Size(
const Size& sz) : _xsize(sz.xsize()), _ysize(sz.ysize()), _zsize(sz.zsize()) {}
37 Size(
const QSize& sz) : _xsize(sz.width()), _ysize(sz.height()), _zsize(1) {}
80 if ( !isValid() || f == rUNDEF || f < 0) {
97 return QSize(xsize(), ysize());
152 return (quint64)xsize() * (quint64)ysize() * (quint64)zsize();
155 bool contains(T x, T y, T z=0)
const{
156 return x <= xsize() && y <= ysize() && z <= zsize();
159 bool isValid()
const{
160 if ( isNumericalUndef(_xsize) || isNumericalUndef(_ysize) || isNumericalUndef(_zsize))
163 return _xsize >0 && _ysize > 0 && _zsize > 0;
170 return _xsize == 0 && _ysize == 0 && _zsize == 0;
199 if((!sz1.
isNull() && !sz1.isValid()) || (!sz2.
isNull() && !sz2.isValid())){
206 if((!sz1.
isNull() && !sz1.isValid()) || (!sz2.
isNull() && !sz2.isValid())){
214 if ( !sz1.isValid() && !sz2.isValid())
221 return !operator ==(sz1, sz2);
225 Q_DECLARE_METATYPE(Ilwis::Size<
double>)