156 per((
unsigned char)((geometry->isPeriodic(
Geometry::DIRECTION_TRAN)? 1 : 0) + (geometry->isPeriodic(
Geometry::DIRECTION_VERT)? 2 : 0))),
157 lo{geometry->getChildBoundingBox().left(), geometry->getChildBoundingBox().bottom(), 0.},
158 hi{geometry->getChildBoundingBox().right(), geometry->getChildBoundingBox().top(), 0.}
161 if (lo[0] < 0. && hi[0] > 0.)
162 throw Exception(
"interpolation: Symmetric geometry spans at both sides of transverse axis");
164 hi[0] =
max(-lo[0], hi[0]); lo[0] = -hi[0];
168 if (lo[1] < 0. && hi[1] > 0.)
169 throw Exception(
"interpolation: Symmetric geometry spans at both sides of vertical axis");
171 hi[1] =
max(-lo[1], hi[1]); lo[1] = -hi[1];
183 per((
unsigned char)((geometry->isPeriodic(
Geometry::DIRECTION_LONG)? 1 : 0) + (geometry->isPeriodic(
Geometry::DIRECTION_TRAN)? 2 : 0) + (geometry->isPeriodic(
Geometry::DIRECTION_VERT)? 4 : 0))),
184 lo{geometry->getChildBoundingBox().back(), geometry->getChildBoundingBox().left(), geometry->getChildBoundingBox().bottom()},
185 hi{geometry->getChildBoundingBox().front(), geometry->getChildBoundingBox().right(), geometry->getChildBoundingBox().top()}
188 if (lo[0] < 0. && hi[0] > 0.)
189 throw Exception(
"interpolation: Symmetric geometry spans at both sides of longitudinal axis");
191 hi[0] =
max(-lo[0], hi[0]); lo[0] = -hi[0];
195 if (lo[1] < 0. && hi[1] > 0.)
196 throw Exception(
"interpolation: Symmetric geometry spans at both sides of transverse axis");
198 hi[1] =
max(-lo[1], hi[1]); lo[1] = -hi[1];
202 if (lo[2] < 0. && hi[2] > 0.)
203 throw Exception(
"interpolation: Symmetric geometry spans at both sides of vertical axis");
205 hi[2] =
max(-lo[2], hi[2]); lo[2] = -hi[2];