diff --git a/CHANGELOG.md b/CHANGELOG.md index cf93b08b..53678ca5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,8 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). ## [Unreleased] -Nothing yet. +### Changed +- Replaced size() in filters with DIM ## [1.1.0] - 2022-01-25 ### Added diff --git a/phtree/common/filter.h b/phtree/common/filter.h index 267cba2a..46eacee3 100644 --- a/phtree/common/filter.h +++ b/phtree/common/filter.h @@ -134,7 +134,7 @@ class FilterAABB { ScalarInternal node_min_bits = MAX_MASK << bits_to_ignore; ScalarInternal node_max_bits = ~node_min_bits; - for (size_t i = 0; i < prefix.size(); ++i) { + for (dimension_t i = 0; i < DIM; ++i) { if ((prefix[i] | node_max_bits) < min_internal_[i] || (prefix[i] & node_min_bits) > max_internal_[i]) { return false; @@ -154,13 +154,17 @@ class FilterAABB { /* * The sphere filter can be used to query a point tree for a sphere. */ -template , typename DISTANCE = DistanceEuclidean<3>> +template < + typename CONVERTER = ConverterIEEE<3>, + typename DISTANCE = DistanceEuclidean> class FilterSphere { using KeyExternal = typename CONVERTER::KeyExternal; using KeyInternal = typename CONVERTER::KeyInternal; using ScalarInternal = typename CONVERTER::ScalarInternal; using ScalarExternal = typename CONVERTER::ScalarExternal; + static constexpr auto DIM = CONVERTER::DimInternal; + public: FilterSphere( const KeyExternal& center, @@ -194,7 +198,7 @@ class FilterSphere { ScalarInternal node_max_bits = ~node_min_bits; KeyInternal closest_in_bounds; - for (size_t i = 0; i < prefix.size(); ++i) { + for (dimension_t i = 0; i < DIM; ++i) { // calculate lower and upper bound for dimension for given node ScalarInternal lo = prefix[i] & node_min_bits; ScalarInternal hi = prefix[i] | node_max_bits;