26 virtual od_int64 getStorageSize()
const = 0;
31 bool storageOK()
const;
32 bool updateStorageSize();
59 { copyFrom(ai);
return *
this; }
61 { copyFrom(ai);
return *
this; }
66 bool isOK()
const {
return base::storageOK(); }
69 {
return base::setStorageInternal(vs); }
80 {
return setSize( ((
int)sz) ); }
83 T*
arr() {
return base::ptr_; }
84 const T*
arr()
const {
return base::ptr_; }
87 const T*
getData_()
const {
return base::ptr_; }
111 { copyFrom(ai);
return *
this; }
113 { copyFrom(ai);
return *
this; }
115 bool isOK()
const {
return base::storageOK(); }
120 T
get(int,int)
const;
127 bool setSize(
int,
int);
130 const T**
get2DData()
const {
return (
const T**) ptr2d_; }
133 void updateStorage();
138 void updateCachePointers();
159 { copyFrom(ai);
return *
this; }
161 { copyFrom(ai);
return *
this; }
163 bool isOK()
const {
return base::storageOK(); }
167 void set(int,int,int,T);
168 T
get(int,int,int)
const;
174 bool setSize(
int,
int,
int);
177 const T***
get3DData()
const {
return (
const T***) ptr3d_; }
180 void updateStorage();
185 void updateCachePointers();
211 { copyFrom(ai);
return *
this; }
213 { copyFrom(ai);
return *
this; }
216 bool isOK()
const {
return base::storageOK(); }
219 {
return base::setStorageInternal(vs); }
221 void setND(
const int*,T);
222 T getND(
const int*)
const;
229 bool setSize(
const int*);
242 template <
class T>
inline 249 template <
class T>
inline 263 template <
class T>
inline 277 template <
class T>
inline 299 template <
class T>
inline 304 template <
class T>
inline 324 pErrMsg(
"Cannot store in array without storage" );
332 template <
class T>
inline 340 template <
class T>
inline 349 template <
class T>
inline 358 template <
class T>
inline 370 template <
class T>
inline 381 template <
class T>
inline 391 template <
class T>
inline 394 if ( ni.
getNDim() != 1 )
return false;
399 template <
class T>
inline 408 template <
class T>
inline 417 template <
class T>
inline 426 template <
class T>
inline 436 template <
class T>
inline 446 template <
class T>
inline 468 template <
class T>
inline 487 template <
class T>
inline 496 template <
class T>
inline 506 template <
class T>
inline 509 if ( ni.
getNDim() != 2 )
return false;
514 template <
class T>
inline 523 template <
class T>
inline 531 template <
class T>
inline 546 for (
int idx=0; idx<n1; idx++, offset+=n2 )
551 template <
class T>
inline 560 template <
class T>
inline 569 template <
class T>
inline 579 template <
class T>
inline 589 template <
class T>
inline 608 template <
class T>
inline 616 return ptr3d_[p0][p1][p2];
623 template <
class T>
inline 633 template <
class T>
inline 641 template <
class T>
inline 644 if ( ni.
getNDim() != 3 )
return false;
649 template <
class T>
inline 658 template <
class T>
inline 666 template <
class T>
inline 679 template <
class T>
inline 691 for (
int idx=0; idx<n1; idx++ )
697 for (
int idy=0; idy<n2; idy++, offset+=n3 )
707 template <
class T>
inline 715 template <
class T>
inline 724 template <
class T>
inline 737 template <
class T>
inline 750 template <
class T>
inline 763 template <
class T>
inline 775 template <
class T>
inline 783 for (
int idx=0; idx<ndim; idx++ )
790 template <
class T>
inline 794 for (
int idx=0; idx<ndim; idx++ )
802 template <
class T>
inline 816 template <
class T>
inline 824 {
delete out;
return 0; }
826 const bool success =
clone( oth, *out );
828 {
delete out;
return 0; }
834 template <
class T>
inline 858 if ( inp1d && out1d )
859 { *out1d = *inp1d;
return true; }
865 if ( inp2d && out2d )
866 { *out2d = *inp2d;
return true; }
872 if ( inp3d && out3d )
873 { *out3d = *inp3d;
return true; }
878 if ( inpnd && outnd )
894 const int* pos = iter.
getPos();
896 }
while ( iter.next() );
Array1D ( Subclass of ArrayND ) is a one dimensional array.
Definition: arraynd.h:97
void copyFrom(const ArrayND< T > &)
Definition: arrayndimpl.h:738
virtual bool validPos(int, int, int) const
virtual uint64_t getTotalSz() const
virtual int getNDim() const =0
static ArrayND< T > * create(const ArrayNDInfo &nsz)
Definition: arrayndimpl.h:803
virtual bool setSize(int dim, int nsz)
T * ptr_
Definition: arrayndimpl.h:41
Array1DImpl(int sz)
Definition: arrayndimpl.h:333
T ** ptr2d_
Definition: arrayndimpl.h:141
#define mDeclareAndTryAlloc(tp, var, stmt)
Creates variable, try to alloc and catch bad_alloc.
Definition: commondefs.h:251
const Array2DInfo & info() const
Definition: arrayndimpl.h:123
bool isOK() const
Definition: arrayndimpl.h:66
virtual uint64_t getOffset(int, int) const
bool isOK() const
Definition: arrayndimpl.h:163
Valueseries that allocates its data in smaller chunks. By doing this, it performs better in environme...
Definition: valseriesimpl.h:116
bool setStorage(ValueSeries< T > *vs)
Definition: arrayndimpl.h:68
void updateCachePointers()
Definition: arrayndimpl.h:532
const ValueSeries< T > * getStorage_() const
Definition: arrayndimpl.h:88
virtual int64_t getStorageSize() const =0
virtual bool validPos(const int *) const
Contains the information about the size of Array3D, and in what order the data is stored (if accessab...
Definition: arrayndinfo.h:116
ArrayNDImpl(const ArrayNDInfo &)
Definition: arrayndimpl.h:708
virtual bool setSize(int dim, int sz)
const ValueSeries< T > * getStorage() const
Definition: arraynd.h:42
#define od_int64
Definition: plftypes.h:34
const T * getData_() const
Definition: arrayndimpl.h:181
~ArrayImplBase()
Definition: arrayndimpl.h:29
const ArrayNDInfo & info() const
Definition: arrayndimpl.h:224
void updateCachePointers()
Definition: arrayndimpl.h:680
T * arr()
Definition: arrayndimpl.h:83
T ** get2DData()
Definition: arrayndimpl.h:129
Implementation of Array2D.
Definition: arrayndimpl.h:101
const Array3DInfo & info() const
Definition: arrayndimpl.h:171
const T * getData_() const
Definition: arrayndimpl.h:134
Contains the information about the size of ArrayND, and in what order the data is stored (if accessab...
Definition: arrayndinfo.h:21
Contains the information about the size of Array1D, and in what order the data is stored (if accessab...
Definition: arrayndinfo.h:69
virtual int getSize(int dim) const
Definition: arrayndinfo.h:256
bool updateStorageSize()
Definition: arrayndimpl.h:278
T get(int, int) const
Definition: arrayndimpl.h:469
bool getDataFrom(const ArrayND< T > &templ)
Definition: arrayndimpl.h:305
bool canChangeNrDims() const
Definition: arrayndimpl.h:226
virtual bool setSize(int64_t)
Definition: valseries.h:46
virtual bool validPos(int, int) const
virtual void setND(const int *, T)=0
void set(int pos, T)
Definition: arrayndimpl.h:359
void updateStorage()
Definition: arrayndimpl.h:659
bool setSize(int, int, int)
Definition: arrayndimpl.h:650
Array3DInfoImpl in_
Definition: arrayndimpl.h:190
void deleteAndZeroArrPtr(T *&ptr, bool isowner=true)
Definition: ptrman.h:32
static ArrayND< T > * clone(const ArrayND< T > &)
Definition: arrayndimpl.h:817
virtual T * arr()
3rd party access
Definition: typeset.h:86
virtual int getSize(int dim) const =0
Array2DImpl(int sz0, int sz1)
Definition: arrayndimpl.h:409
const T * getData() const
Definition: arraynd.h:51
virtual T getND(const int *) const =0
const T * arr() const
Definition: arrayndimpl.h:84
virtual const Array3DInfo & info() const =0
bool canSetInfo() const
Definition: arrayndimpl.h:172
Array3DImpl(int sz0, int sz1, int sz2)
Definition: arrayndimpl.h:552
const ValueSeries< T > * getStorage_() const
Definition: arrayndimpl.h:135
virtual uint64_t getOffset(int, int, int) const
Array2D ( Subclass of ArrayND ) is a two dimensional array.
Definition: arraynd.h:127
bool setInfo(const ArrayNDInfo &)
Definition: arrayndimpl.h:776
bool setStorage(ValueSeries< T > *vs)
Definition: arrayndimpl.h:488
bool setSize(int)
Definition: arrayndimpl.h:400
void eraseCache()
Definition: arrayndimpl.h:667
TypeSet< T ** > cachestor_
Definition: arrayndimpl.h:188
int64_t getStorageSize() const
Definition: arrayndimpl.h:89
T *** get3DData()
Definition: arrayndimpl.h:176
bool setInfo(const ArrayNDInfo &)
Definition: arrayndimpl.h:507
Implementation of Array3DInfo.
Definition: arrayndinfo.h:191
Interface to a series of values.
Definition: odmemory.h:15
bool setStorageNoResize(ValueSeries< T > *)
Definition: arrayndimpl.h:250
#define mTryAlloc(var, stmt)
Catches bad_alloc and sets ptr to null as normal.
Definition: commondefs.h:244
void copyFrom(const Array3D< T > &)
Definition: arrayndimpl.h:624
bool storageOK() const
Definition: arrayndimpl.h:300
const T *** get3DData() const
Definition: arrayndimpl.h:177
int64_t getStorageSize() const
Definition: arrayndimpl.h:236
virtual bool validPos(int pos) const
Definition: arrayndinfo.h:77
bool setSize(const int *)
Definition: arrayndimpl.h:791
Definition: arrayndimpl.h:23
Contains the information about the size of Array2D, and in what order the data is stored (if accessab...
Definition: arrayndinfo.h:93
Implementation of ArrayND.
Definition: arrayndimpl.h:199
void updateStorage()
Definition: arrayndimpl.h:524
const T * getData_() const
Definition: arrayndimpl.h:87
virtual ArrayNDInfo * clone() const =0
virtual uint64_t getOffset(const int *) const
#define mDynamicCastGet(typ, out, in)
Definition: commondefs.h:123
bool canSetInfo() const
Definition: arrayndimpl.h:124
ArrayImplBase< T > base
Definition: arrayndimpl.h:52
#define od_uint64
Definition: plftypes.h:35
ArrayImplBase< T > base
Definition: arrayndimpl.h:151
An ArrayND is an array with a given number of dimensions and a size.
Definition: arraynd.h:29
bool canSetStorage() const
Definition: arrayndimpl.h:116
Iterates through all samples in an ArrayND.
Definition: arraynd.h:175
bool setInfo(const ArrayNDInfo &)
Definition: arrayndimpl.h:642
ValueSeries< T > * clone() const
Definition: arrayndimpl.h:63
const T ** get2DData() const
Definition: arrayndimpl.h:130
virtual bool setSize(int dim, int nsz)
size_type size() const
Definition: typeset.h:263
const ValueSeries< T > * getStorage_() const
Definition: arrayndimpl.h:235
T *** ptr3d_
Definition: arrayndimpl.h:189
bool setSize(int64_t sz)
Definition: arrayndimpl.h:79
ValueSeries< T > * stor_
Definition: arrayndimpl.h:40
static uiHor3DInterpol * create(uiParent *)
void copyFrom(const Array2D< T > &)
Definition: arrayndimpl.h:497
virtual bool setInfo(const ArrayNDInfo &)
Definition: arraynd.h:64
virtual const Array1DInfo & info() const =0
Array2DInfoImpl in_
Definition: arrayndimpl.h:140
bool isOK() const
Definition: arrayndimpl.h:216
void copyFrom(const Array1D< T > &)
Definition: arrayndimpl.h:382
Implementation of Array1DInfo.
Definition: arrayndinfo.h:138
bool setStorage(ValueSeries< T > *vs)
Definition: arrayndimpl.h:218
const int * getPos() const
Definition: arraynd.h:187
virtual bool setSize(int dim, int nsz)
void forceCrash(bool withdump)
bool setSize(int, int)
Definition: arrayndimpl.h:515
Implementation of Array3D.
Definition: arrayndimpl.h:150
Implementation of Array2DInfo.
Definition: arrayndinfo.h:164
bool canSetInfo() const
Definition: arrayndimpl.h:76
virtual void erase()
Definition: typeset.h:360
const ValueSeries< T > * getStorage_() const
Definition: arrayndimpl.h:182
bool canSetStorage() const
Definition: arrayndimpl.h:70
const T * getData_() const
Definition: arrayndimpl.h:234
bool canSetStorage() const
Definition: arrayndimpl.h:217
void set(int, int, T)
Definition: arrayndimpl.h:447
Array1DInfoImpl in_
Definition: arrayndimpl.h:91
~Array3DImpl()
Definition: arrayndimpl.h:157
virtual const ArrayNDInfo & info() const =0
int64_t getStorageSize() const
Definition: arrayndimpl.h:136
virtual int getSize(int dim) const
Definition: arrayndinfo.h:250
virtual bool isOK() const
Definition: arraynd.h:323
bool setInfo(const ArrayNDInfo &)
Definition: arrayndimpl.h:392
Implementation of Array1D.
Definition: arrayndimpl.h:51
#define mClass(module)
Definition: commondefs.h:161
virtual const Array2DInfo & info() const =0
#define pErrMsg(msg)
Usual access point for programmer error messages.
Definition: errmsg.h:34
T get(int, int, int) const
Definition: arrayndimpl.h:609
bool canSetInfo() const
Definition: arrayndimpl.h:225
const Array1DInfo & info() const
Definition: arrayndimpl.h:75
virtual void getAll(T *ptr) const
Definition: arraynd.h:503
ArrayImplBase< T > base
Definition: arrayndimpl.h:200
Array3D ( Subclass of ArrayND ) is a three dimensional array.
Definition: arraynd.h:149
ArrayImplBase< T > base
Definition: arrayndimpl.h:102
void set(int, int, int, T)
Definition: arrayndimpl.h:590
~Array2DImpl()
Definition: arrayndimpl.h:108
bool isOK() const
Definition: arrayndimpl.h:115
T getND(const int *) const
Definition: arrayndimpl.h:764
int64_t getStorageSize() const
Definition: arrayndimpl.h:183
ArrayNDInfo * in_
Definition: arrayndimpl.h:238
bool setStorageInternal(ValueSeries< T > *)
Definition: arrayndimpl.h:264
void setND(const int *, T)
Definition: arrayndimpl.h:751
T get(int pos) const
Definition: arrayndimpl.h:371
bool setStorage(ValueSeries< T > *vs)
Definition: arrayndimpl.h:634
~ArrayNDImpl()
Definition: arrayndimpl.h:733
bool canSetStorage() const
Definition: arrayndimpl.h:164
ArrayImplBase()
Definition: arrayndimpl.h:243