23 #include "../exception.h"
42 class ZgyInternalMeta;
43 class ZgyInternalBulk;
60 std::array<double,2> _histogram_range;
61 std::vector<LodAlgorithm> _decimation;
62 std::shared_ptr<HistogramData> _wa_histogram;
63 double _wa_defaultstorage;
64 std::function<bool(std::int64_t,std::int64_t)> _progress;
71 const std::array<double,2>& histogram_range,
72 std::int32_t nlods_in,
73 const std::vector<LodAlgorithm>& decimation,
74 const std::shared_ptr<HistogramData>& histogram,
76 const std::function<
bool(std::int64_t,std::int64_t)>& progress,
79 virtual std::shared_ptr<DataBuffer> _read(
82 std::int32_t lod,
const index3_t& pos,
83 const std::shared_ptr<const DataBuffer>& data);
84 virtual void _savestats();
86 std::string _prefix(std::int32_t lod);
87 static std::string _format_result(
const std::shared_ptr<DataBuffer>& data);
96 std::shared_ptr<StatisticData> _stats;
97 std::shared_ptr<HistogramData> _histo;
103 const std::array<double,2>& histogram_range,
104 std::int32_t nlods_in,
105 const std::vector<LodAlgorithm>& decimation,
106 const std::shared_ptr<HistogramData>& histogram,
108 const std::function<
bool(std::int64_t,std::int64_t)>& progress,
110 std::tuple<std::shared_ptr<StatisticData>, std::shared_ptr<HistogramData>>
113 template <
typename T>
114 void _accumulateT(
const std::shared_ptr<const DataBuffer>& data_in);
115 void _accumulate(
const std::shared_ptr<const DataBuffer>& data);
116 std::shared_ptr<DataBuffer>
117 _calculate(
const index3_t& readpos_in, std::int32_t readlod);
118 std::shared_ptr<DataBuffer>
119 _decimate(
const std::shared_ptr<const DataBuffer>& data, std::int64_t lod);
120 std::shared_ptr<DataBuffer>
121 _paste1(
const std::shared_ptr<DataBuffer>& result,
122 const std::shared_ptr<const DataBuffer>& more,
123 std::int64_t ioff, std::int64_t joff);
124 std::shared_ptr<const DataBuffer>
125 _paste4(
const std::shared_ptr<const DataBuffer>& d00,
126 const std::shared_ptr<const DataBuffer>& d01,
127 const std::shared_ptr<const DataBuffer>& d10,
128 const std::shared_ptr<const DataBuffer>& d11);
129 static std::array<double,2>
130 suggestHistogramRange(
131 const std::array<double,2>& writtenrange,
137 std::shared_ptr<ZgyInternalBulk> _accessor;
140 GenLodC(
const std::shared_ptr<ZgyInternalBulk>& accessor,
141 const std::shared_ptr<ZgyInternalMeta>& meta,
143 const std::vector<LodAlgorithm>& decimation,
144 const std::function<
bool(std::int64_t,std::int64_t)>& progress,
147 std::shared_ptr<DataBuffer> _read(
150 std::int32_t lod,
const index3_t& pos,
151 const std::shared_ptr<const DataBuffer>& data)
override;
152 void _savestats()
override;