20 std::unique_ptr<ISurfaceGridLookup> gridLookup,
21 std::vector<std::shared_ptr<const Surface>> surfaces,
22 std::shared_ptr<const Transform3D>
transform)
23 : p_gridLookup(std::move(gridLookup)),
24 m_surfaces(std::move(surfaces)),
26 m_transform(std::move(transform)) {}
31 m_surfaces({std::move(srf)}) {
32 m_surfacesRawPointers.push_back(m_surfaces.at(0).get());
36 std::ostream& sl)
const {
37 sl << std::fixed << std::setprecision(4);
38 sl <<
"SurfaceArray:" << std::endl;
39 sl <<
" - no surfaces: " << m_surfaces.size() << std::endl;
40 sl <<
" - grid dim: " << p_gridLookup->dimensions() << std::endl;
42 auto axes = p_gridLookup->getAxes();
44 for (
size_t j = 0; j < axes.size(); ++j) {
46 sl <<
" - axis " << (j + 1) << std::endl;
47 sl <<
" - boundary type: ";
48 if (bdt == detail::AxisBoundaryType::Open) {
51 if (bdt == detail::AxisBoundaryType::Bound) {
54 if (bdt == detail::AxisBoundaryType::Closed) {
59 << (axes.at(j)->isEquidistant() ?
"equidistant" :
"variable")
61 sl <<
" - n bins: " << axes.at(j)->getNBins() << std::endl;
62 sl <<
" - bin edges: [ ";
63 auto binEdges = axes.at(j)->getBinEdges();
64 for (
size_t i = 0; i < binEdges.size(); ++i) {
68 auto binEdge = binEdges.at(i);
70 sl << ((std::abs(binEdge) >= 5
e-4) ? binEdge : 0.0);
72 sl <<
" ]" << std::endl;