Xmipp  v3.23.11-Nereus
Public Member Functions | Public Attributes | Protected Attributes | List of all members
MultidimArrayGeneric Class Reference

#include <multidim_array_generic.h>

Collaboration diagram for MultidimArrayGeneric:
Collaboration graph
[legend]

Public Member Functions

 MultidimArrayGeneric ()
 
 MultidimArrayGeneric (MultidimArrayBase *array, DataType _datatype)
 
 MultidimArrayGeneric (MultidimArrayGeneric &mdim, int select_slice)
 
 ~MultidimArrayGeneric ()
 
void init ()
 
void clear ()
 
void setDatatype (DataType imgType)
 
void aliasSlice (MultidimArrayGeneric &mdim, int select_slice)
 
void link (MultidimArrayBase *array)
 
void resize (size_t Ndim, int Zdim, int Ydim, int Xdim, bool copy=true)
 
void setDimensions (int Xdim, int Ydim, int Zdim, size_t Ndim)
 
void resize (ArrayDim &adim, bool copy=true)
 
void resize (MultidimArrayGeneric &mdim, bool copy=true)
 
void selfReverseX ()
 
void selfReverseY ()
 
void selfReverseZ ()
 
template<typename T >
void getArrayPointer (T *&M) const
 
void * getArrayPointer () const
 
template<typename T >
void getMultidimArrayPointer (MultidimArray< T > *&M) const
 
void window (MultidimArrayGeneric &result, int z0, int y0, int x0, int zF, int yF, int xF, double init_value=0.) const
 
template<class T >
void _window (MultidimArray< T > &result, int z0, int y0, int x0, int zF, int yF, int xF, double init_value=0.) const
 
void selfWindow (int z0, int y0, int x0, int zF, int yF, int xF, double init_value=0.)
 
void patch (MultidimArrayGeneric &patchArray, int x, int y)
 
template<typename T >
void getSlice (int k, MultidimArray< T > &M, char axis='Z', bool reverse=false, size_t n=0) const
 
void getSlice (int k, MultidimArrayGeneric *M, char axis='Z', bool reverse=false, size_t n=0) const
 
template<typename T1 >
void setSlice (int k, const MultidimArray< T1 > &v, size_t n=0)
 
void setSlice (int k, const MultidimArrayGeneric *v, size_t n=0)
 
void getDimensions (size_t &Xdim, size_t &Ydim, size_t &Zdim, size_t &Ndim) const
 
void getDimensions (size_t &Xdim, size_t &Ydim, size_t &Zdim) const
 
void getDimensions (size_t &Xdim, size_t &Ydim) const
 
void getDimensions (ArrayDim &adim)
 
void setXmippOrigin ()
 
void maxIndex (ArrayCoord &pos)
 
double computeAvg () const
 
void computeStats (double &avg, double &stddev, double &minval, double &maxval) const
 
void computeDoubleMinMax (double &minval, double &maxval) const
 
void rangeAdjust (const MultidimArrayGeneric &example, const MultidimArray< int > *mask=NULL)
 
MultidimArrayGenericoperator= (const MultidimArrayGeneric &input)
 
void operator*= (double op1)
 
void operator+= (const MultidimArrayGeneric &op1)
 
double operator() (size_t n, int k, int i, int j) const
 
bool operator== (const MultidimArrayGeneric &mdA) const
 
bool equal (const MultidimArrayGeneric &op, double accuracy=XMIPP_EQUAL_ACCURACY) const
 
double operator() (int i, int j) const
 
MultidimArrayBaseoperator() ()
 
const MultidimArrayBaseoperator() () const
 
template<typename T >
void getImage (MultidimArray< T > &M) const
 
template<typename T >
void setImage (MultidimArray< T > &M)
 
template<typename T1 >
void window (MultidimArray< T1 > &result, int n0, int z0, int y0, int x0, int nF, int zF, int yF, int xF, T1 init_value=0) const
 

Public Attributes

DataType datatype
 
MultidimArrayBaseim
 

Protected Attributes

bool destroyData
 

Detailed Description

MultidimArrayGeneric class to handle arrays with independence of the data type

Definition at line 111 of file multidim_array_generic.h.

Constructor & Destructor Documentation

◆ MultidimArrayGeneric() [1/3]

MultidimArrayGeneric::MultidimArrayGeneric ( )
inline

Definition at line 124 of file multidim_array_generic.h.

125  {
126  init();
127  }

◆ MultidimArrayGeneric() [2/3]

MultidimArrayGeneric::MultidimArrayGeneric ( MultidimArrayBase array,
DataType  _datatype 
)

Constructor with pointer to array to be linked and datatype definition of the linked array.

Definition at line 28 of file multidim_array_generic.cpp.

29 {
30  im = array;
31  datatype = _datatype;
32  destroyData = false;
33 }

◆ MultidimArrayGeneric() [3/3]

MultidimArrayGeneric::MultidimArrayGeneric ( MultidimArrayGeneric mdim,
int  select_slice 
)

Definition at line 35 of file multidim_array_generic.cpp.

36 {
37  init();
38  setDatatype(mdim.datatype);
39 
40 #define ALIAS(type) ((MultidimArray<type>*)(im))->aliasSlice(*((MultidimArray<type>*)mdim.im), select_slice);
41 
43 #undef ALIAS
44 }
void setDatatype(DataType imgType)
#define ALIAS(type)
#define SWITCHDATATYPE(datatype, OP)

◆ ~MultidimArrayGeneric()

MultidimArrayGeneric::~MultidimArrayGeneric ( )

Destructor.

Definition at line 46 of file multidim_array_generic.cpp.

47 {
48  if (im != NULL && destroyData)
49  delete im;
50 }

Member Function Documentation

◆ _window()

template<class T >
void MultidimArrayGeneric::_window ( MultidimArray< T > &  result,
int  z0,
int  y0,
int  x0,
int  zF,
int  yF,
int  xF,
double  init_value = 0. 
) const
inline

Definition at line 253 of file multidim_array_generic.h.

256  {
257 #define WINDOW(type) ((MultidimArray<type>*)im)->window(result, z0,y0,x0,zF,yF,xF,(T)init_value);
259 #undef WINDOW
260 
261  }
#define WINDOW(type)
#define SWITCHDATATYPE(datatype, OP)

◆ aliasSlice()

void MultidimArrayGeneric::aliasSlice ( MultidimArrayGeneric mdim,
int  select_slice 
)

Definition at line 162 of file multidim_array_generic.cpp.

163 {
164  setDatatype(mdim.datatype);
165 
166 #define ALIAS(type) ((MultidimArray<type>*)(im))->aliasSlice(*((MultidimArray<type>*)mdim.im), select_slice);
167 
169 #undef ALIAS
170 }
void setDatatype(DataType imgType)
#define ALIAS(type)
#define SWITCHDATATYPE(datatype, OP)

◆ clear()

void MultidimArrayGeneric::clear ( )

Definition at line 58 of file multidim_array_generic.cpp.

59 {
60  if (im != NULL && destroyData)
61  {
62  im->clear();
63  delete im;
64  init();
65  }
66 }
virtual void clear()=0

◆ computeAvg()

double MultidimArrayGeneric::computeAvg ( ) const
inline

Compute average

Definition at line 372 of file multidim_array_generic.h.

373  {
374  return im->computeAvg();
375  }
virtual double computeAvg() const =0

◆ computeDoubleMinMax()

void MultidimArrayGeneric::computeDoubleMinMax ( double &  minval,
double &  maxval 
) const
inline

Compute minimum and maximum as double values.

Definition at line 397 of file multidim_array_generic.h.

398  {
399 #define COMPUTESDOUBLEMINMAX(type) ((MultidimArray<type>*)(im))->computeDoubleMinMax(minval, maxval);
401 #undef COMPUTESDOUBLEMINMAX
402 
403  }
#define COMPUTESDOUBLEMINMAX(type)
#define SWITCHDATATYPE(datatype, OP)

◆ computeStats()

void MultidimArrayGeneric::computeStats ( double &  avg,
double &  stddev,
double &  minval,
double &  maxval 
) const
inline

Compute statistics.

The average, standard deviation, minimum and maximum value are returned.

Definition at line 382 of file multidim_array_generic.h.

383  {
384 #define COMPUTESTATS(type) type Tminval(0); \
385  type Tmaxval(0); \
386  ((MultidimArray<type>*)(im))->computeStats(avg, stddev, Tminval, Tmaxval);\
387  minval = Tminval;\
388  maxval = Tmaxval;
389 
391 #undef COMPUTESTATS
392 
393  }
#define COMPUTESTATS(type)
#define SWITCHDATATYPE(datatype, OP)

◆ equal()

bool MultidimArrayGeneric::equal ( const MultidimArrayGeneric op,
double  accuracy = XMIPP_EQUAL_ACCURACY 
) const

Equality.

Returns true if this object has got the same shape (origin and size) than the argument and the same values (within accuracy).

Definition at line 147 of file multidim_array_generic.cpp.

149 {
150  if (datatype != op.datatype)
151  {
152  return false;
153  }
154 
155 #define COMPARE(type) return ((MultidimArray<type>*)im)->equal(*(MultidimArray<type>*)op.im,accuracy);
157 #undef COMPARE
158 }
#define COMPARE(type)
#define SWITCHDATATYPE(datatype, OP)

◆ getArrayPointer() [1/2]

template<typename T >
void MultidimArrayGeneric::getArrayPointer ( T *&  M) const
inline

Return a pointer to internal multidimarray casted to template T.

Definition at line 212 of file multidim_array_generic.h.

213  {
214 #define GETMULTIDIMARRAY(type) M = (T*) (((MultidimArray<type>*) im)->data);
216 #undef GETMULTIDIMARRAY
217 
218  }
#define GETMULTIDIMARRAY(type)
#define SWITCHDATATYPE(datatype, OP)

◆ getArrayPointer() [2/2]

void* MultidimArrayGeneric::getArrayPointer ( ) const
inline

Definition at line 220 of file multidim_array_generic.h.

221  {
222  void *res;
223 #define GETMULTIDIMARRAY(type) res = (void *) (((MultidimArray<type>*) im)->data);
225 #undef GETMULTIDIMARRAY
226  return res;
227  }
#define GETMULTIDIMARRAY(type)
#define SWITCHDATATYPE(datatype, OP)

◆ getDimensions() [1/4]

void MultidimArrayGeneric::getDimensions ( size_t &  Xdim,
size_t &  Ydim,
size_t &  Zdim,
size_t &  Ndim 
) const
inline

Get the dimensions of the linked array.

Definition at line 336 of file multidim_array_generic.h.

337  {
338  im->getDimensions(Xdim,Ydim,Zdim,Ndim);
339  }
void getDimensions(size_t &Xdim, size_t &Ydim, size_t &Zdim, size_t &Ndim) const

◆ getDimensions() [2/4]

void MultidimArrayGeneric::getDimensions ( size_t &  Xdim,
size_t &  Ydim,
size_t &  Zdim 
) const
inline

Definition at line 341 of file multidim_array_generic.h.

342  {
343  size_t Ndim;
344  im->getDimensions(Xdim,Ydim,Zdim,Ndim);
345  }
void getDimensions(size_t &Xdim, size_t &Ydim, size_t &Zdim, size_t &Ndim) const

◆ getDimensions() [3/4]

void MultidimArrayGeneric::getDimensions ( size_t &  Xdim,
size_t &  Ydim 
) const
inline

Definition at line 347 of file multidim_array_generic.h.

348  {
349  size_t Zdim, Ndim;
350  im->getDimensions(Xdim,Ydim,Zdim,Ndim);
351  }
void getDimensions(size_t &Xdim, size_t &Ydim, size_t &Zdim, size_t &Ndim) const

◆ getDimensions() [4/4]

void MultidimArrayGeneric::getDimensions ( ArrayDim adim)
inline

Definition at line 353 of file multidim_array_generic.h.

354  {
355  im->getDimensions(adim);
356  }
void getDimensions(size_t &Xdim, size_t &Ydim, size_t &Zdim, size_t &Ndim) const

◆ getImage()

template<typename T >
void MultidimArrayGeneric::getImage ( MultidimArray< T > &  M) const
inline

Copy the image in MultidimarrayGeneric to a specific T MultidimArray

Definition at line 490 of file multidim_array_generic.h.

491  {
492 #define TYPECAST(type) typeCast(*(MultidimArray<type>*)(im), M);
494 #undef TYPECAST
495 
496  }
#define TYPECAST(type)
#define SWITCHDATATYPE(datatype, OP)

◆ getMultidimArrayPointer()

template<typename T >
void MultidimArrayGeneric::getMultidimArrayPointer ( MultidimArray< T > *&  M) const
inline

Return a pointer to internal multidimarray casted to template T.

Definition at line 233 of file multidim_array_generic.h.

234  {
235 #define GETMULTIDIMARRAY(type) M = (MultidimArray<T>*) ((MultidimArray<type>*) im);
237 #undef GETMULTIDIMARRAY
238 
239  }
#define GETMULTIDIMARRAY(type)
#define SWITCHDATATYPE(datatype, OP)

◆ getSlice() [1/2]

template<typename T >
void MultidimArrayGeneric::getSlice ( int  k,
MultidimArray< T > &  M,
char  axis = 'Z',
bool  reverse = false,
size_t  n = 0 
) const
inline

Copy a specific slice of the linked array.

Definition at line 289 of file multidim_array_generic.h.

290  {
291 #define GETSLICE(type) ((MultidimArray<type>*) im)->getSlice(k, M, axis, reverse, n);
293 #undef GETSLICE
294 
295  }
#define GETSLICE(type)
#define SWITCHDATATYPE(datatype, OP)

◆ getSlice() [2/2]

void MultidimArrayGeneric::getSlice ( int  k,
MultidimArrayGeneric M,
char  axis = 'Z',
bool  reverse = false,
size_t  n = 0 
) const
inline

Copy a specific slice of the linked array.

Definition at line 300 of file multidim_array_generic.h.

301  {
302 #define GETSLICE(type) getSlice(k, *(MultidimArray<type>*)M->im, axis, reverse, n);
304 #undef GETSLICE
305 
306  }
#define GETSLICE(type)
#define SWITCHDATATYPE(datatype, OP)

◆ init()

void MultidimArrayGeneric::init ( void  )

Definition at line 51 of file multidim_array_generic.cpp.

52 {
53  im = NULL;
55  destroyData = true;
56 }

◆ link()

void MultidimArrayGeneric::link ( MultidimArrayBase array)

Link the internal array base to a specific multidimarray object.

Definition at line 68 of file multidim_array_generic.cpp.

69 {
70  im = array;
71  destroyData = false;
72 }

◆ maxIndex()

void MultidimArrayGeneric::maxIndex ( ArrayCoord pos)
inline

Definition at line 366 of file multidim_array_generic.h.

367  {
368  im->maxIndex(pos);
369  }
virtual void maxIndex(size_t &lmax, int &kmax, int &imax, int &jmax) const =0

◆ operator()() [1/4]

double MultidimArrayGeneric::operator() ( size_t  n,
int  k,
int  i,
int  j 
) const
inline

Get constant access

Definition at line 443 of file multidim_array_generic.h.

444  {
445  double ret;
446 #define GETVALUE(type) ret = NZYX_ELEM(*(MultidimArray<type>*)im,n,k,i,j);
448 #undef GETVALUE
449  return ret;
450  }
#define GETVALUE(type)
#define SWITCHDATATYPE(datatype, OP)

◆ operator()() [2/4]

double MultidimArrayGeneric::operator() ( int  i,
int  j 
) const
inline

Get constant access

Definition at line 465 of file multidim_array_generic.h.

466  {
467  double ret;
468 #define GETVALUE(type) ret = A2D_ELEM(*(MultidimArray<type>*)im,i,j);
470 #undef GETVALUE
471  return ret;
472  }
#define GETVALUE(type)
#define SWITCHDATATYPE(datatype, OP)

◆ operator()() [3/4]

MultidimArrayBase& MultidimArrayGeneric::operator() ( )
inline

Get array

Definition at line 475 of file multidim_array_generic.h.

476  {
477  return *im;
478  }

◆ operator()() [4/4]

const MultidimArrayBase& MultidimArrayGeneric::operator() ( ) const
inline

Get array

Definition at line 481 of file multidim_array_generic.h.

482  {
483  return *im;
484  }

◆ operator*=()

void MultidimArrayGeneric::operator*= ( double  op1)
inline

*=

Definition at line 427 of file multidim_array_generic.h.

428  {
429 #define OPERATORTIMESEQUAL(type) *((MultidimArray<type>*)(im)) *= (type)op1;
431 #undef OPERATORTIMESEQUAL
432  }
#define OPERATORTIMESEQUAL(type)
#define SWITCHDATATYPE(datatype, OP)

◆ operator+=()

void MultidimArrayGeneric::operator+= ( const MultidimArrayGeneric op1)
inline

+=

Definition at line 435 of file multidim_array_generic.h.

436  {
437 #define OPERATORPLUSEQUAL(type) *((MultidimArray<type>*)(im)) += *((MultidimArray<type>*)(op1.im));
439 #undef OPERATORPLUSEQUAL
440  }
#define OPERATORPLUSEQUAL(type)
#define SWITCHDATATYPE(datatype, OP)

◆ operator=()

MultidimArrayGeneric& MultidimArrayGeneric::operator= ( const MultidimArrayGeneric input)
inline

Assignment

Definition at line 416 of file multidim_array_generic.h.

417  {
418  if (&input != this && input.datatype != DT_Unknown)
419  {
420  setDatatype(input.datatype);
421  *im = *input.im;
422  }
423  return *this;
424  }
void setDatatype(DataType imgType)

◆ operator==()

bool MultidimArrayGeneric::operator== ( const MultidimArrayGeneric mdA) const

equal operator

Definition at line 133 of file multidim_array_generic.cpp.

134 {
135  if (datatype != mdA.datatype)
136  {
137  return false;
138 
139  }
140 
141 #define COMPARE(type) return ( ((MultidimArray<type>*)im)->equal(*(MultidimArray<type>*)mdA.im) );
143 #undef COMPARE
144 }
#define COMPARE(type)
#define SWITCHDATATYPE(datatype, OP)

◆ patch()

void MultidimArrayGeneric::patch ( MultidimArrayGeneric patchArray,
int  x,
int  y 
)
inline

Definition at line 277 of file multidim_array_generic.h.

278  {
279 #define PATCH(type) ((MultidimArray<type>*)im)->patch(*((MultidimArray<type>*)(patchArray.im)), x, y);
281 #undef PATCH
282 
283  }
#define PATCH(type)
#define SWITCHDATATYPE(datatype, OP)

◆ rangeAdjust()

void MultidimArrayGeneric::rangeAdjust ( const MultidimArrayGeneric example,
const MultidimArray< int > *  mask = NULL 
)
inline

Range adjust using an example

Definition at line 408 of file multidim_array_generic.h.

409  {
410 #define RANGEADJUST(type) ((MultidimArray<type>*)(im))->rangeAdjust(*(MultidimArray<type>*)(example.im),mask);
412 #undef RANGEADJUST
413  }
#define SWITCHDATATYPE(datatype, OP)
#define RANGEADJUST(type)

◆ resize() [1/3]

void MultidimArrayGeneric::resize ( size_t  Ndim,
int  Zdim,
int  Ydim,
int  Xdim,
bool  copy = true 
)
inline

Call the resize function of the linked array.

Definition at line 168 of file multidim_array_generic.h.

169  {
170  im->resize(Ndim,Zdim,Ydim,Xdim,copy);
171  }
virtual void resize(size_t Ndim, size_t Zdim, size_t Ydim, size_t Xdim, bool copy=true)=0

◆ resize() [2/3]

void MultidimArrayGeneric::resize ( ArrayDim adim,
bool  copy = true 
)
inline

Definition at line 180 of file multidim_array_generic.h.

181  {
182  im->resize(adim, copy);
183  }
virtual void resize(size_t Ndim, size_t Zdim, size_t Ydim, size_t Xdim, bool copy=true)=0

◆ resize() [3/3]

void MultidimArrayGeneric::resize ( MultidimArrayGeneric mdim,
bool  copy = true 
)
inline

Definition at line 185 of file multidim_array_generic.h.

186  {
187  ArrayDim adim;
188  mdim.getDimensions(adim);
189  im->resize(adim, copy);
190  }
virtual void resize(size_t Ndim, size_t Zdim, size_t Ydim, size_t Xdim, bool copy=true)=0
void getDimensions(size_t &Xdim, size_t &Ydim, size_t &Zdim, size_t &Ndim) const

◆ selfReverseX()

void MultidimArrayGeneric::selfReverseX ( )
inline

Reverse matrix values over X axis, keep in this object.

Definition at line 193 of file multidim_array_generic.h.

194  {
195  im->selfReverseX();
196  }
virtual void selfReverseX()=0

◆ selfReverseY()

void MultidimArrayGeneric::selfReverseY ( )
inline

Reverse matrix values over Y axis, keep in this object.

Definition at line 198 of file multidim_array_generic.h.

199  {
200  im->selfReverseY();
201  }
virtual void selfReverseY()=0

◆ selfReverseZ()

void MultidimArrayGeneric::selfReverseZ ( )
inline

Reverse matrix values over Z axis, keep in this object.

Definition at line 203 of file multidim_array_generic.h.

204  {
205  im->selfReverseZ();
206  }
virtual void selfReverseZ()=0

◆ selfWindow()

void MultidimArrayGeneric::selfWindow ( int  z0,
int  y0,
int  x0,
int  zF,
int  yF,
int  xF,
double  init_value = 0. 
)
inline

Definition at line 263 of file multidim_array_generic.h.

266  {
267  if (im->mmapOn)
268  REPORT_ERROR(ERR_MMAP, "Cannot resize the image when it is mapped to file.");
269 
270 #define WINDOW(type) ((MultidimArray<type>*)im)->selfWindow(z0,y0,x0,zF,yF,xF,(type)init_value);
271 
273 #undef WINDOW
274 
275  }
#define WINDOW(type)
#define REPORT_ERROR(nerr, ErrormMsg)
Definition: xmipp_error.h:211
Global mmap error.
Definition: xmipp_error.h:170
#define SWITCHDATATYPE(datatype, OP)

◆ setDatatype()

void MultidimArrayGeneric::setDatatype ( DataType  imgType)

Definition at line 75 of file multidim_array_generic.cpp.

76 {
77  clear();
78  datatype = imgType;
79  destroyData = true;
80 
81  switch (datatype)
82  {
83  case DT_Float:
84  {
86  im = imT;
87  }
88  break;
89  case DT_UInt:
90  {
92  im = imT;
93  }
94  break;
95  case DT_Int:
96  {
98  im = imT;
99  }
100  break;
101  case DT_UShort:
102  {
104  im = imT;
105  }
106  break;
107  case DT_Short:
108  {
110  im = imT;
111  }
112  break;
113  case DT_UHalfByte:
114  case DT_UChar:
115  {
117  im = imT;
118  }
119  break;
120  case DT_SChar:
121  {
123  im = imT;
124  }
125  break;
126  case DT_Unknown:
128  default:
129  REPORT_ERROR(ERR_NOT_IMPLEMENTED, "Datatype not implemented.");
130  }
131 }
Case or algorithm not implemented yet.
Definition: xmipp_error.h:177
#define REPORT_ERROR(nerr, ErrormMsg)
Definition: xmipp_error.h:211
Unknown image type.
Definition: xmipp_error.h:130

◆ setDimensions()

void MultidimArrayGeneric::setDimensions ( int  Xdim,
int  Ydim,
int  Zdim,
size_t  Ndim 
)
inline

Change the internal size, the allocated memory is the same, so make sure that you are not changing the total size

Definition at line 175 of file multidim_array_generic.h.

176  {
177  im->setDimensions(Xdim,Ydim,Zdim,Ndim);
178  }
void setDimensions(int Xdim, int Ydim, int Zdim, size_t Ndim)

◆ setImage()

template<typename T >
void MultidimArrayGeneric::setImage ( MultidimArray< T > &  M)
inline

Copy in MultidimarrayGeneric an image from a specific T MultidimArray

Definition at line 501 of file multidim_array_generic.h.

502  {
503 #define TYPECAST(type) typeCast(M, *(MultidimArray<type>*)(im));
505 #undef TYPECAST
506 
507  }
#define TYPECAST(type)
#define SWITCHDATATYPE(datatype, OP)

◆ setSlice() [1/2]

template<typename T1 >
void MultidimArrayGeneric::setSlice ( int  k,
const MultidimArray< T1 > &  v,
size_t  n = 0 
)
inline

Set a specific slice of the linked array.

Definition at line 312 of file multidim_array_generic.h.

313  {
314 #define SETSLICE(type) ((MultidimArray<type>*) im)->setSlice(k, v, n);
315 
317 
318 #undef SETSLICE
319 
320  }
#define SETSLICE(type)
#define SWITCHDATATYPE(datatype, OP)

◆ setSlice() [2/2]

void MultidimArrayGeneric::setSlice ( int  k,
const MultidimArrayGeneric v,
size_t  n = 0 
)
inline

Set a specific slice of the linked array.

Definition at line 325 of file multidim_array_generic.h.

326  {
327 #define SETSLICE(type) setSlice(k,*(MultidimArray<type>*) v->im, n);
329 #undef SETSLICE
330 
331  }
#define SETSLICE(type)
#define SWITCHDATATYPE(datatype, OP)

◆ setXmippOrigin()

void MultidimArrayGeneric::setXmippOrigin ( )
inline

Set Xmipp origin.

Definition at line 361 of file multidim_array_generic.h.

362  {
363  im->setXmippOrigin();
364  }

◆ window() [1/2]

void MultidimArrayGeneric::window ( MultidimArrayGeneric result,
int  z0,
int  y0,
int  x0,
int  zF,
int  yF,
int  xF,
double  init_value = 0. 
) const
inline

Get a Window from the image

Definition at line 242 of file multidim_array_generic.h.

245  {
246 #define WINDOW(type) _window(*((MultidimArray<type>*)(result.im)), z0,y0,x0,zF,yF,xF,init_value);
248 #undef WINDOW
249 
250  }
#define WINDOW(type)
#define SWITCHDATATYPE(datatype, OP)

◆ window() [2/2]

template<typename T1 >
void MultidimArrayGeneric::window ( MultidimArray< T1 > &  result,
int  n0,
int  z0,
int  y0,
int  x0,
int  nF,
int  zF,
int  yF,
int  xF,
T1  init_value = 0 
) const
inline

Get window.

Definition at line 512 of file multidim_array_generic.h.

515  {
516 #define WINDOW(type) ((MultidimArray<type>*)(im))->window(result, n0, z0, y0, x0, nF, zF, yF, xF, init_value);
518 #undef WINDOW
519 
520  }
#define WINDOW(type)
#define SWITCHDATATYPE(datatype, OP)

Member Data Documentation

◆ datatype

DataType MultidimArrayGeneric::datatype

Definition at line 114 of file multidim_array_generic.h.

◆ destroyData

bool MultidimArrayGeneric::destroyData
protected

Definition at line 119 of file multidim_array_generic.h.

◆ im

MultidimArrayBase* MultidimArrayGeneric::im

Definition at line 115 of file multidim_array_generic.h.


The documentation for this class was generated from the following files: