Delaunator
2D Delaunay Triangulation in C++ with Python wrapper.
 All Classes Namespaces Functions
templates.h
1 #include "utils.h"
2 
3 
4 
9 template <class T> T valAbs(T number) {
10  if(number < (T)0)
11  number *= -1;
12  return number;
13 }
14 
15 
16 
23 template <class T> void mixTab(T* tab, const int sizeOfTab, const int numberOfMix = 1) {
24  // making mix k times
25  for(int k = numberOfMix-1; k >= 0; k--) {
26  // for one mix :
27  for(int i = sizeOfTab-1; i >= 0; i--) {
28  // swap the current item of tab with another, choose randomly
29  swap(&tab[randN(sizeOfTab)], &tab[i], sizeof(T));
30  }
31  }
32 }
33 
34 
35 
36 
42 template <class T> T withDelta(const T value, const T delta) {
43  return value + randN((int)delta*2) - delta;
44 }
45 
46 
47 
48 
53 template<class T> T getItemOf(std::queue<T> &queue) {
54  T returnValue = queue.front();
55  queue.pop();
56  return returnValue;
57 }
58 
59 
60 
66 template <class T> T** cpyMatrix(const T** const matrix, const unsigned int sizeOfMatrix) {
67  T** newMatrix = new T*[sizeOfMatrix];
68  for(unsigned int i = 0; i < sizeOfMatrix; i++) {
69  newMatrix[i] = new T[sizeOfMatrix];
70  for(unsigned int j = 0; j < sizeOfMatrix; j++) {
71  newMatrix[i][j] = matrix[i][j];
72  }
73  }
74  return newMatrix;
75 }
76 
77 
83 template <class T> T max(const T a, const T b) {
84  if(a > b) return a;
85  else return b;
86 }
87 
88 
94 template <class T> T min(const T a, const T b) {
95  if(a < b) return a;
96  else return b;
97 }
98 
99 
100