25 template <
class fT,
class ArrT >
38 totalnr_ = inp[0]->info().getTotalSz();
46 for (
int iarr=1; iarr<inp_.size(); iarr++ )
51 if ( inp_[iarr]->info().getTotalSz() > totalnr_ )
52 totalnr_ = inp_[iarr]->info().getTotalSz();
55 out_.setSize( totalnr_ );
56 if ( !out_.getData() )
58 msg_ = tr(
"Cannot stack this type of object");
68 fT* outarr = out_.getData();
70 for (
od_int64 idx=start; idx<=stop; idx++ )
72 fT& outval = outarr[idx];
73 for (
int iarr=0; iarr<inp_.size(); iarr++ )
75 if ( !inp_[iarr] )
continue;
76 const fT* inparr = inp_[iarr]->getData();
78 idx >= inp_[iarr]->info().getTotalSz() )
81 const fT val = inparr[idx];
89 if ( normalize_ && count )
97 void doNormalize(
bool normalize ) { normalize_ = normalize; }
#define mIsUdf(val)
Use mIsUdf to check for undefinedness of simple types.
Definition: undefval.h:285
mODTextTranslationClass(Array1DStacker) public
Definition: arrayndstacker.h:27
#define od_int64
Definition: plftypes.h:34
void doNormalize(bool normalize)
Definition: arrayndstacker.h:97
Definition: uistring.h:88
bool isEmpty() const
Definition: odset.h:43
bool normalize_
Definition: arrayndstacker.h:105
Generalization of a task that can be run in parallel.
Definition: paralleltask.h:64
const uiString errMsg() const
Definition: arrayndstacker.h:98
od_int64 nrIterations() const
Definition: arrayndstacker.h:96
bool doWork(od_int64 start, od_int64 stop, int threadidx)
Definition: arrayndstacker.h:66
bool doPrepare(int nrthreads)
Definition: arrayndstacker.h:41
ArrT & out_
Definition: arrayndstacker.h:104
Gently stacks ArrayND by summation along the secondary axis Currently implemented only 1D...
Definition: arrayndstacker.h:26
const ObjectSet< ArrT > & inp_
Definition: arrayndstacker.h:103
uiString msg_
Definition: arrayndstacker.h:106
#define mClass(module)
Definition: commondefs.h:161
od_int64 totalnr_
Definition: arrayndstacker.h:102