 |
OpendTect
6.6
|
Go to the documentation of this file.
27 inline bool filterUndef(
const T* input,T* output,
int sz);
52 typedef bool (*IsUdfFunc)(
const void*,
od_int64 idx);
53 typedef void (*SetUdfFunc)(
void*,
od_int64 idx);
54 typedef void (*UnsetUdfFunc)(
void*,
od_int64 idx);
102 template <
class T>
inline
105 if ( !sz || !outptr )
return true;
107 const T* inptr = input.
arr();
116 return filterUndef( inptr ? inptr : myinp, outptr, sz );
120 template <
class T>
inline
123 if ( !sz )
return true;
125 T* outptr = output.
arr();
129 myoutp = outptr =
new T[sz];
135 output->setValues( outptr, sz );
141 template <
class T>
inline
147 int firstdefined = 0;
148 while ( firstdefined<sz &&
mIsUdf(input[firstdefined]) )
151 if ( firstdefined==sz )
154 for (
int idx=0; idx<=firstdefined; idx++ )
155 output[idx] = input[firstdefined];
157 if ( firstdefined==sz-1 )
160 int prevdefined = firstdefined;
161 int nextdefined = -1;
163 for (
int idx=firstdefined+1; idx<sz; )
165 if ( !
mIsUdf(input[idx]) )
168 output[idx] = input[idx];
175 while ( nextdefined<sz &&
mIsUdf(input[nextdefined]) )
180 if ( nextdefined==sz )
182 for (
int posidx = prevdefined+1; posidx<sz; posidx++ )
183 output[posidx] = input[prevdefined];
189 const T diff = input[nextdefined] - input[prevdefined];
190 const T unit = diff / (float)(nextdefined-prevdefined);
191 for (
int posidx = prevdefined+1; posidx<=nextdefined; posidx++ )
192 output[posidx] = input[prevdefined]+unit*(posidx-prevdefined);
194 prevdefined = nextdefined;
Interface to a series of values.
Definition: odmemory.h:16
static void unsetUdfInt64(void *, od_int64)
Class that handles undefvalues in arrays that are in a format described by a BinDataDesc.
Definition: undefarray.h:39
static void setUdfChar(void *, od_int64)
static void setUdfFloat(void *, od_int64)
#define mIsUdf(val)
Use mIsUdf to check for undefinedness of simple types.
Definition: undefval.h:289
#define od_int64
Definition: plftypes.h:35
bool filterUndef(const T *input, T *output, int sz)
Definition: undefarray.h:142
#define mExpClass(module)
Definition: commondefs.h:177
static void setUdfInt32(void *, od_int64)
static void setUdfUChar(void *, od_int64)
static bool isUdfShort(const void *, od_int64)
static bool isUdfUInt64(const void *, od_int64)
static bool isUdfUInt32(const void *, od_int64)
static bool isUdfFloat(const void *, od_int64)
static bool isUdfDouble(const void *, od_int64)
void setUdf(void *ptr, od_int64 idx) const
static bool isUdfUShort(const void *, od_int64)
void unSetUdf(void *ptr, od_int64 idx) const
static void setUdfUInt64(void *, od_int64)
static bool isUdfChar(const void *, od_int64)
static void unsetUdfChar(void *, od_int64)
IsUdfFunc isudf_
Definition: undefarray.h:56
static bool isUdfInt64(const void *, od_int64)
static void setUdfUInt32(void *, od_int64)
Description of binary data.
Definition: bindatadesc.h:43
static void unsetUdfDouble(void *, od_int64)
static void unsetUdfUInt64(void *, od_int64)
UnsetUdfFunc limitrange_
Definition: undefarray.h:58
static void unsetUdfUShort(void *, od_int64)
bool set(const BinDataDesc &desc)
static void setUdfUShort(void *, od_int64)
static void setUdfInt64(void *, od_int64)
static void unsetUdfShort(void *, od_int64)
UndefArrayHandler(const BinDataDesc &desc)
void getValues(ValueSeries< T > &, int64_t nrvals) const
Definition: valseries.h:255
static void unsetUdfFloat(void *, od_int64)
SetUdfFunc setudf_
Definition: undefarray.h:57
static bool isUdfInt32(const void *, od_int64)
static void setUdfDouble(void *, od_int64)
static void unsetUdfUChar(void *, od_int64)
bool isUdf(const void *ptr, od_int64 idx) const
static void unsetUdfInt32(void *, od_int64)
static bool isUdfUChar(const void *, od_int64)
static void setUdfShort(void *, od_int64)
virtual T * arr()
Definition: valseries.h:55
static void unsetUdfUInt32(void *, od_int64)
Generated at
for the OpendTect
seismic interpretation project.
Copyright (C): dGB Beheer B.V. 1995-2021