74 {
75 for (loc iY=0; iY < _extent[1]; ++iY) {
76 for (loc iX=0; iX < _extent[0]; ++iX) {
77 if constexpr (D == 3) {
78 int iZ = slicePosOnAxis;
79 loc iXeval;
80 loc iYeval;
81 loc iZeval;
82 if (sliceAxis==0){
83 iXeval = iZ;
84 iYeval = iX;
85 iZeval = _extent[1]-iY-1;
86 } else if (sliceAxis==1){
87 iXeval = iX;
88 iYeval = iZ;
89 iZeval = _extent[1]-iY-1;
90 } else {
91 iXeval = iX;
92 iYeval = _extent[1]-iY-1;
93 iZeval = iZ;
94 }
95
96 if constexpr (std::is_invocable_v<F, DATA&, LatticeR<D>>) {
97 os << f(_data,{iXeval,iYeval,iZeval});
98 } else {
99 os << f(_data,iXeval,iYeval,iZeval);
100 }
101 } else {
102
103 loc iXeval = iX;
104 loc iYeval = _extent[1]-iY-1;
105
106 if constexpr (std::is_invocable_v<F, DATA&, LatticeR<D>>) {
107 os << f(_data,{iXeval,iYeval});
108 } else {
109 os << f(_data,iXeval,iYeval);
110 }
111 }
112 os << (iX==_extent[0]-1? "" : sequence(_charEmpty,_spacing[0]));
113 }
114 os << std::endl;
115
116 if (iY<_extent[1]-1){
117 for (unsigned i=0; i<_spacing[1]; ++i){
118 for (loc iX=0; iX < _extent[0]; ++iX) {
119 os << (iX==_extent[0]-1? _charEmpty : sequence(_charEmpty,_spacing[0]+1));
120 }
121 os << std::endl;
122 }
123 }
124 }
125 }