17 static constexpr
auto eps = 2 * std::numeric_limits<float>::epsilon();
22 : m_material(material),
23 m_thickness(thickness),
24 m_thicknessInX0((
eps < material.
X0()) ? (thickness / material.
X0()) : 0),
25 m_thicknessInL0((
eps < material.L0()) ? (thickness / material.L0()) : 0) {
27 throw std::runtime_error(
"thickness < 0");
41 for (
const auto&
layer : layers) {
48 throw std::runtime_error(
"scale < 0");
52 m_thicknessInX0 *= scale;
53 m_thicknessInL0 *= scale;