46 const std::shared_ptr<const Transform3D>& tForm =
nullptr)
64 const std::shared_ptr<const Transform3D>& tForm =
nullptr)
80 const std::shared_ptr<const Transform3D>& tForm =
nullptr)
106 ? std::unique_ptr<const Transform3D>(
117 const std::vector<BinningData>& bData = gbu.
binningData();
123 std::make_unique<const Transform3D>(
m_transform->inverse());
128 m_transform = std::make_shared<const Transform3D>((*m_transform) *
131 std::make_unique<const Transform3D>(
m_transform->inverse());
137 throw "BinUtility does not support dim > 3";
167 size_t bin1 = mdim > 1 ?
m_binningData[1].searchGlobal(bPosition) : 0;
168 size_t bin2 = mdim > 2 ?
m_binningData[2].searchGlobal(bPosition) : 0;
170 return {{bin0, bin1, bin2}};
202 size_t ba = 0)
const {
207 size_t cbin =
bin(position, ba);
211 neighbourRange.push_back(pbin);
213 neighbourRange.push_back(cbin);
215 neighbourRange.push_back(nbin);
230 size_t ba = 0)
const {
264 if (!(bData.inside(bPosition))) {
278 std::vector<BinningData>::const_iterator bdIter =
m_binningData.begin();
280 if (!(*bdIter).inside(lposition)) {
296 size_t max(
size_t ba = 0)
const {
327 throw "dimension out of bounds";
337 size_t serializedBin = bin[0];
344 return serializedBin;
352 <<
"- dimensional array:" << std::endl;
353 std::vector<BinningData>::const_iterator bdIter =
m_binningData.begin();
354 for (
size_t ibd = 0; bdIter !=
m_binningData.end(); ++bdIter, ++ibd) {
355 sl <<
"dimension : " << ibd << std::endl;
356 sl <<
" - type : " << size_t((*bdIter).type) << std::endl;
357 sl <<
" - option : " << size_t((*bdIter).option) << std::endl;
358 sl <<
" - value : " << size_t((*bdIter).binvalue) << std::endl;
359 sl <<
" - bins : " << (*bdIter).bins() << std::endl;
360 sl <<
" - min/max : " << (*bdIter).min <<
" / " << (*bdIter).max
363 sl <<
" - step : " << (*bdIter).step << std::endl;
365 sl <<
" - boundaries : | ";
366 std::vector<float>::const_iterator bIter = (*bdIter).boundaries().begin();
367 for (; bIter != (*bdIter).boundaries().end(); ++bIter) {
368 sl << (*bIter) <<
" | ";