36 using TAP = std::pair<T, Vector3D>;
58 std::unique_ptr<const BinUtility> bu)
68 for (
auto& tap : tapvector) {
90 std::unique_ptr<const BinUtility> bu)
102 for (
auto& o1 : o2) {
103 for (
auto& o0 : o1) {
147 std::array<size_t, 3>
bins;
148 return object(lposition, bins);
170 std::array<size_t, 3>
bins;
171 return object(position, bins);
181 const std::vector<std::vector<std::vector<T>>>&
objectGrid() const final {
192 const std::array<size_t, 3>& binTriple)
const override {
194 std::vector<T> rvector;
196 T bObject =
m_objectGrid[binTriple[2]][binTriple[1]][binTriple[0]];
200 std::vector<size_t> zerorange = {0};
202 std::vector<size_t> bin2values =
203 (bdim > 2) ?
m_binUtility->binningData()[2].neighbourRange(binTriple[2])
206 std::vector<size_t> bin1values =
207 (bdim > 1) ?
m_binUtility->binningData()[1].neighbourRange(binTriple[1])
210 std::vector<size_t> bin0values =
211 m_binUtility->binningData()[0].neighbourRange(binTriple[0]);
214 for (
auto b2 : bin2values) {
215 for (
auto b1 : bin1values) {
216 for (
auto b0 : bin0values) {
219 if (
object &&
object != bObject &&
220 std::find(rvector.begin(), rvector.end(),
object) ==
222 rvector.push_back(
object);