17 #include <type_traits>
29 m_values(bobo.m_values),
30 m_xyBounds(bobo.m_xyBounds),
31 m_yzBounds(bobo.m_yzBounds),
32 m_zxBounds(bobo.m_zxBounds) {}
51 auto sf = Surface::makeShared<PlaneSurface>(
52 transform *
Translation3(0., 0., -
get(eHalfLengthZ)), m_xyBounds);
55 sf = Surface::makeShared<PlaneSurface>(
56 transform *
Translation3(0., 0.,
get(eHalfLengthZ)), m_xyBounds);
60 sf = Surface::makeShared<PlaneSurface>(
65 sf = Surface::makeShared<PlaneSurface>(
71 sf = Surface::makeShared<PlaneSurface>(
76 sf = Surface::makeShared<PlaneSurface>(
90 const Volume* entity)
const {
91 Vector3 vmin(-
get(eHalfLengthX), -
get(eHalfLengthY), -
get(eHalfLengthZ));
92 Vector3 vmax(
get(eHalfLengthX),
get(eHalfLengthY),
get(eHalfLengthZ));
95 return trf ==
nullptr ? box : box.
transformed(*trf);
99 m_xyBounds = std::make_shared<const RectangleBounds>(
get(eHalfLengthX),
101 m_yzBounds = std::make_shared<const RectangleBounds>(
get(eHalfLengthY),
103 m_zxBounds = std::make_shared<const RectangleBounds>(
get(eHalfLengthZ),
108 if (bValue <=
binZ) {
109 return m_values[bValue];
111 if (bValue ==
binR) {
112 return std::sqrt(m_values[
binX] * m_values[
binX] +