118 constexpr static const short neighborDirections[neighborsCount][3] = {
119 {-1, 0, 0}, { 0,-1, 0}, { 0, 0,-1},
120 {-1,-1, 0}, {-1, 1, 0}, {-1, 0,-1},
121 {-1, 0, 1}, { 0,-1,-1}, { 0,-1, 1},
122 {-1,-1,-1}, {-1,-1, 1}, {-1, 1,-1}, {-1, 1, 1},
123 { 1, 0, 0}, { 0, 1, 0}, { 0, 0, 1},
124 { 1, 1, 0}, { 1,-1, 0}, { 1, 0, 1},
125 { 1, 0,-1}, { 0, 1, 1}, { 0, 1,-1},
126 { 1, 1, 1}, { 1, 1,-1}, { 1,-1, 1}, { 1,-1,-1}
130 constexpr static const T normalizedNeighborDirections[neighborsCount][3] = {
131 {-1, 0, 0}, { 0,-1, 0}, { 0, 0,-1},
132 {-1*invSqrt2<T>,-1*invSqrt2<T>, 0}, {-1*invSqrt2<T>, 1*invSqrt2<T>, 0}, {-1*invSqrt2<T>, 0,-1*invSqrt2<T>},
133 {-1*invSqrt2<T>, 0, 1*invSqrt2<T>}, { 0,-1*invSqrt2<T>,-1*invSqrt2<T>}, { 0,-1*invSqrt2<T>, 1*invSqrt2<T>},
134 {-1*invSqrt3<T>,-1*invSqrt3<T>,-1*invSqrt3<T>}, {-1*invSqrt3<T>,-1*invSqrt3<T>, 1*invSqrt3<T>}, {-1*invSqrt3<T>, 1*invSqrt3<T>,-1*invSqrt3<T>}, {-1*invSqrt3<T>, 1*invSqrt3<T>, 1*invSqrt3<T>},
135 { 1, 0, 0}, { 0, 1, 0}, { 0, 0, 1},
136 { 1*invSqrt2<T>, 1*invSqrt2<T>, 0}, { 1*invSqrt2<T>,-1*invSqrt2<T>, 0}, { 1*invSqrt2<T>, 0, 1*invSqrt2<T>},
137 { 1*invSqrt2<T>, 0,-1*invSqrt2<T>}, { 0, 1*invSqrt2<T>, 1*invSqrt2<T>}, { 0, 1*invSqrt2<T>,-1*invSqrt2<T>},
138 { 1*invSqrt3<T>, 1*invSqrt3<T>, 1*invSqrt3<T>}, { 1*invSqrt3<T>, 1*invSqrt3<T>,-1*invSqrt3<T>}, { 1*invSqrt3<T>,-1*invSqrt3<T>, 1*invSqrt3<T>}, { 1*invSqrt3<T>,-1*invSqrt3<T>,-1*invSqrt3<T>}