21 std::unique_ptr<ISurfaceGridLookup> gridLookup,
22 std::vector<std::shared_ptr<const Surface>> surfaces,
24 : p_gridLookup(std::move(gridLookup)),
25 m_surfaces(std::move(surfaces)),
32 m_surfaces({std::move(srf)}) {
33 m_surfacesRawPointers.push_back(m_surfaces.at(0).get());
37 std::ostream& sl)
const {
38 sl << std::fixed << std::setprecision(4);
39 sl <<
"SurfaceArray:" << std::endl;
40 sl <<
" - no surfaces: " << m_surfaces.size() << std::endl;
41 sl <<
" - grid dim: " << p_gridLookup->dimensions() << std::endl;
43 auto axes = p_gridLookup->getAxes();
45 for (
size_t j = 0; j < axes.size(); ++j) {
47 sl <<
" - axis " << (j + 1) << std::endl;
48 sl <<
" - boundary type: ";
49 if (bdt == detail::AxisBoundaryType::Open) {
52 if (bdt == detail::AxisBoundaryType::Bound) {
55 if (bdt == detail::AxisBoundaryType::Closed) {
60 << (axes.at(j)->isEquidistant() ?
"equidistant" :
"variable")
62 sl <<
" - n bins: " << axes.at(j)->getNBins() << std::endl;
63 sl <<
" - bin edges: [ ";
64 auto binEdges = axes.at(j)->getBinEdges();
65 for (
size_t i = 0; i < binEdges.size(); ++i) {
69 auto binEdge = binEdges.at(i);
71 sl << ((std::abs(binEdge) >= 5
e-4) ? binEdge : 0.0);
73 sl <<
" ]" << std::endl;