30 #ifndef MIRTK_ForEachTernaryVoxelFunction_H 31 #define MIRTK_ForEachTernaryVoxelFunction_H 33 #include "mirtk/Stream.h" 34 #include "mirtk/VoxelFunction.h" 40 inline void _foreachternaryvoxelfunction_must_not_be_reduction()
42 cerr <<
"(Parallel)ForEachVoxel(If): Voxel reductions must be passed by reference!" 43 " Pass voxel functor object(s) as last argument(s) instead of first." << endl;
56 template <
class T1,
class T2,
class T3,
class VoxelFunc>
69 ForEachVoxelBody<VoxelFunc>(vf, im1.Attributes()), im1(im1), im2(im2), im3(im3)
91 const int T = (attr.
_dt ? attr.
_t : 1);
93 for (
int l = 0; l < T; ++l)
94 for (
int k = 0; k < attr.
_z; ++k)
95 for (
int j = 0; j < attr.
_y; ++j)
96 for (
int i = 0; i < attr.
_x; ++i, ++p1, ++p2, ++p3) {
110 for (
int idx = re.begin(); idx < re.end(); ++idx, p1 += 1, p2 += 1, p3 += 1) {
120 const int bi = re.cols().begin();
121 const int bj = re.rows().begin();
122 const int ei = re.cols().end();
123 const int ej = re.rows().end();
125 const int s1 = im3.
GetX() - (ei - bi);
131 for (
int j = bj; j < ej; ++j, p1 += s1, p2 += s1, p3 += s1)
132 for (
int i = bi; i < ei; ++i, p1 += 1, p2 += 1, p3 += 1) {
142 const int bi = re.cols ().begin();
143 const int bj = re.rows ().begin();
144 const int bk = re.pages().begin();
145 const int ei = re.cols ().end();
146 const int ej = re.rows ().end();
147 const int ek = re.pages().end();
149 const int s1 = im3.
GetX() - (ei - bi);
150 const int s2 = (im3.
GetY() - (ej - bj)) * im3.
GetX();
156 for (
int k = bk; k < ek; ++k, p1 += s2, p2 += s2, p3 += s2)
157 for (
int j = bj; j < ej; ++j, p1 += s1, p2 += s1, p3 += s1)
158 for (
int i = bi; i < ei; ++i, p1 += 1, p2 += 1, p3 += 1) {
170 template <
class T1,
class T2,
class T3,
183 VoxelFunc &vf, OutsideFunc &of)
185 ForEachVoxelIfBody<VoxelFunc, OutsideFunc>(vf, of, im1.Attributes()), im1(im1), im2(im2), im3(im3)
207 const int T = (attr.
_dt ? attr.
_t : 1);
209 for (
int l = 0; l < T; ++l)
210 for (
int k = 0; k < attr.
_z; ++k)
211 for (
int j = 0; j < attr.
_y; ++j)
212 for (
int i = 0; i < attr.
_x; ++i, ++p1, ++p2, ++p3) {
213 if (Domain::IsInside(im3, i, j, k, l, p3)) {
228 for (
int idx = re.begin(); idx < re.end(); ++idx, p1 += 1, p2 += 1, p3 += 1) {
229 if (Domain::IsInside(im3, idx, p3)) {
240 const int bi = re.cols().begin();
241 const int bj = re.rows().begin();
242 const int ei = re.cols().end();
243 const int ej = re.rows().end();
245 const int s1 = im3.
GetX() - (ei - bi);
251 for (
int j = bj; j < ej; ++j, p1 += s1, p2 += s1, p3 += s1)
252 for (
int i = bi; i < ei; ++i, p1 += 1, p2 += 1, p3 += 1) {
253 if (Domain::IsInside(im3, i, j, this->_k, this->
_l, p3)) {
264 const int bi = re.cols ().begin();
265 const int bj = re.rows ().begin();
266 const int bk = re.pages().begin();
267 const int ei = re.cols ().end();
268 const int ej = re.rows ().end();
269 const int ek = re.pages().end();
271 const int s1 = im3.
GetX() - (ei - bi);
272 const int s2 = (im3.
GetY() - (ej - bj)) * im3.
GetX();
278 for (
int k = bk; k < ek; ++k, p1 += s2, p2 += s2, p3 += s2)
279 for (
int j = bj; j < ej; ++j, p1 += s1, p2 += s1, p3 += s1)
280 for (
int i = bi; i < ei; ++i, p1 += 1, p2 += 1, p3 += 1) {
281 if (Domain::IsInside(im3, i, j, k, this->
_l, p3)) {
299 template <
class T1,
class T2,
class T3,
class VoxelFunc>
305 vf.join(body._VoxelFunc);
309 template <
class T1,
class T2,
class T3,
class VoxelFunc>
312 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
313 ForEachScalar(*im1, *im2, *im3, vf);
317 template <
class T1,
class T2,
class T3,
class VoxelFunc>
321 ForEachScalar(*im1, *im2, *im3, vf);
326 vf.join(body._VoxelFunc);
331 template <
class T1,
class T2,
class T3,
class VoxelFunc>
334 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
335 ForEachVoxel(*im1, *im2, *im3, vf);
339 template <
class T1,
class T2,
class T3,
class VoxelFunc>
348 template <
class T1,
class T2,
class T3,
class VoxelFunc>
351 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
352 ForEachVoxel(attr, *im1, *im2, *im3, vf);
356 template <
class T1,
class T2,
class T3,
class VoxelFunc>
365 template <
class T1,
class T2,
class T3,
class VoxelFunc>
368 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
369 ForEachVoxel(re, *im1, *im2, *im3, vf);
373 template <
class T1,
class T2,
class T3,
class VoxelFunc>
382 template <
class T1,
class T2,
class T3,
class VoxelFunc>
385 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
386 ForEachVoxel(re, *im1, *im2, *im3, vf);
390 template <
class T1,
class T2,
class T3,
class VoxelFunc>
399 template <
class T1,
class T2,
class T3,
class VoxelFunc>
402 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
403 ForEachVoxel(re, *im1, *im2, *im3, vf);
411 template <
class T1,
class T2,
class T3,
class VoxelFunc>
417 vf.join(body._VoxelFunc);
421 template <
class T1,
class T2,
class T3,
class VoxelFunc>
424 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
425 ForEachScalar(im1, im2, im3, vf);
429 template <
class T1,
class T2,
class T3,
class VoxelFunc>
433 ForEachScalar(im1, im2, im3, vf);
438 vf.join(body._VoxelFunc);
443 template <
class T1,
class T2,
class T3,
class VoxelFunc>
446 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
447 ForEachVoxel(im1, im2, im3, vf);
451 template <
class T1,
class T2,
class T3,
class VoxelFunc>
460 template <
class T1,
class T2,
class T3,
class VoxelFunc>
463 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
464 ForEachVoxel(attr, im1, im2, im3, vf);
468 template <
class T1,
class T2,
class T3,
class VoxelFunc>
477 template <
class T1,
class T2,
class T3,
class VoxelFunc>
480 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
481 ForEachVoxel(re, im1, im2, im3, vf);
485 template <
class T1,
class T2,
class T3,
class VoxelFunc>
494 template <
class T1,
class T2,
class T3,
class VoxelFunc>
497 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
498 ForEachVoxel(re, im1, im2, im3, vf);
502 template <
class T1,
class T2,
class T3,
class VoxelFunc>
511 template <
class T1,
class T2,
class T3,
class VoxelFunc>
514 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
515 ForEachVoxel(re, im1, im2, im3, vf);
527 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
533 vf.join(body._VoxelFunc);
534 of.join(body._OutsideFunc);
538 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
541 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
542 ForEachScalarIf<Domain>(*im1, *im2, *im3, vf, of);
546 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
550 ForEachScalarIf<Domain>(*im1, *im2, *im3, vf, of);
554 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
557 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
558 ForEachScalarIf<Domain>(*im1, *im2, *im3, vf);
562 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
566 ForEachScalarIf<Domain>(*im1, *im2, *im3, vf, of);
571 vf.join(body._VoxelFunc);
572 of.join(body._OutsideFunc);
577 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
580 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
581 ForEachVoxelIf<Domain>(*im1, *im2, *im3, vf, of);
585 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
589 ForEachVoxelIf<Domain>(*im1, *im2, *im3, vf, of);
593 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
596 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
597 ForEachVoxelIf<Domain>(*im1, *im2, *im3, vf);
601 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
611 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
614 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
615 ForEachVoxelIf<Domain>(attr, *im1, *im2, *im3, vf, of);
619 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
623 ForEachVoxelIf<Domain>(attr, *im1, *im2, *im3, vf, of);
627 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
630 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
631 ForEachVoxelIf<Domain>(attr, *im1, *im2, *im3, vf);
635 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
645 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
648 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
649 ForEachVoxelIf<Domain>(re, *im1, *im2, *im3, vf, of);
653 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
663 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
666 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
667 ForEachVoxelIf<Domain>(re, *im1, *im2, *im3, vf, of);
671 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
675 ForEachVoxelIf<Domain>(re, *im1, *im2, *im3, vf, of);
679 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
682 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
683 ForEachVoxelIf<Domain>(re, *im1, *im2, *im3, vf);
687 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
697 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
700 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
701 ForEachVoxelIf<Domain>(*im1, *im2, *im3, vf, of);
705 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
709 ForEachVoxelIf<Domain>(re, *im1, *im2, *im3, vf, of);
713 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
716 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
717 ForEachVoxelIf<Domain>(re, *im1, *im2, *im3, vf);
725 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
731 vf.join(body._VoxelFunc);
732 of.join(body._OutsideFunc);
736 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
739 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
740 ForEachScalarIf<Domain>(im1, im2, im3, vf, of);
744 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
748 ForEachScalarIf<Domain>(im1, im2, im3, vf, of);
752 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
755 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
756 ForEachScalarIf<Domain>(im1, im2, im3, vf);
760 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
764 ForEachVoxelIf<Domain>(im1, im2, im3, vf, of);
769 vf.join(body._VoxelFunc);
770 of.join(body._OutsideFunc);
775 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
778 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
779 ForEachVoxelIf<Domain>(im1, im2, im3, vf, of);
783 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
787 ForEachVoxelIf<Domain>(im1, im2, im3, vf, of);
791 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
794 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
795 ForEachVoxelIf<Domain>(im1, im2, im3, vf);
799 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
809 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
812 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
813 ForEachVoxelIf<Domain>(attr, im1, im2, im3, vf, of);
817 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
821 ForEachVoxelIf<Domain>(attr, im1, im2, im3, vf, of);
825 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
828 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
829 ForEachVoxelIf<Domain>(attr, im1, im2, im3, vf);
833 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
843 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
846 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
847 ForEachVoxelIf<Domain>(re, im1, im2, im3, vf, of);
851 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
861 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
864 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
865 ForEachVoxelIf<Domain>(re, im1, im2, im3, vf, of);
869 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
873 ForEachVoxelIf<Domain>(re, im1, im2, im3, vf, of);
877 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
880 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
881 ForEachVoxelIf<Domain>(re, im1, im2, im3, vf);
885 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
895 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
898 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
899 ForEachVoxelIf<Domain>(re, im1, im2, im3, vf, of);
903 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
907 ForEachVoxelIf<Domain>(re, im1, im2, im3, vf, of);
911 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
914 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
915 ForEachVoxelIf<Domain>(re, im1, im2, im3, vf);
927 template <
class T1,
class T2,
class T3,
class VoxelFunc>
937 template <
class T1,
class T2,
class T3,
class VoxelFunc>
940 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
941 ParallelForEachScalar(*im1, *im2, *im3, vf);
945 template <
class T1,
class T2,
class T3,
class VoxelFunc>
949 ParallelForEachScalar(*im1, *im2, *im3, vf);
959 template <
class T1,
class T2,
class T3,
class VoxelFunc>
962 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
963 ParallelForEachVoxel(*im1, *im2, *im3, vf);
967 template <
class T1,
class T2,
class T3,
class VoxelFunc>
972 if (VoxelFunc::IsReduction()) {
989 template <
class T1,
class T2,
class T3,
class VoxelFunc>
992 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
993 ParallelForEachVoxel(attr, *im1, *im2, *im3, vf);
997 template <
class T1,
class T2,
class T3,
class VoxelFunc>
1006 template <
class T1,
class T2,
class T3,
class VoxelFunc>
1009 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
1010 ParallelForEachVoxel(re, *im1, *im2, *im3, vf);
1014 template <
class T1,
class T2,
class T3,
class VoxelFunc>
1023 template <
class T1,
class T2,
class T3,
class VoxelFunc>
1026 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
1027 ParallelForEachVoxel(re, *im1, *im2, *im3, vf);
1031 template <
class T1,
class T2,
class T3,
class VoxelFunc>
1040 template <
class T1,
class T2,
class T3,
class VoxelFunc>
1043 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
1044 ParallelForEachVoxel(re, *im1, *im2, *im3, vf);
1052 template <
class T1,
class T2,
class T3,
class VoxelFunc>
1062 template <
class T1,
class T2,
class T3,
class VoxelFunc>
1065 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
1066 ParallelForEachScalar(im1, im2, im3, vf);
1070 template <
class T1,
class T2,
class T3,
class VoxelFunc>
1074 ParallelForEachScalar(im1, im2, im3, vf);
1084 template <
class T1,
class T2,
class T3,
class VoxelFunc>
1087 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
1088 ParallelForEachVoxel(im1, im2, im3, vf);
1092 template <
class T1,
class T2,
class T3,
class VoxelFunc>
1097 if (VoxelFunc::IsReduction()) {
1114 template <
class T1,
class T2,
class T3,
class VoxelFunc>
1117 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
1118 ParallelForEachVoxel(attr, im1, im2, im3, vf);
1122 template <
class T1,
class T2,
class T3,
class VoxelFunc>
1131 template <
class T1,
class T2,
class T3,
class VoxelFunc>
1134 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
1135 ParallelForEachVoxel(re, im1, im2, im3, vf);
1139 template <
class T1,
class T2,
class T3,
class VoxelFunc>
1148 template <
class T1,
class T2,
class T3,
class VoxelFunc>
1151 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
1152 ParallelForEachVoxel(re, im1, im2, im3, vf);
1156 template <
class T1,
class T2,
class T3,
class VoxelFunc>
1165 template <
class T1,
class T2,
class T3,
class VoxelFunc>
1168 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
1169 ParallelForEachVoxel(re, im1, im2, im3, vf);
1181 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
1186 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) {
1196 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
1199 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
1200 ParallelForEachScalarIf<Domain>(*im1, *im2, *im3, vf, of);
1204 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
1208 ParallelForEachScalarIf<Domain>(*im1, *im2, *im3, vf, of);
1212 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
1215 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
1216 ParallelForEachScalarIf<Domain>(*im1, *im2, *im3, vf);
1220 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
1224 ParallelForEachVoxelIf<Domain>(*im1, *im2, *im3, vf, of);
1228 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) {
1239 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
1242 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
1243 ParallelForEachVoxelIf<Domain>(*im1, *im2, *im3, vf, of);
1247 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
1251 ParallelForEachVoxelIf<Domain>(*im1, *im2, *im3, vf, of);
1255 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
1258 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
1259 ParallelForEachVoxelIf<Domain>(*im1, *im2, *im3, vf);
1263 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
1268 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) {
1286 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
1289 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
1290 ParallelForEachVoxelIf<Domain>(attr, *im1, *im2, *im3, vf, of);
1294 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
1298 ParallelForEachVoxelIf<Domain>(attr, *im1, *im2, *im3, vf, of);
1302 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
1305 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
1306 ParallelForEachVoxelIf<Domain>(attr, *im1, *im2, *im3, vf);
1310 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
1314 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) {
1324 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
1327 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
1328 ParallelForEachVoxelIf<Domain>(re, *im1, *im2, *im3, vf, of);
1332 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
1336 ParallelForEachVoxelIf<Domain>(re, *im1, *im2, *im3, vf, of);
1340 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
1343 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
1344 ParallelForEachVoxelIf<Domain>(re, *im1, *im2, *im3, vf);
1348 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
1352 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) {
1362 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
1365 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
1366 ParallelForEachVoxelIf<Domain>(re, *im1, *im2, *im3, vf, of);
1370 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
1374 ParallelForEachVoxelIf<Domain>(re, *im1, *im2, *im3, vf, of);
1378 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
1381 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
1382 ParallelForEachVoxelIf<Domain>(re, *im1, *im2, *im3, vf);
1386 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
1390 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) {
1400 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
1403 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
1404 ParallelForEachVoxelIf<Domain>(re, *im1, *im2, *im3, vf, of);
1408 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
1412 ParallelForEachVoxelIf<Domain>(re, *im1, *im2, *im3, vf, of);
1416 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
1419 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
1420 ParallelForEachVoxelIf<Domain>(re, *im1, *im2, *im3, vf);
1428 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
1433 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) {
1443 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
1446 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
1447 ParallelForEachScalarIf<Domain>(im1, im2, im3, vf, of);
1451 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
1455 ParallelForEachScalarIf<Domain>(im1, im2, im3, vf, of);
1459 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
1462 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
1463 ParallelForEachScalarIf<Domain>(im1, im2, im3, vf);
1467 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
1471 ParallelForEachVoxelIf<Domain>(im1, im2, im3, vf, of);
1475 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) {
1486 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
1489 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
1490 ParallelForEachVoxelIf<Domain>(im1, im2, im3, vf, of);
1494 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
1498 ParallelForEachVoxelIf<Domain>(im1, im2, im3, vf, of);
1502 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
1505 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
1506 ParallelForEachVoxelIf<Domain>(im1, im2, im3, vf);
1510 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
1515 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) {
1533 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
1536 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
1537 ParallelForEachVoxelIf<Domain>(attr, im1, im2, im3, vf, of);
1541 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
1545 ParallelForEachVoxelIf<Domain>(attr, im1, im2, im3, vf, of);
1549 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
1552 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
1553 ParallelForEachVoxelIf<Domain>(attr, im1, im2, im3, vf);
1557 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
1561 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) {
1571 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
1574 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
1575 ParallelForEachVoxelIf<Domain>(re, im1, im2, im3, vf, of);
1579 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
1583 ParallelForEachVoxelIf<Domain>(re, im1, im2, im3, vf, of);
1587 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
1590 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
1591 ParallelForEachVoxelIf<Domain>(re, im1, im2, im3, vf);
1595 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
1599 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) {
1609 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
1612 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
1613 ParallelForEachVoxelIf<Domain>(re, im1, im2, im3, vf, of);
1617 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
1621 ParallelForEachVoxelIf<Domain>(re, im1, im2, im3, vf, of);
1625 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
1628 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
1629 ParallelForEachVoxelIf<Domain>(re, im1, im2, im3, vf);
1633 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
1637 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) {
1647 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
1650 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
1651 ParallelForEachVoxelIf<Domain>(re, im1, im2, im3, vf, of);
1655 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
1659 ParallelForEachVoxelIf<Domain>(re, im1, im2, im3, vf, of);
1663 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
1666 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
1667 ParallelForEachVoxelIf<Domain>(re, im1, im2, im3, vf);
1678 template <
class T1,
class T2,
class T3,
class VoxelFunc>
1691 ForEachVoxelBody<VoxelFunc>(vf, im1.Attributes()), im1(im1), im2(im2), im3(im3)
1713 const int T = (attr.
_dt ? attr.
_t : 1);
1715 for (
int l = 0; l < T; ++l)
1716 for (
int k = 0; k < attr.
_z; ++k)
1717 for (
int j = 0; j < attr.
_y; ++j)
1718 for (
int i = 0; i < attr.
_x; ++i, ++p1, ++p2, ++p3) {
1732 for (
int idx = re.begin(); idx < re.end(); ++idx, p1 += 1, p2 += 1, p3 += 1) {
1742 const int bi = re.cols().begin();
1743 const int bj = re.rows().begin();
1744 const int ei = re.cols().end();
1745 const int ej = re.rows().end();
1747 const int s1 = im3.
GetX() - (ei - bi);
1753 for (
int j = bj; j < ej; ++j, p1 += s1, p2 += s1, p3 += s1)
1754 for (
int i = bi; i < ei; ++i, p1 += 1, p2 += 1, p3 += 1) {
1764 const int bi = re.cols ().begin();
1765 const int bj = re.rows ().begin();
1766 const int bk = re.pages().begin();
1767 const int ei = re.cols ().end();
1768 const int ej = re.rows ().end();
1769 const int ek = re.pages().end();
1771 const int s1 = im3.
GetX() - (ei - bi);
1772 const int s2 = (im3.
GetY() - (ej - bj)) * im3.
GetX();
1778 for (
int k = bk; k < ek; ++k, p1 += s2, p2 += s2, p3 += s2)
1779 for (
int j = bj; j < ej; ++j, p1 += s1, p2 += s1, p3 += s1)
1780 for (
int i = bi; i < ei; ++i, p1 += 1, p2 += 1, p3 += 1) {
1792 template <
class T1,
class T2,
class T3,
1805 VoxelFunc &vf, OutsideFunc &of)
1807 ForEachVoxelIfBody<VoxelFunc, OutsideFunc>(vf, of, im1.Attributes()), im1(im1), im2(im2), im3(im3)
1829 const int T = (attr.
_dt ? attr.
_t : 1);
1831 for (
int l = 0; l < T; ++l)
1832 for (
int k = 0; k < attr.
_z; ++k)
1833 for (
int j = 0; j < attr.
_y; ++j)
1834 for (
int i = 0; i < attr.
_x; ++i, ++p1, ++p2, ++p3) {
1835 if (Domain::IsInside(im3, i, j, k, l, p3)) {
1850 for (
int idx = re.begin(); idx < re.end(); ++idx, p1 += 1, p2 += 1, p3 += 1) {
1851 if (Domain::IsInside(im3, idx, p3)) {
1862 const int bi = re.cols().begin();
1863 const int bj = re.rows().begin();
1864 const int ei = re.cols().end();
1865 const int ej = re.rows().end();
1867 const int s1 = im3.
GetX() - (ei - bi);
1873 for (
int j = bj; j < ej; ++j, p1 += s1, p2 += s1, p3 += s1)
1874 for (
int i = bi; i < ei; ++i, p1 += 1, p2 += 1, p3 += 1) {
1875 if (Domain::IsInside(im3, i, j, this->_k, this->
_l, p3)) {
1886 const int bi = re.cols ().begin();
1887 const int bj = re.rows ().begin();
1888 const int bk = re.pages().begin();
1889 const int ei = re.cols ().end();
1890 const int ej = re.rows ().end();
1891 const int ek = re.pages().end();
1893 const int s1 = im3.
GetX() - (ei - bi);
1894 const int s2 = (im3.
GetY() - (ej - bj)) * im3.
GetX();
1900 for (
int k = bk; k < ek; ++k, p1 += s2, p2 += s2, p3 += s2)
1901 for (
int j = bj; j < ej; ++j, p1 += s1, p2 += s1, p3 += s1)
1902 for (
int i = bi; i < ei; ++i, p1 += 1, p2 += 1, p3 += 1) {
1903 if (Domain::IsInside(im3, i, j, k, this->
_l, p3)) {
1921 template <
class T1,
class T2,
class T3,
class VoxelFunc>
1927 vf.join(body._VoxelFunc);
1931 template <
class T1,
class T2,
class T3,
class VoxelFunc>
1934 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
1935 ForEachScalar(*im1, *im2, *im3, vf);
1939 template <
class T1,
class T2,
class T3,
class VoxelFunc>
1943 ForEachScalar(*im1, *im2, *im3, vf);
1948 vf.join(body._VoxelFunc);
1953 template <
class T1,
class T2,
class T3,
class VoxelFunc>
1956 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
1957 ForEachVoxel(*im1, *im2, *im3, vf);
1961 template <
class T1,
class T2,
class T3,
class VoxelFunc>
1970 template <
class T1,
class T2,
class T3,
class VoxelFunc>
1973 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
1974 ForEachVoxel(attr, *im1, *im2, *im3, vf);
1978 template <
class T1,
class T2,
class T3,
class VoxelFunc>
1987 template <
class T1,
class T2,
class T3,
class VoxelFunc>
1990 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
1991 ForEachVoxel(re, *im1, *im2, *im3, vf);
1995 template <
class T1,
class T2,
class T3,
class VoxelFunc>
2004 template <
class T1,
class T2,
class T3,
class VoxelFunc>
2007 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
2008 ForEachVoxel(re, *im1, *im2, *im3, vf);
2012 template <
class T1,
class T2,
class T3,
class VoxelFunc>
2021 template <
class T1,
class T2,
class T3,
class VoxelFunc>
2024 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
2025 ForEachVoxel(re, *im1, *im2, *im3, vf);
2033 template <
class T1,
class T2,
class T3,
class VoxelFunc>
2039 vf.join(body._VoxelFunc);
2043 template <
class T1,
class T2,
class T3,
class VoxelFunc>
2046 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
2047 ForEachScalar(im1, im2, im3, vf);
2051 template <
class T1,
class T2,
class T3,
class VoxelFunc>
2055 ForEachScalar(im1, im2, im3, vf);
2060 vf.join(body._VoxelFunc);
2065 template <
class T1,
class T2,
class T3,
class VoxelFunc>
2068 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
2069 ForEachVoxel(im1, im2, im3, vf);
2073 template <
class T1,
class T2,
class T3,
class VoxelFunc>
2082 template <
class T1,
class T2,
class T3,
class VoxelFunc>
2085 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
2086 ForEachVoxel(attr, im1, im2, im3, vf);
2090 template <
class T1,
class T2,
class T3,
class VoxelFunc>
2099 template <
class T1,
class T2,
class T3,
class VoxelFunc>
2102 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
2103 ForEachVoxel(re, im1, im2, im3, vf);
2107 template <
class T1,
class T2,
class T3,
class VoxelFunc>
2116 template <
class T1,
class T2,
class T3,
class VoxelFunc>
2119 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
2120 ForEachVoxel(re, im1, im2, im3, vf);
2124 template <
class T1,
class T2,
class T3,
class VoxelFunc>
2133 template <
class T1,
class T2,
class T3,
class VoxelFunc>
2136 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
2137 ForEachVoxel(re, im1, im2, im3, vf);
2149 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
2155 vf.join(body._VoxelFunc);
2156 of.join(body._OutsideFunc);
2160 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
2163 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
2164 ForEachScalarIf<Domain>(*im1, *im2, *im3, vf, of);
2168 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
2172 ForEachScalarIf<Domain>(*im1, *im2, *im3, vf, of);
2176 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
2179 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
2180 ForEachScalarIf<Domain>(*im1, *im2, *im3, vf);
2184 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
2188 ForEachScalarIf<Domain>(*im1, *im2, *im3, vf, of);
2193 vf.join(body._VoxelFunc);
2194 of.join(body._OutsideFunc);
2199 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
2202 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
2203 ForEachVoxelIf<Domain>(*im1, *im2, *im3, vf, of);
2207 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
2211 ForEachVoxelIf<Domain>(*im1, *im2, *im3, vf, of);
2215 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
2218 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
2219 ForEachVoxelIf<Domain>(*im1, *im2, *im3, vf);
2223 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
2233 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
2236 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
2237 ForEachVoxelIf<Domain>(attr, *im1, *im2, *im3, vf, of);
2241 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
2245 ForEachVoxelIf<Domain>(attr, *im1, *im2, *im3, vf, of);
2249 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
2252 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
2253 ForEachVoxelIf<Domain>(attr, *im1, *im2, *im3, vf);
2257 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
2267 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
2270 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
2271 ForEachVoxelIf<Domain>(re, *im1, *im2, *im3, vf, of);
2275 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
2285 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
2288 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
2289 ForEachVoxelIf<Domain>(re, *im1, *im2, *im3, vf, of);
2293 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
2297 ForEachVoxelIf<Domain>(re, *im1, *im2, *im3, vf, of);
2301 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
2304 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
2305 ForEachVoxelIf<Domain>(re, *im1, *im2, *im3, vf);
2309 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
2319 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
2322 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
2323 ForEachVoxelIf<Domain>(*im1, *im2, *im3, vf, of);
2327 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
2331 ForEachVoxelIf<Domain>(re, *im1, *im2, *im3, vf, of);
2335 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
2338 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
2339 ForEachVoxelIf<Domain>(re, *im1, *im2, *im3, vf);
2347 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
2353 vf.join(body._VoxelFunc);
2354 of.join(body._OutsideFunc);
2358 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
2361 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
2362 ForEachScalarIf<Domain>(im1, im2, im3, vf, of);
2366 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
2370 ForEachScalarIf<Domain>(im1, im2, im3, vf, of);
2374 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
2377 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
2378 ForEachScalarIf<Domain>(im1, im2, im3, vf);
2382 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
2386 ForEachVoxelIf<Domain>(im1, im2, im3, vf, of);
2391 vf.join(body._VoxelFunc);
2392 of.join(body._OutsideFunc);
2397 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
2400 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
2401 ForEachVoxelIf<Domain>(im1, im2, im3, vf, of);
2405 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
2409 ForEachVoxelIf<Domain>(im1, im2, im3, vf, of);
2413 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
2416 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
2417 ForEachVoxelIf<Domain>(im1, im2, im3, vf);
2421 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
2431 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
2434 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
2435 ForEachVoxelIf<Domain>(attr, im1, im2, im3, vf, of);
2439 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
2443 ForEachVoxelIf<Domain>(attr, im1, im2, im3, vf, of);
2447 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
2450 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
2451 ForEachVoxelIf<Domain>(attr, im1, im2, im3, vf);
2455 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
2465 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
2468 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
2469 ForEachVoxelIf<Domain>(re, im1, im2, im3, vf, of);
2473 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
2483 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
2486 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
2487 ForEachVoxelIf<Domain>(re, im1, im2, im3, vf, of);
2491 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
2495 ForEachVoxelIf<Domain>(re, im1, im2, im3, vf, of);
2499 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
2502 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
2503 ForEachVoxelIf<Domain>(re, im1, im2, im3, vf);
2507 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
2517 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
2520 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
2521 ForEachVoxelIf<Domain>(re, im1, im2, im3, vf, of);
2525 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
2529 ForEachVoxelIf<Domain>(re, im1, im2, im3, vf, of);
2533 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
2536 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
2537 ForEachVoxelIf<Domain>(re, im1, im2, im3, vf);
2549 template <
class T1,
class T2,
class T3,
class VoxelFunc>
2559 template <
class T1,
class T2,
class T3,
class VoxelFunc>
2562 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
2563 ParallelForEachScalar(*im1, *im2, *im3, vf);
2567 template <
class T1,
class T2,
class T3,
class VoxelFunc>
2571 ParallelForEachScalar(*im1, *im2, *im3, vf);
2581 template <
class T1,
class T2,
class T3,
class VoxelFunc>
2584 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
2585 ParallelForEachVoxel(*im1, *im2, *im3, vf);
2589 template <
class T1,
class T2,
class T3,
class VoxelFunc>
2594 if (VoxelFunc::IsReduction()) {
2611 template <
class T1,
class T2,
class T3,
class VoxelFunc>
2614 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
2615 ParallelForEachVoxel(attr, *im1, *im2, *im3, vf);
2619 template <
class T1,
class T2,
class T3,
class VoxelFunc>
2628 template <
class T1,
class T2,
class T3,
class VoxelFunc>
2631 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
2632 ParallelForEachVoxel(re, *im1, *im2, *im3, vf);
2636 template <
class T1,
class T2,
class T3,
class VoxelFunc>
2645 template <
class T1,
class T2,
class T3,
class VoxelFunc>
2648 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
2649 ParallelForEachVoxel(re, *im1, *im2, *im3, vf);
2653 template <
class T1,
class T2,
class T3,
class VoxelFunc>
2662 template <
class T1,
class T2,
class T3,
class VoxelFunc>
2665 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
2666 ParallelForEachVoxel(re, *im1, *im2, *im3, vf);
2674 template <
class T1,
class T2,
class T3,
class VoxelFunc>
2684 template <
class T1,
class T2,
class T3,
class VoxelFunc>
2687 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
2688 ParallelForEachScalar(im1, im2, im3, vf);
2692 template <
class T1,
class T2,
class T3,
class VoxelFunc>
2696 ParallelForEachScalar(im1, im2, im3, vf);
2706 template <
class T1,
class T2,
class T3,
class VoxelFunc>
2709 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
2710 ParallelForEachVoxel(im1, im2, im3, vf);
2714 template <
class T1,
class T2,
class T3,
class VoxelFunc>
2719 if (VoxelFunc::IsReduction()) {
2736 template <
class T1,
class T2,
class T3,
class VoxelFunc>
2739 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
2740 ParallelForEachVoxel(attr, im1, im2, im3, vf);
2744 template <
class T1,
class T2,
class T3,
class VoxelFunc>
2753 template <
class T1,
class T2,
class T3,
class VoxelFunc>
2756 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
2757 ParallelForEachVoxel(re, im1, im2, im3, vf);
2761 template <
class T1,
class T2,
class T3,
class VoxelFunc>
2770 template <
class T1,
class T2,
class T3,
class VoxelFunc>
2773 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
2774 ParallelForEachVoxel(re, im1, im2, im3, vf);
2778 template <
class T1,
class T2,
class T3,
class VoxelFunc>
2787 template <
class T1,
class T2,
class T3,
class VoxelFunc>
2790 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
2791 ParallelForEachVoxel(re, im1, im2, im3, vf);
2803 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
2808 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) {
2818 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
2821 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
2822 ParallelForEachScalarIf<Domain>(*im1, *im2, *im3, vf, of);
2826 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
2830 ParallelForEachScalarIf<Domain>(*im1, *im2, *im3, vf, of);
2834 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
2837 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
2838 ParallelForEachScalarIf<Domain>(*im1, *im2, *im3, vf);
2842 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
2846 ParallelForEachVoxelIf<Domain>(*im1, *im2, *im3, vf, of);
2850 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) {
2861 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
2864 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
2865 ParallelForEachVoxelIf<Domain>(*im1, *im2, *im3, vf, of);
2869 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
2873 ParallelForEachVoxelIf<Domain>(*im1, *im2, *im3, vf, of);
2877 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
2880 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
2881 ParallelForEachVoxelIf<Domain>(*im1, *im2, *im3, vf);
2885 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
2890 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) {
2908 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
2911 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
2912 ParallelForEachVoxelIf<Domain>(attr, *im1, *im2, *im3, vf, of);
2916 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
2920 ParallelForEachVoxelIf<Domain>(attr, *im1, *im2, *im3, vf, of);
2924 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
2927 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
2928 ParallelForEachVoxelIf<Domain>(attr, *im1, *im2, *im3, vf);
2932 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
2936 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) {
2946 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
2949 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
2950 ParallelForEachVoxelIf<Domain>(re, *im1, *im2, *im3, vf, of);
2954 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
2958 ParallelForEachVoxelIf<Domain>(re, *im1, *im2, *im3, vf, of);
2962 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
2965 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
2966 ParallelForEachVoxelIf<Domain>(re, *im1, *im2, *im3, vf);
2970 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
2974 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) {
2984 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
2987 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
2988 ParallelForEachVoxelIf<Domain>(re, *im1, *im2, *im3, vf, of);
2992 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
2996 ParallelForEachVoxelIf<Domain>(re, *im1, *im2, *im3, vf, of);
3000 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
3003 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
3004 ParallelForEachVoxelIf<Domain>(re, *im1, *im2, *im3, vf);
3008 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
3012 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) {
3022 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
3025 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
3026 ParallelForEachVoxelIf<Domain>(re, *im1, *im2, *im3, vf, of);
3030 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
3034 ParallelForEachVoxelIf<Domain>(re, *im1, *im2, *im3, vf, of);
3038 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
3041 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
3042 ParallelForEachVoxelIf<Domain>(re, *im1, *im2, *im3, vf);
3050 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
3055 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) {
3065 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
3068 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
3069 ParallelForEachScalarIf<Domain>(im1, im2, im3, vf, of);
3073 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
3077 ParallelForEachScalarIf<Domain>(im1, im2, im3, vf, of);
3081 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
3084 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
3085 ParallelForEachScalarIf<Domain>(im1, im2, im3, vf);
3089 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
3093 ParallelForEachVoxelIf<Domain>(im1, im2, im3, vf, of);
3097 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) {
3108 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
3111 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
3112 ParallelForEachVoxelIf<Domain>(im1, im2, im3, vf, of);
3116 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
3120 ParallelForEachVoxelIf<Domain>(im1, im2, im3, vf, of);
3124 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
3127 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
3128 ParallelForEachVoxelIf<Domain>(im1, im2, im3, vf);
3132 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
3137 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) {
3155 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
3158 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
3159 ParallelForEachVoxelIf<Domain>(attr, im1, im2, im3, vf, of);
3163 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
3167 ParallelForEachVoxelIf<Domain>(attr, im1, im2, im3, vf, of);
3171 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
3174 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
3175 ParallelForEachVoxelIf<Domain>(attr, im1, im2, im3, vf);
3179 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
3183 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) {
3193 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
3196 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
3197 ParallelForEachVoxelIf<Domain>(re, im1, im2, im3, vf, of);
3201 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
3205 ParallelForEachVoxelIf<Domain>(re, im1, im2, im3, vf, of);
3209 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
3212 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
3213 ParallelForEachVoxelIf<Domain>(re, im1, im2, im3, vf);
3217 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
3221 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) {
3231 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
3234 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
3235 ParallelForEachVoxelIf<Domain>(re, im1, im2, im3, vf, of);
3239 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
3243 ParallelForEachVoxelIf<Domain>(re, im1, im2, im3, vf, of);
3247 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
3250 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
3251 ParallelForEachVoxelIf<Domain>(re, im1, im2, im3, vf);
3255 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
3259 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) {
3269 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
3272 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
3273 ParallelForEachVoxelIf<Domain>(re, im1, im2, im3, vf, of);
3277 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
3281 ParallelForEachVoxelIf<Domain>(re, im1, im2, im3, vf, of);
3285 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
3288 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
3289 ParallelForEachVoxelIf<Domain>(re, im1, im2, im3, vf);
3300 template <
class T1,
class T2,
class T3,
class VoxelFunc>
3313 ForEachVoxelBody<VoxelFunc>(vf, im1.Attributes()), im1(im1), im2(im2), im3(im3)
3335 const int T = (attr.
_dt ? attr.
_t : 1);
3337 for (
int l = 0; l < T; ++l)
3338 for (
int k = 0; k < attr.
_z; ++k)
3339 for (
int j = 0; j < attr.
_y; ++j)
3340 for (
int i = 0; i < attr.
_x; ++i, ++p1, ++p2, ++p3) {
3354 for (
int idx = re.begin(); idx < re.end(); ++idx, p1 += 1, p2 += 1, p3 += 1) {
3364 const int bi = re.cols().begin();
3365 const int bj = re.rows().begin();
3366 const int ei = re.cols().end();
3367 const int ej = re.rows().end();
3369 const int s1 = im3.
GetX() - (ei - bi);
3375 for (
int j = bj; j < ej; ++j, p1 += s1, p2 += s1, p3 += s1)
3376 for (
int i = bi; i < ei; ++i, p1 += 1, p2 += 1, p3 += 1) {
3386 const int bi = re.cols ().begin();
3387 const int bj = re.rows ().begin();
3388 const int bk = re.pages().begin();
3389 const int ei = re.cols ().end();
3390 const int ej = re.rows ().end();
3391 const int ek = re.pages().end();
3393 const int s1 = im3.
GetX() - (ei - bi);
3394 const int s2 = (im3.
GetY() - (ej - bj)) * im3.
GetX();
3400 for (
int k = bk; k < ek; ++k, p1 += s2, p2 += s2, p3 += s2)
3401 for (
int j = bj; j < ej; ++j, p1 += s1, p2 += s1, p3 += s1)
3402 for (
int i = bi; i < ei; ++i, p1 += 1, p2 += 1, p3 += 1) {
3414 template <
class T1,
class T2,
class T3,
3427 VoxelFunc &vf, OutsideFunc &of)
3429 ForEachVoxelIfBody<VoxelFunc, OutsideFunc>(vf, of, im1.Attributes()), im1(im1), im2(im2), im3(im3)
3451 const int T = (attr.
_dt ? attr.
_t : 1);
3453 for (
int l = 0; l < T; ++l)
3454 for (
int k = 0; k < attr.
_z; ++k)
3455 for (
int j = 0; j < attr.
_y; ++j)
3456 for (
int i = 0; i < attr.
_x; ++i, ++p1, ++p2, ++p3) {
3457 if (Domain::IsInside(im3, i, j, k, l, p3)) {
3472 for (
int idx = re.begin(); idx < re.end(); ++idx, p1 += 1, p2 += 1, p3 += 1) {
3473 if (Domain::IsInside(im3, idx, p3)) {
3484 const int bi = re.cols().begin();
3485 const int bj = re.rows().begin();
3486 const int ei = re.cols().end();
3487 const int ej = re.rows().end();
3489 const int s1 = im3.
GetX() - (ei - bi);
3495 for (
int j = bj; j < ej; ++j, p1 += s1, p2 += s1, p3 += s1)
3496 for (
int i = bi; i < ei; ++i, p1 += 1, p2 += 1, p3 += 1) {
3497 if (Domain::IsInside(im3, i, j, this->_k, this->
_l, p3)) {
3508 const int bi = re.cols ().begin();
3509 const int bj = re.rows ().begin();
3510 const int bk = re.pages().begin();
3511 const int ei = re.cols ().end();
3512 const int ej = re.rows ().end();
3513 const int ek = re.pages().end();
3515 const int s1 = im3.
GetX() - (ei - bi);
3516 const int s2 = (im3.
GetY() - (ej - bj)) * im3.
GetX();
3522 for (
int k = bk; k < ek; ++k, p1 += s2, p2 += s2, p3 += s2)
3523 for (
int j = bj; j < ej; ++j, p1 += s1, p2 += s1, p3 += s1)
3524 for (
int i = bi; i < ei; ++i, p1 += 1, p2 += 1, p3 += 1) {
3525 if (Domain::IsInside(im3, i, j, k, this->
_l, p3)) {
3543 template <
class T1,
class T2,
class T3,
class VoxelFunc>
3549 vf.join(body._VoxelFunc);
3553 template <
class T1,
class T2,
class T3,
class VoxelFunc>
3556 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
3557 ForEachScalar(*im1, *im2, *im3, vf);
3561 template <
class T1,
class T2,
class T3,
class VoxelFunc>
3565 ForEachScalar(*im1, *im2, *im3, vf);
3570 vf.join(body._VoxelFunc);
3575 template <
class T1,
class T2,
class T3,
class VoxelFunc>
3578 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
3579 ForEachVoxel(*im1, *im2, *im3, vf);
3583 template <
class T1,
class T2,
class T3,
class VoxelFunc>
3592 template <
class T1,
class T2,
class T3,
class VoxelFunc>
3595 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
3596 ForEachVoxel(attr, *im1, *im2, *im3, vf);
3600 template <
class T1,
class T2,
class T3,
class VoxelFunc>
3609 template <
class T1,
class T2,
class T3,
class VoxelFunc>
3612 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
3613 ForEachVoxel(re, *im1, *im2, *im3, vf);
3617 template <
class T1,
class T2,
class T3,
class VoxelFunc>
3626 template <
class T1,
class T2,
class T3,
class VoxelFunc>
3629 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
3630 ForEachVoxel(re, *im1, *im2, *im3, vf);
3634 template <
class T1,
class T2,
class T3,
class VoxelFunc>
3643 template <
class T1,
class T2,
class T3,
class VoxelFunc>
3646 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
3647 ForEachVoxel(re, *im1, *im2, *im3, vf);
3655 template <
class T1,
class T2,
class T3,
class VoxelFunc>
3661 vf.join(body._VoxelFunc);
3665 template <
class T1,
class T2,
class T3,
class VoxelFunc>
3668 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
3669 ForEachScalar(im1, im2, im3, vf);
3673 template <
class T1,
class T2,
class T3,
class VoxelFunc>
3677 ForEachScalar(im1, im2, im3, vf);
3682 vf.join(body._VoxelFunc);
3687 template <
class T1,
class T2,
class T3,
class VoxelFunc>
3690 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
3691 ForEachVoxel(im1, im2, im3, vf);
3695 template <
class T1,
class T2,
class T3,
class VoxelFunc>
3704 template <
class T1,
class T2,
class T3,
class VoxelFunc>
3707 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
3708 ForEachVoxel(attr, im1, im2, im3, vf);
3712 template <
class T1,
class T2,
class T3,
class VoxelFunc>
3721 template <
class T1,
class T2,
class T3,
class VoxelFunc>
3724 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
3725 ForEachVoxel(re, im1, im2, im3, vf);
3729 template <
class T1,
class T2,
class T3,
class VoxelFunc>
3738 template <
class T1,
class T2,
class T3,
class VoxelFunc>
3741 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
3742 ForEachVoxel(re, im1, im2, im3, vf);
3746 template <
class T1,
class T2,
class T3,
class VoxelFunc>
3755 template <
class T1,
class T2,
class T3,
class VoxelFunc>
3758 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
3759 ForEachVoxel(re, im1, im2, im3, vf);
3771 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
3777 vf.join(body._VoxelFunc);
3778 of.join(body._OutsideFunc);
3782 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
3785 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
3786 ForEachScalarIf<Domain>(*im1, *im2, *im3, vf, of);
3790 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
3794 ForEachScalarIf<Domain>(*im1, *im2, *im3, vf, of);
3798 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
3801 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
3802 ForEachScalarIf<Domain>(*im1, *im2, *im3, vf);
3806 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
3810 ForEachScalarIf<Domain>(*im1, *im2, *im3, vf, of);
3815 vf.join(body._VoxelFunc);
3816 of.join(body._OutsideFunc);
3821 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
3824 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
3825 ForEachVoxelIf<Domain>(*im1, *im2, *im3, vf, of);
3829 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
3833 ForEachVoxelIf<Domain>(*im1, *im2, *im3, vf, of);
3837 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
3840 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
3841 ForEachVoxelIf<Domain>(*im1, *im2, *im3, vf);
3845 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
3855 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
3858 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
3859 ForEachVoxelIf<Domain>(attr, *im1, *im2, *im3, vf, of);
3863 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
3867 ForEachVoxelIf<Domain>(attr, *im1, *im2, *im3, vf, of);
3871 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
3874 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
3875 ForEachVoxelIf<Domain>(attr, *im1, *im2, *im3, vf);
3879 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
3889 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
3892 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
3893 ForEachVoxelIf<Domain>(re, *im1, *im2, *im3, vf, of);
3897 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
3907 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
3910 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
3911 ForEachVoxelIf<Domain>(re, *im1, *im2, *im3, vf, of);
3915 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
3919 ForEachVoxelIf<Domain>(re, *im1, *im2, *im3, vf, of);
3923 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
3926 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
3927 ForEachVoxelIf<Domain>(re, *im1, *im2, *im3, vf);
3931 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
3941 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
3944 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
3945 ForEachVoxelIf<Domain>(*im1, *im2, *im3, vf, of);
3949 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
3953 ForEachVoxelIf<Domain>(re, *im1, *im2, *im3, vf, of);
3957 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
3960 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
3961 ForEachVoxelIf<Domain>(re, *im1, *im2, *im3, vf);
3969 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
3975 vf.join(body._VoxelFunc);
3976 of.join(body._OutsideFunc);
3980 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
3983 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
3984 ForEachScalarIf<Domain>(im1, im2, im3, vf, of);
3988 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
3992 ForEachScalarIf<Domain>(im1, im2, im3, vf, of);
3996 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
3999 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
4000 ForEachScalarIf<Domain>(im1, im2, im3, vf);
4004 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
4008 ForEachVoxelIf<Domain>(im1, im2, im3, vf, of);
4013 vf.join(body._VoxelFunc);
4014 of.join(body._OutsideFunc);
4019 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
4022 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
4023 ForEachVoxelIf<Domain>(im1, im2, im3, vf, of);
4027 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
4031 ForEachVoxelIf<Domain>(im1, im2, im3, vf, of);
4035 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
4038 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
4039 ForEachVoxelIf<Domain>(im1, im2, im3, vf);
4043 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
4053 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
4056 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
4057 ForEachVoxelIf<Domain>(attr, im1, im2, im3, vf, of);
4061 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
4065 ForEachVoxelIf<Domain>(attr, im1, im2, im3, vf, of);
4069 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
4072 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
4073 ForEachVoxelIf<Domain>(attr, im1, im2, im3, vf);
4077 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
4087 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
4090 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
4091 ForEachVoxelIf<Domain>(re, im1, im2, im3, vf, of);
4095 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
4105 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
4108 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
4109 ForEachVoxelIf<Domain>(re, im1, im2, im3, vf, of);
4113 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
4117 ForEachVoxelIf<Domain>(re, im1, im2, im3, vf, of);
4121 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
4124 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
4125 ForEachVoxelIf<Domain>(re, im1, im2, im3, vf);
4129 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
4139 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
4142 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
4143 ForEachVoxelIf<Domain>(re, im1, im2, im3, vf, of);
4147 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
4151 ForEachVoxelIf<Domain>(re, im1, im2, im3, vf, of);
4155 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
4158 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
4159 ForEachVoxelIf<Domain>(re, im1, im2, im3, vf);
4171 template <
class T1,
class T2,
class T3,
class VoxelFunc>
4181 template <
class T1,
class T2,
class T3,
class VoxelFunc>
4184 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
4185 ParallelForEachScalar(*im1, *im2, *im3, vf);
4189 template <
class T1,
class T2,
class T3,
class VoxelFunc>
4193 ParallelForEachScalar(*im1, *im2, *im3, vf);
4203 template <
class T1,
class T2,
class T3,
class VoxelFunc>
4206 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
4207 ParallelForEachVoxel(*im1, *im2, *im3, vf);
4211 template <
class T1,
class T2,
class T3,
class VoxelFunc>
4216 if (VoxelFunc::IsReduction()) {
4233 template <
class T1,
class T2,
class T3,
class VoxelFunc>
4236 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
4237 ParallelForEachVoxel(attr, *im1, *im2, *im3, vf);
4241 template <
class T1,
class T2,
class T3,
class VoxelFunc>
4250 template <
class T1,
class T2,
class T3,
class VoxelFunc>
4253 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
4254 ParallelForEachVoxel(re, *im1, *im2, *im3, vf);
4258 template <
class T1,
class T2,
class T3,
class VoxelFunc>
4267 template <
class T1,
class T2,
class T3,
class VoxelFunc>
4270 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
4271 ParallelForEachVoxel(re, *im1, *im2, *im3, vf);
4275 template <
class T1,
class T2,
class T3,
class VoxelFunc>
4284 template <
class T1,
class T2,
class T3,
class VoxelFunc>
4287 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
4288 ParallelForEachVoxel(re, *im1, *im2, *im3, vf);
4296 template <
class T1,
class T2,
class T3,
class VoxelFunc>
4306 template <
class T1,
class T2,
class T3,
class VoxelFunc>
4309 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
4310 ParallelForEachScalar(im1, im2, im3, vf);
4314 template <
class T1,
class T2,
class T3,
class VoxelFunc>
4318 ParallelForEachScalar(im1, im2, im3, vf);
4328 template <
class T1,
class T2,
class T3,
class VoxelFunc>
4331 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
4332 ParallelForEachVoxel(im1, im2, im3, vf);
4336 template <
class T1,
class T2,
class T3,
class VoxelFunc>
4341 if (VoxelFunc::IsReduction()) {
4358 template <
class T1,
class T2,
class T3,
class VoxelFunc>
4361 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
4362 ParallelForEachVoxel(attr, im1, im2, im3, vf);
4366 template <
class T1,
class T2,
class T3,
class VoxelFunc>
4375 template <
class T1,
class T2,
class T3,
class VoxelFunc>
4378 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
4379 ParallelForEachVoxel(re, im1, im2, im3, vf);
4383 template <
class T1,
class T2,
class T3,
class VoxelFunc>
4392 template <
class T1,
class T2,
class T3,
class VoxelFunc>
4395 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
4396 ParallelForEachVoxel(re, im1, im2, im3, vf);
4400 template <
class T1,
class T2,
class T3,
class VoxelFunc>
4409 template <
class T1,
class T2,
class T3,
class VoxelFunc>
4412 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
4413 ParallelForEachVoxel(re, im1, im2, im3, vf);
4425 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
4430 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) {
4440 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
4443 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
4444 ParallelForEachScalarIf<Domain>(*im1, *im2, *im3, vf, of);
4448 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
4452 ParallelForEachScalarIf<Domain>(*im1, *im2, *im3, vf, of);
4456 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
4459 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
4460 ParallelForEachScalarIf<Domain>(*im1, *im2, *im3, vf);
4464 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
4468 ParallelForEachVoxelIf<Domain>(*im1, *im2, *im3, vf, of);
4472 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) {
4483 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
4486 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
4487 ParallelForEachVoxelIf<Domain>(*im1, *im2, *im3, vf, of);
4491 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
4495 ParallelForEachVoxelIf<Domain>(*im1, *im2, *im3, vf, of);
4499 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
4502 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
4503 ParallelForEachVoxelIf<Domain>(*im1, *im2, *im3, vf);
4507 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
4512 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) {
4530 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
4533 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
4534 ParallelForEachVoxelIf<Domain>(attr, *im1, *im2, *im3, vf, of);
4538 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
4542 ParallelForEachVoxelIf<Domain>(attr, *im1, *im2, *im3, vf, of);
4546 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
4549 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
4550 ParallelForEachVoxelIf<Domain>(attr, *im1, *im2, *im3, vf);
4554 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
4558 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) {
4568 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
4571 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
4572 ParallelForEachVoxelIf<Domain>(re, *im1, *im2, *im3, vf, of);
4576 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
4580 ParallelForEachVoxelIf<Domain>(re, *im1, *im2, *im3, vf, of);
4584 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
4587 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
4588 ParallelForEachVoxelIf<Domain>(re, *im1, *im2, *im3, vf);
4592 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
4596 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) {
4606 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
4609 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
4610 ParallelForEachVoxelIf<Domain>(re, *im1, *im2, *im3, vf, of);
4614 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
4618 ParallelForEachVoxelIf<Domain>(re, *im1, *im2, *im3, vf, of);
4622 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
4625 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
4626 ParallelForEachVoxelIf<Domain>(re, *im1, *im2, *im3, vf);
4630 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
4634 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) {
4644 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
4647 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
4648 ParallelForEachVoxelIf<Domain>(re, *im1, *im2, *im3, vf, of);
4652 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
4656 ParallelForEachVoxelIf<Domain>(re, *im1, *im2, *im3, vf, of);
4660 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
4663 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
4664 ParallelForEachVoxelIf<Domain>(re, *im1, *im2, *im3, vf);
4672 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
4677 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) {
4687 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
4690 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
4691 ParallelForEachScalarIf<Domain>(im1, im2, im3, vf, of);
4695 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
4699 ParallelForEachScalarIf<Domain>(im1, im2, im3, vf, of);
4703 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
4706 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
4707 ParallelForEachScalarIf<Domain>(im1, im2, im3, vf);
4711 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
4715 ParallelForEachVoxelIf<Domain>(im1, im2, im3, vf, of);
4719 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) {
4730 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
4733 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
4734 ParallelForEachVoxelIf<Domain>(im1, im2, im3, vf, of);
4738 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
4742 ParallelForEachVoxelIf<Domain>(im1, im2, im3, vf, of);
4746 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
4749 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
4750 ParallelForEachVoxelIf<Domain>(im1, im2, im3, vf);
4754 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
4759 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) {
4777 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
4780 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
4781 ParallelForEachVoxelIf<Domain>(attr, im1, im2, im3, vf, of);
4785 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
4789 ParallelForEachVoxelIf<Domain>(attr, im1, im2, im3, vf, of);
4793 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
4796 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
4797 ParallelForEachVoxelIf<Domain>(attr, im1, im2, im3, vf);
4801 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
4805 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) {
4815 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
4818 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
4819 ParallelForEachVoxelIf<Domain>(re, im1, im2, im3, vf, of);
4823 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
4827 ParallelForEachVoxelIf<Domain>(re, im1, im2, im3, vf, of);
4831 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
4834 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
4835 ParallelForEachVoxelIf<Domain>(re, im1, im2, im3, vf);
4839 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
4843 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) {
4853 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
4856 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
4857 ParallelForEachVoxelIf<Domain>(re, im1, im2, im3, vf, of);
4861 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
4865 ParallelForEachVoxelIf<Domain>(re, im1, im2, im3, vf, of);
4869 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
4872 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
4873 ParallelForEachVoxelIf<Domain>(re, im1, im2, im3, vf);
4877 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
4881 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) {
4891 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
4894 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
4895 ParallelForEachVoxelIf<Domain>(re, im1, im2, im3, vf, of);
4899 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
4903 ParallelForEachVoxelIf<Domain>(re, im1, im2, im3, vf, of);
4907 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
4910 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
4911 ParallelForEachVoxelIf<Domain>(re, im1, im2, im3, vf);
4922 template <
class T1,
class T2,
class T3,
class VoxelFunc>
4935 ForEachVoxelBody<VoxelFunc>(vf, im1.Attributes()), im1(im1), im2(im2), im3(im3)
4957 const int T = (attr.
_dt ? attr.
_t : 1);
4959 for (
int l = 0; l < T; ++l)
4960 for (
int k = 0; k < attr.
_z; ++k)
4961 for (
int j = 0; j < attr.
_y; ++j)
4962 for (
int i = 0; i < attr.
_x; ++i, ++p1, ++p2, ++p3) {
4976 for (
int idx = re.begin(); idx < re.end(); ++idx, p1 += 1, p2 += 1, p3 += 1) {
4986 const int bi = re.cols().begin();
4987 const int bj = re.rows().begin();
4988 const int ei = re.cols().end();
4989 const int ej = re.rows().end();
4991 const int s1 = im3.
GetX() - (ei - bi);
4997 for (
int j = bj; j < ej; ++j, p1 += s1, p2 += s1, p3 += s1)
4998 for (
int i = bi; i < ei; ++i, p1 += 1, p2 += 1, p3 += 1) {
5008 const int bi = re.cols ().begin();
5009 const int bj = re.rows ().begin();
5010 const int bk = re.pages().begin();
5011 const int ei = re.cols ().end();
5012 const int ej = re.rows ().end();
5013 const int ek = re.pages().end();
5015 const int s1 = im3.
GetX() - (ei - bi);
5016 const int s2 = (im3.
GetY() - (ej - bj)) * im3.
GetX();
5022 for (
int k = bk; k < ek; ++k, p1 += s2, p2 += s2, p3 += s2)
5023 for (
int j = bj; j < ej; ++j, p1 += s1, p2 += s1, p3 += s1)
5024 for (
int i = bi; i < ei; ++i, p1 += 1, p2 += 1, p3 += 1) {
5036 template <
class T1,
class T2,
class T3,
5049 VoxelFunc &vf, OutsideFunc &of)
5051 ForEachVoxelIfBody<VoxelFunc, OutsideFunc>(vf, of, im1.Attributes()), im1(im1), im2(im2), im3(im3)
5073 const int T = (attr.
_dt ? attr.
_t : 1);
5075 for (
int l = 0; l < T; ++l)
5076 for (
int k = 0; k < attr.
_z; ++k)
5077 for (
int j = 0; j < attr.
_y; ++j)
5078 for (
int i = 0; i < attr.
_x; ++i, ++p1, ++p2, ++p3) {
5079 if (Domain::IsInside(im3, i, j, k, l, p3)) {
5094 for (
int idx = re.begin(); idx < re.end(); ++idx, p1 += 1, p2 += 1, p3 += 1) {
5095 if (Domain::IsInside(im3, idx, p3)) {
5106 const int bi = re.cols().begin();
5107 const int bj = re.rows().begin();
5108 const int ei = re.cols().end();
5109 const int ej = re.rows().end();
5111 const int s1 = im3.
GetX() - (ei - bi);
5117 for (
int j = bj; j < ej; ++j, p1 += s1, p2 += s1, p3 += s1)
5118 for (
int i = bi; i < ei; ++i, p1 += 1, p2 += 1, p3 += 1) {
5119 if (Domain::IsInside(im3, i, j, this->_k, this->
_l, p3)) {
5130 const int bi = re.cols ().begin();
5131 const int bj = re.rows ().begin();
5132 const int bk = re.pages().begin();
5133 const int ei = re.cols ().end();
5134 const int ej = re.rows ().end();
5135 const int ek = re.pages().end();
5137 const int s1 = im3.
GetX() - (ei - bi);
5138 const int s2 = (im3.
GetY() - (ej - bj)) * im3.
GetX();
5144 for (
int k = bk; k < ek; ++k, p1 += s2, p2 += s2, p3 += s2)
5145 for (
int j = bj; j < ej; ++j, p1 += s1, p2 += s1, p3 += s1)
5146 for (
int i = bi; i < ei; ++i, p1 += 1, p2 += 1, p3 += 1) {
5147 if (Domain::IsInside(im3, i, j, k, this->
_l, p3)) {
5165 template <
class T1,
class T2,
class T3,
class VoxelFunc>
5171 vf.join(body._VoxelFunc);
5175 template <
class T1,
class T2,
class T3,
class VoxelFunc>
5178 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
5179 ForEachScalar(*im1, *im2, *im3, vf);
5183 template <
class T1,
class T2,
class T3,
class VoxelFunc>
5187 ForEachScalar(*im1, *im2, *im3, vf);
5192 vf.join(body._VoxelFunc);
5197 template <
class T1,
class T2,
class T3,
class VoxelFunc>
5200 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
5201 ForEachVoxel(*im1, *im2, *im3, vf);
5205 template <
class T1,
class T2,
class T3,
class VoxelFunc>
5214 template <
class T1,
class T2,
class T3,
class VoxelFunc>
5217 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
5218 ForEachVoxel(attr, *im1, *im2, *im3, vf);
5222 template <
class T1,
class T2,
class T3,
class VoxelFunc>
5231 template <
class T1,
class T2,
class T3,
class VoxelFunc>
5234 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
5235 ForEachVoxel(re, *im1, *im2, *im3, vf);
5239 template <
class T1,
class T2,
class T3,
class VoxelFunc>
5248 template <
class T1,
class T2,
class T3,
class VoxelFunc>
5251 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
5252 ForEachVoxel(re, *im1, *im2, *im3, vf);
5256 template <
class T1,
class T2,
class T3,
class VoxelFunc>
5265 template <
class T1,
class T2,
class T3,
class VoxelFunc>
5268 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
5269 ForEachVoxel(re, *im1, *im2, *im3, vf);
5277 template <
class T1,
class T2,
class T3,
class VoxelFunc>
5283 vf.join(body._VoxelFunc);
5287 template <
class T1,
class T2,
class T3,
class VoxelFunc>
5290 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
5291 ForEachScalar(im1, im2, im3, vf);
5295 template <
class T1,
class T2,
class T3,
class VoxelFunc>
5299 ForEachScalar(im1, im2, im3, vf);
5304 vf.join(body._VoxelFunc);
5309 template <
class T1,
class T2,
class T3,
class VoxelFunc>
5312 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
5313 ForEachVoxel(im1, im2, im3, vf);
5317 template <
class T1,
class T2,
class T3,
class VoxelFunc>
5326 template <
class T1,
class T2,
class T3,
class VoxelFunc>
5329 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
5330 ForEachVoxel(attr, im1, im2, im3, vf);
5334 template <
class T1,
class T2,
class T3,
class VoxelFunc>
5343 template <
class T1,
class T2,
class T3,
class VoxelFunc>
5346 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
5347 ForEachVoxel(re, im1, im2, im3, vf);
5351 template <
class T1,
class T2,
class T3,
class VoxelFunc>
5360 template <
class T1,
class T2,
class T3,
class VoxelFunc>
5363 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
5364 ForEachVoxel(re, im1, im2, im3, vf);
5368 template <
class T1,
class T2,
class T3,
class VoxelFunc>
5377 template <
class T1,
class T2,
class T3,
class VoxelFunc>
5380 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
5381 ForEachVoxel(re, im1, im2, im3, vf);
5393 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
5399 vf.join(body._VoxelFunc);
5400 of.join(body._OutsideFunc);
5404 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
5407 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
5408 ForEachScalarIf<Domain>(*im1, *im2, *im3, vf, of);
5412 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
5416 ForEachScalarIf<Domain>(*im1, *im2, *im3, vf, of);
5420 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
5423 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
5424 ForEachScalarIf<Domain>(*im1, *im2, *im3, vf);
5428 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
5432 ForEachScalarIf<Domain>(*im1, *im2, *im3, vf, of);
5437 vf.join(body._VoxelFunc);
5438 of.join(body._OutsideFunc);
5443 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
5446 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
5447 ForEachVoxelIf<Domain>(*im1, *im2, *im3, vf, of);
5451 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
5455 ForEachVoxelIf<Domain>(*im1, *im2, *im3, vf, of);
5459 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
5462 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
5463 ForEachVoxelIf<Domain>(*im1, *im2, *im3, vf);
5467 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
5477 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
5480 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
5481 ForEachVoxelIf<Domain>(attr, *im1, *im2, *im3, vf, of);
5485 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
5489 ForEachVoxelIf<Domain>(attr, *im1, *im2, *im3, vf, of);
5493 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
5496 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
5497 ForEachVoxelIf<Domain>(attr, *im1, *im2, *im3, vf);
5501 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
5511 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
5514 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
5515 ForEachVoxelIf<Domain>(re, *im1, *im2, *im3, vf, of);
5519 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
5529 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
5532 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
5533 ForEachVoxelIf<Domain>(re, *im1, *im2, *im3, vf, of);
5537 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
5541 ForEachVoxelIf<Domain>(re, *im1, *im2, *im3, vf, of);
5545 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
5548 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
5549 ForEachVoxelIf<Domain>(re, *im1, *im2, *im3, vf);
5553 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
5563 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
5566 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
5567 ForEachVoxelIf<Domain>(*im1, *im2, *im3, vf, of);
5571 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
5575 ForEachVoxelIf<Domain>(re, *im1, *im2, *im3, vf, of);
5579 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
5582 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
5583 ForEachVoxelIf<Domain>(re, *im1, *im2, *im3, vf);
5591 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
5597 vf.join(body._VoxelFunc);
5598 of.join(body._OutsideFunc);
5602 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
5605 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
5606 ForEachScalarIf<Domain>(im1, im2, im3, vf, of);
5610 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
5614 ForEachScalarIf<Domain>(im1, im2, im3, vf, of);
5618 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
5621 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
5622 ForEachScalarIf<Domain>(im1, im2, im3, vf);
5626 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
5630 ForEachVoxelIf<Domain>(im1, im2, im3, vf, of);
5635 vf.join(body._VoxelFunc);
5636 of.join(body._OutsideFunc);
5641 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
5644 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
5645 ForEachVoxelIf<Domain>(im1, im2, im3, vf, of);
5649 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
5653 ForEachVoxelIf<Domain>(im1, im2, im3, vf, of);
5657 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
5660 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
5661 ForEachVoxelIf<Domain>(im1, im2, im3, vf);
5665 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
5675 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
5678 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
5679 ForEachVoxelIf<Domain>(attr, im1, im2, im3, vf, of);
5683 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
5687 ForEachVoxelIf<Domain>(attr, im1, im2, im3, vf, of);
5691 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
5694 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
5695 ForEachVoxelIf<Domain>(attr, im1, im2, im3, vf);
5699 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
5709 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
5712 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
5713 ForEachVoxelIf<Domain>(re, im1, im2, im3, vf, of);
5717 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
5727 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
5730 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
5731 ForEachVoxelIf<Domain>(re, im1, im2, im3, vf, of);
5735 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
5739 ForEachVoxelIf<Domain>(re, im1, im2, im3, vf, of);
5743 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
5746 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
5747 ForEachVoxelIf<Domain>(re, im1, im2, im3, vf);
5751 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
5761 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
5764 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
5765 ForEachVoxelIf<Domain>(re, im1, im2, im3, vf, of);
5769 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
5773 ForEachVoxelIf<Domain>(re, im1, im2, im3, vf, of);
5777 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
5780 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
5781 ForEachVoxelIf<Domain>(re, im1, im2, im3, vf);
5793 template <
class T1,
class T2,
class T3,
class VoxelFunc>
5803 template <
class T1,
class T2,
class T3,
class VoxelFunc>
5806 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
5807 ParallelForEachScalar(*im1, *im2, *im3, vf);
5811 template <
class T1,
class T2,
class T3,
class VoxelFunc>
5815 ParallelForEachScalar(*im1, *im2, *im3, vf);
5825 template <
class T1,
class T2,
class T3,
class VoxelFunc>
5828 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
5829 ParallelForEachVoxel(*im1, *im2, *im3, vf);
5833 template <
class T1,
class T2,
class T3,
class VoxelFunc>
5838 if (VoxelFunc::IsReduction()) {
5855 template <
class T1,
class T2,
class T3,
class VoxelFunc>
5858 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
5859 ParallelForEachVoxel(attr, *im1, *im2, *im3, vf);
5863 template <
class T1,
class T2,
class T3,
class VoxelFunc>
5872 template <
class T1,
class T2,
class T3,
class VoxelFunc>
5875 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
5876 ParallelForEachVoxel(re, *im1, *im2, *im3, vf);
5880 template <
class T1,
class T2,
class T3,
class VoxelFunc>
5889 template <
class T1,
class T2,
class T3,
class VoxelFunc>
5892 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
5893 ParallelForEachVoxel(re, *im1, *im2, *im3, vf);
5897 template <
class T1,
class T2,
class T3,
class VoxelFunc>
5906 template <
class T1,
class T2,
class T3,
class VoxelFunc>
5909 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
5910 ParallelForEachVoxel(re, *im1, *im2, *im3, vf);
5918 template <
class T1,
class T2,
class T3,
class VoxelFunc>
5928 template <
class T1,
class T2,
class T3,
class VoxelFunc>
5931 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
5932 ParallelForEachScalar(im1, im2, im3, vf);
5936 template <
class T1,
class T2,
class T3,
class VoxelFunc>
5940 ParallelForEachScalar(im1, im2, im3, vf);
5950 template <
class T1,
class T2,
class T3,
class VoxelFunc>
5953 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
5954 ParallelForEachVoxel(im1, im2, im3, vf);
5958 template <
class T1,
class T2,
class T3,
class VoxelFunc>
5963 if (VoxelFunc::IsReduction()) {
5980 template <
class T1,
class T2,
class T3,
class VoxelFunc>
5983 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
5984 ParallelForEachVoxel(attr, im1, im2, im3, vf);
5988 template <
class T1,
class T2,
class T3,
class VoxelFunc>
5997 template <
class T1,
class T2,
class T3,
class VoxelFunc>
6000 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
6001 ParallelForEachVoxel(re, im1, im2, im3, vf);
6005 template <
class T1,
class T2,
class T3,
class VoxelFunc>
6014 template <
class T1,
class T2,
class T3,
class VoxelFunc>
6017 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
6018 ParallelForEachVoxel(re, im1, im2, im3, vf);
6022 template <
class T1,
class T2,
class T3,
class VoxelFunc>
6031 template <
class T1,
class T2,
class T3,
class VoxelFunc>
6034 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
6035 ParallelForEachVoxel(re, im1, im2, im3, vf);
6047 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
6052 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) {
6062 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
6065 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
6066 ParallelForEachScalarIf<Domain>(*im1, *im2, *im3, vf, of);
6070 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
6074 ParallelForEachScalarIf<Domain>(*im1, *im2, *im3, vf, of);
6078 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
6081 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
6082 ParallelForEachScalarIf<Domain>(*im1, *im2, *im3, vf);
6086 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
6090 ParallelForEachVoxelIf<Domain>(*im1, *im2, *im3, vf, of);
6094 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) {
6105 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
6108 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
6109 ParallelForEachVoxelIf<Domain>(*im1, *im2, *im3, vf, of);
6113 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
6117 ParallelForEachVoxelIf<Domain>(*im1, *im2, *im3, vf, of);
6121 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
6124 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
6125 ParallelForEachVoxelIf<Domain>(*im1, *im2, *im3, vf);
6129 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
6134 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) {
6152 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
6155 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
6156 ParallelForEachVoxelIf<Domain>(attr, *im1, *im2, *im3, vf, of);
6160 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
6164 ParallelForEachVoxelIf<Domain>(attr, *im1, *im2, *im3, vf, of);
6168 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
6171 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
6172 ParallelForEachVoxelIf<Domain>(attr, *im1, *im2, *im3, vf);
6176 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
6180 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) {
6190 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
6193 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
6194 ParallelForEachVoxelIf<Domain>(re, *im1, *im2, *im3, vf, of);
6198 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
6202 ParallelForEachVoxelIf<Domain>(re, *im1, *im2, *im3, vf, of);
6206 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
6209 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
6210 ParallelForEachVoxelIf<Domain>(re, *im1, *im2, *im3, vf);
6214 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
6218 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) {
6228 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
6231 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
6232 ParallelForEachVoxelIf<Domain>(re, *im1, *im2, *im3, vf, of);
6236 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
6240 ParallelForEachVoxelIf<Domain>(re, *im1, *im2, *im3, vf, of);
6244 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
6247 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
6248 ParallelForEachVoxelIf<Domain>(re, *im1, *im2, *im3, vf);
6252 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
6256 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) {
6266 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
6269 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
6270 ParallelForEachVoxelIf<Domain>(re, *im1, *im2, *im3, vf, of);
6274 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
6278 ParallelForEachVoxelIf<Domain>(re, *im1, *im2, *im3, vf, of);
6282 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
6285 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
6286 ParallelForEachVoxelIf<Domain>(re, *im1, *im2, *im3, vf);
6294 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
6299 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) {
6309 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
6312 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
6313 ParallelForEachScalarIf<Domain>(im1, im2, im3, vf, of);
6317 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
6321 ParallelForEachScalarIf<Domain>(im1, im2, im3, vf, of);
6325 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
6328 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
6329 ParallelForEachScalarIf<Domain>(im1, im2, im3, vf);
6333 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
6337 ParallelForEachVoxelIf<Domain>(im1, im2, im3, vf, of);
6341 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) {
6352 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
6355 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
6356 ParallelForEachVoxelIf<Domain>(im1, im2, im3, vf, of);
6360 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
6364 ParallelForEachVoxelIf<Domain>(im1, im2, im3, vf, of);
6368 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
6371 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
6372 ParallelForEachVoxelIf<Domain>(im1, im2, im3, vf);
6376 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
6381 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) {
6399 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
6402 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
6403 ParallelForEachVoxelIf<Domain>(attr, im1, im2, im3, vf, of);
6407 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
6411 ParallelForEachVoxelIf<Domain>(attr, im1, im2, im3, vf, of);
6415 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
6418 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
6419 ParallelForEachVoxelIf<Domain>(attr, im1, im2, im3, vf);
6423 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
6427 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) {
6437 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
6440 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
6441 ParallelForEachVoxelIf<Domain>(re, im1, im2, im3, vf, of);
6445 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
6449 ParallelForEachVoxelIf<Domain>(re, im1, im2, im3, vf, of);
6453 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
6456 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
6457 ParallelForEachVoxelIf<Domain>(re, im1, im2, im3, vf);
6461 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
6465 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) {
6475 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
6478 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
6479 ParallelForEachVoxelIf<Domain>(re, im1, im2, im3, vf, of);
6483 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
6487 ParallelForEachVoxelIf<Domain>(re, im1, im2, im3, vf, of);
6491 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
6494 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
6495 ParallelForEachVoxelIf<Domain>(re, im1, im2, im3, vf);
6499 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
6503 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) {
6513 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc,
class Outs
ideFunc>
6516 if (VoxelFunc::IsReduction() || OutsideFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
6517 ParallelForEachVoxelIf<Domain>(re, im1, im2, im3, vf, of);
6521 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
6525 ParallelForEachVoxelIf<Domain>(re, im1, im2, im3, vf, of);
6529 template <
class Domain,
class T1,
class T2,
class T3,
class VoxelFunc>
6532 if (VoxelFunc::IsReduction()) _foreachternaryvoxelfunction_must_not_be_reduction();
6533 ParallelForEachVoxelIf<Domain>(re, im1, im2, im3, vf);
double _dt
Voxel t-dimensions (in ms)
Dummy type used to distinguish split constructor from copy constructor.
TernaryForEachVoxelBody_1Const(const GenericImage< T1 > &im1, GenericImage< T2 > &im2, GenericImage< T3 > &im3, VoxelFunc &vf)
Constructor.
void operator()(const ImageAttributes &attr) const
Process entire image.
TernaryForEachVoxelBody_1Const(TernaryForEachVoxelBody_1Const &o, split s)
Split constructor.
bool IsEmpty() const
Whether image is uninitialized.
TernaryForEachVoxelBody_Const(const TernaryForEachVoxelBody_Const &o)
Copy constructor.
TernaryForEachVoxelIfBody_Const(const GenericImage< T1 > &im1, const GenericImage< T2 > &im2, const GenericImage< T3 > &im3, VoxelFunc &vf, OutsideFunc &of)
Constructor.
TernaryForEachVoxelBody_2Const(const TernaryForEachVoxelBody_2Const &o)
Copy constructor.
int _y
Image y-dimension (in voxels)
TernaryForEachVoxelIfBody_1Const(const TernaryForEachVoxelIfBody_1Const &o)
Copy constructor.
VoxelFunc _VoxelFunc
Functor executed for each voxel.
TernaryForEachVoxelBody_Const(TernaryForEachVoxelBody_Const &o, split s)
Split constructor.
TernaryForEachVoxelIfBody(TernaryForEachVoxelIfBody &o, split s)
Split constructor.
TernaryForEachVoxelIfBody(const TernaryForEachVoxelIfBody &o)
Copy constructor.
VoxelType * GetPointerToVoxels(int=0, int=0, int=0, int=0)
int GetX() const
Returns the number of voxels in the x-direction.
TernaryForEachVoxelIfBody_Const(TernaryForEachVoxelIfBody_Const &o, split s)
Split constructor.
int _z
Image z-dimension (in voxels)
int _l
Indices for fixed dimensions.
int _t
Image t-dimension (in voxels)
int GetT() const
Returns the number of voxels in the t-direction.
TernaryForEachVoxelBody(TernaryForEachVoxelBody &o, split s)
Split constructor.
TernaryForEachVoxelBody(const TernaryForEachVoxelBody &o)
Copy constructor.
int GetY() const
Returns the number of voxels in the y-direction.
int GetNumberOfVoxels() const
TernaryForEachVoxelIfBody_2Const(TernaryForEachVoxelIfBody_2Const &o, split s)
Split constructor.
TernaryForEachVoxelBody_2Const(TernaryForEachVoxelBody_2Const &o, split s)
Split constructor.
OutsideFunc _OutsideFunc
Functor executed for each background voxel.
TernaryForEachVoxelBody_2Const(const GenericImage< T1 > &im1, const GenericImage< T2 > &im2, GenericImage< T3 > &im3, VoxelFunc &vf)
Constructor.
TernaryForEachVoxelIfBody(GenericImage< T1 > &im1, GenericImage< T2 > &im2, GenericImage< T3 > &im3, VoxelFunc &vf, OutsideFunc &of)
Constructor.
double GetTSize() const
Returns the size of a voxel in the t-direction.
TernaryForEachVoxelBody(GenericImage< T1 > &im1, GenericImage< T2 > &im2, GenericImage< T3 > &im3, VoxelFunc &vf)
Constructor.
TernaryForEachVoxelIfBody_2Const(const GenericImage< T1 > &im1, const GenericImage< T2 > &im2, GenericImage< T3 > &im3, VoxelFunc &vf, OutsideFunc &of)
Constructor.
int _x
Image x-dimension (in voxels)
TernaryForEachVoxelBody_Const(const GenericImage< T1 > &im1, const GenericImage< T2 > &im2, const GenericImage< T3 > &im3, VoxelFunc &vf)
Constructor.
TernaryForEachVoxelIfBody_1Const(const GenericImage< T1 > &im1, GenericImage< T2 > &im2, GenericImage< T3 > &im3, VoxelFunc &vf, OutsideFunc &of)
Constructor.
void parallel_reduce(const Range &range, Body &body)
parallel_reduce dummy template function which executes the body serially
TernaryForEachVoxelIfBody_2Const(const TernaryForEachVoxelIfBody_2Const &o)
Copy constructor.
TernaryForEachVoxelIfBody_1Const(TernaryForEachVoxelIfBody_1Const &o, split s)
Split constructor.
void parallel_for(const Range &range, const Body &body)
parallel_for dummy template function which executes the body serially
TernaryForEachVoxelBody_1Const(const TernaryForEachVoxelBody_1Const &o)
Copy constructor.
TernaryForEachVoxelIfBody_Const(const TernaryForEachVoxelIfBody_Const &o)
Copy constructor.