Typedef for swap and copy function (sorting)
#include "dip_sort.h"
void (*dip_SortSwapFunction) ( data1, index1, data2, index2, copy )
A function of this type must be supplied to the sorting algorithms for data of arbitrary type. It should swap data1[index1] and data2[index2] if copy = DIP_FALSE, and copy data1[index1] to data2[index2] if copy = DIP_TRUE.
Example:
void dip_MyComplexSwap( void *data1, dip_int index1, void *data2, dip_int index2, dip_Boolean copy ) { dip_complex *cmplx1, *cmplx2, tmpValue; cmplx1 = data1; cmplx2 = data2; cmplx1 += index1; cmplx2 += index2; if ( copy == DIP_TRUE ) { cmplx2->re = cmplx1->re; cmplx2->im = cmplx1->im; } else { tmpValue.re = cmplx2->re; tmpValue.im = cmplx2->im; cmplx2->re = cmplx1->re; cmplx2->im = cmplx1->im; cmplx1->re = tmpValue.re; cmplx1->im = tmpValue.im; } return; }
Data type | Name | Description |
void * | data1 | Pointer to first data array |
dip_int | index1 | Index to element in first data array |
void * | data2 | Pointer to second data array |
dip_int | index2 | Index to element in second data array |
dip_Boolean | copy | if DIP_FALSE, swap data. if DIP_TRUE copy data from data1 to data2 |