From 4212c6af56421f1f5fe8c94825a1e0ad6e927773 Mon Sep 17 00:00:00 2001 From: Stanislaw Halik Date: Sun, 4 Dec 2022 16:27:23 +0100 Subject: compat/lqt: undo this atrocious formatting --- compat/LooseQuadtree-impl.h | 281 ++++++++++++-------------------------------- 1 file changed, 78 insertions(+), 203 deletions(-) (limited to 'compat') diff --git a/compat/LooseQuadtree-impl.h b/compat/LooseQuadtree-impl.h index eab448a1..15ed889e 100644 --- a/compat/LooseQuadtree-impl.h +++ b/compat/LooseQuadtree-impl.h @@ -26,8 +26,7 @@ #pragma GCC diagnostic ignored "-Wfloat-equal" #endif -namespace loose_quadtree { -namespace detail { +namespace loose_quadtree::detail { @@ -71,9 +70,10 @@ private: void* first_empty_slot; std::size_t slots_in_a_block_; - BlocksHead(std::size_t object_size) { - first_empty_slot = nullptr; - slots_in_a_block_ = kBlockSize / object_size; + BlocksHead(std::size_t object_size) : + first_empty_slot(nullptr), + slots_in_a_block_(kBlockSize / object_size) + { } }; @@ -359,8 +359,9 @@ public: struct TreePosition { TreePosition(const BoundingBox& _bbox, TreeNode* _node) : - bounding_box(_bbox), node(_node) { - current_child = ChildPosition::kNone; + bounding_box(_bbox), node(_node), + current_child(ChildPosition::kNone) + { } BoundingBox bounding_box; @@ -410,14 +411,12 @@ private: -} //detail - +} // namespace loose_quadtree::detail +namespace loose_quadtree { template -class - LooseQuadtree::Query:: -Impl { +class LooseQuadtree::Query::Impl { public: enum class QueryType {kIntersects, kInside, kContains, kEndOfQuery}; @@ -448,9 +447,7 @@ private: template -class - LooseQuadtree:: -Impl { +class LooseQuadtree::Impl { public: constexpr static int kInternalMinDepth = 4; constexpr static int kInternalMaxDepth = (sizeof(long long) * 8 - 1) / 2; @@ -506,9 +503,7 @@ private: template -bool - BoundingBox:: -Intersects(const BoundingBox& other) const { +bool BoundingBox::Intersects(const BoundingBox& other) const { return !( left + width <= other.left || other.left + other.width <= left || top + height <= other.top || other.top + other.height <= top @@ -516,17 +511,13 @@ Intersects(const BoundingBox& other) const { } template -bool - BoundingBox:: -Contains(const BoundingBox& other) const { +bool BoundingBox::Contains(const BoundingBox& other) const { return left <= other.left && left + width >= other.left + other.width && top <= other.top && top + height >= other.top + other.height; } template -bool - BoundingBox:: -Contains(Number x, Number y) const { +bool BoundingBox::Contains(Number x, Number y) const { return left <= x && x < left + width && top <= y && y < top + height; } @@ -534,45 +525,34 @@ Contains(Number x, Number y) const { template - detail::ForwardTreeTraversal:: -ForwardTreeTraversal() : + detail::ForwardTreeTraversal::ForwardTreeTraversal() : position_(BoundingBox(0, 0, 0, 0), nullptr), depth_(0) { } template -void - detail::ForwardTreeTraversal:: -StartAt(TreeNode* root, const BoundingBox& root_bounds) { +void detail::ForwardTreeTraversal::StartAt(TreeNode* root, const BoundingBox& root_bounds) { position_.bounding_box = root_bounds; position_.node = root; depth_ = 0; } template -int - detail::ForwardTreeTraversal:: -GetDepth() const { +int detail::ForwardTreeTraversal::GetDepth() const { return depth_; } template -detail::TreeNode* - detail::ForwardTreeTraversal:: -GetNode() const { +detail::TreeNode* detail::ForwardTreeTraversal::GetNode() const { return position_.node; } template -const BoundingBox& - detail::ForwardTreeTraversal:: -GetNodeBoundingBox() const { +const BoundingBox& detail::ForwardTreeTraversal::GetNodeBoundingBox() const { return position_.bounding_box; } template -void - detail::ForwardTreeTraversal:: -GoTopLeft() { +void detail::ForwardTreeTraversal::GoTopLeft() { BoundingBox& bbox = position_.bounding_box; bbox.width = (Number)((typename MakeDistance::Type)bbox.width / 2); bbox.height = (Number)((typename MakeDistance::Type)bbox.height / 2); @@ -582,9 +562,7 @@ GoTopLeft() { } template -void - detail::ForwardTreeTraversal:: -GoTopRight() { +void detail::ForwardTreeTraversal::GoTopRight() { BoundingBox& bbox = position_.bounding_box; Number right = (Number)(bbox.left + bbox.width); bbox.left = (Number)(bbox.left + @@ -597,9 +575,7 @@ GoTopRight() { } template -void - detail::ForwardTreeTraversal:: -GoBottomRight() { +void detail::ForwardTreeTraversal::GoBottomRight() { BoundingBox& bbox = position_.bounding_box; Number right = (Number)(bbox.left + bbox.width); bbox.left = (Number)(bbox.left + @@ -615,9 +591,7 @@ GoBottomRight() { } template -void - detail::ForwardTreeTraversal:: -GoBottomLeft() { +void detail::ForwardTreeTraversal::GoBottomLeft() { BoundingBox& bbox = position_.bounding_box; bbox.width = (Number)((typename MakeDistance::Type)bbox.width / 2); Number bottom = (Number)(bbox.top + bbox.height); @@ -632,32 +606,24 @@ GoBottomLeft() { template -void - detail::FullTreeTraversal:: -StartAt(TreeNode* root, const BoundingBox& root_bounds) { +void detail::FullTreeTraversal::StartAt(TreeNode* root, const BoundingBox& root_bounds) { ForwardTreeTraversal::StartAt(root, root_bounds); position_.current_child = ChildPosition::kNone; position_stack_.clear(); } template -detail::ChildPosition - detail::FullTreeTraversal:: -GetNodeCurrentChild() const { +detail::ChildPosition detail::FullTreeTraversal::GetNodeCurrentChild() const { return position_.current_child; } template -void - detail::FullTreeTraversal:: -SetNodeCurrentChild(ChildPosition child_position) { +void detail::FullTreeTraversal::SetNodeCurrentChild(ChildPosition child_position) { position_.current_child = child_position; } template -void - detail::FullTreeTraversal:: -GoTopLeft() { +void detail::FullTreeTraversal::GoTopLeft() { assert((size_t)depth_ == position_stack_.size()); position_.current_child = ChildPosition::kTopLeft; position_stack_.emplace_back(position_); @@ -666,9 +632,7 @@ GoTopLeft() { } template -void - detail::FullTreeTraversal:: -GoTopRight() { +void detail::FullTreeTraversal::GoTopRight() { assert((size_t)depth_ == position_stack_.size()); position_.current_child = ChildPosition::kTopRight; position_stack_.emplace_back(position_); @@ -677,9 +641,7 @@ GoTopRight() { } template -void - detail::FullTreeTraversal:: -GoBottomRight() { +void detail::FullTreeTraversal::GoBottomRight() { assert((size_t)depth_ == position_stack_.size()); position_.current_child = ChildPosition::kBottomRight; position_stack_.emplace_back(position_); @@ -688,9 +650,7 @@ GoBottomRight() { } template -void - detail::FullTreeTraversal:: -GoBottomLeft() { +void detail::FullTreeTraversal::GoBottomLeft() { assert((size_t)depth_ == position_stack_.size()); position_.current_child = ChildPosition::kBottomLeft; position_stack_.emplace_back(position_); @@ -699,9 +659,7 @@ GoBottomLeft() { } template -void - detail::FullTreeTraversal:: -GoUp() { +void detail::FullTreeTraversal::GoUp() { assert((size_t)depth_ == position_stack_.size() && depth_ > 0); position_ = position_stack_.back(); depth_--; @@ -711,16 +669,13 @@ GoUp() { template - LooseQuadtree::Query::Impl:: -Impl() : quadtree_(nullptr), query_region_(0,0,0,0), +LooseQuadtree::Query::Impl::Impl() : quadtree_(nullptr), query_region_(0,0,0,0), query_type_(QueryType::kEndOfQuery), free_ride_from_level_(LooseQuadtree::Impl::kInternalMaxDepth) { } template -void - LooseQuadtree::Query::Impl:: -Acquire(typename LooseQuadtree::Impl* quadtree, +void LooseQuadtree::Query::Impl::Acquire(typename LooseQuadtree::Impl* quadtree, const BoundingBox* query_region, QueryType query_type) { assert(IsAvailable()); assert(query_type != QueryType::kEndOfQuery); @@ -741,42 +696,32 @@ Acquire(typename LooseQuadtree::Impl* quad } template -void - LooseQuadtree::Query::Impl:: -Release() { +void LooseQuadtree::Query::Impl::Release() { assert(!IsAvailable()); quadtree_ = nullptr; } template -bool - LooseQuadtree::Query::Impl:: -IsAvailable() const { +bool LooseQuadtree::Query::Impl::IsAvailable() const { return quadtree_ == nullptr; } template -bool - LooseQuadtree::Query::Impl:: -EndOfQuery() const { +bool LooseQuadtree::Query::Impl::EndOfQuery() const { assert(!IsAvailable()); return query_type_ == QueryType::kEndOfQuery; } template -ObjectT* - LooseQuadtree::Query::Impl:: -GetCurrent() const { +ObjectT* LooseQuadtree::Query::Impl::GetCurrent() const { assert(!IsAvailable()); assert(!EndOfQuery()); return *object_iterator_; } template -void - LooseQuadtree::Query::Impl:: -Next() { +void LooseQuadtree::Query::Impl::Next() { assert(!IsAvailable()); assert(!EndOfQuery()); do { @@ -939,9 +884,7 @@ Next() { } template -bool - LooseQuadtree::Query::Impl:: -CurrentObjectFits() const { +bool LooseQuadtree::Query::Impl::CurrentObjectFits() const { BoundingBox object_bounds(0,0,0,0); BoundingBoxExtractor::ExtractBoundingBox(GetCurrent(), &object_bounds); switch (query_type_) { @@ -958,9 +901,7 @@ CurrentObjectFits() const { } template -auto - LooseQuadtree::Query::Impl:: -CurrentNodeFits() const -> FitType { +auto LooseQuadtree::Query::Impl::CurrentNodeFits() const -> FitType { const BoundingBox& node_bounds = traversal_.GetNodeBoundingBox(); BoundingBox extended_bounds = node_bounds; Number half_width = @@ -1002,8 +943,7 @@ CurrentNodeFits() const -> FitType { template - LooseQuadtree::Impl:: -Impl() : +LooseQuadtree::Impl::Impl() : root_(nullptr), bounding_box_(0, 0, 0, 0), object_pointers_(64, std::hash(), std::equal_to(), detail::BlocksAllocatorAdaptor>(allocator_)), @@ -1014,15 +954,12 @@ Impl() : } template - LooseQuadtree::Impl:: -~Impl() { +LooseQuadtree::Impl::~Impl() { DeleteTree(); } template -bool - LooseQuadtree::Impl:: -Insert(Object* object) { +bool LooseQuadtree::Impl::Insert(Object* object) { bool was_removed = Remove(object); Object** place = InsertIntoTree(object); object_pointers_.emplace(object, place); @@ -1032,16 +969,12 @@ Insert(Object* object) { } template -bool - LooseQuadtree::Impl:: -Update(Object* object) { +bool LooseQuadtree::Impl::Update(Object* object) { return !Insert(object); } template -bool - LooseQuadtree::Impl:: -Remove(Object* object) { +bool LooseQuadtree::Impl::Remove(Object* object) { auto it = object_pointers_.find(object); if (it != object_pointers_.end()) { assert(*(it->second) == it->first); @@ -1055,50 +988,38 @@ Remove(Object* object) { } template -bool - LooseQuadtree::Impl:: -Contains(Object* object) const { +bool LooseQuadtree::Impl::Contains(Object* object) const { return object_pointers_.find(object) != object_pointers_.end(); } template -auto - LooseQuadtree::Impl:: -QueryIntersectsRegion(const BoundingBox& region) -> Query { +auto LooseQuadtree::Impl::QueryIntersectsRegion(const BoundingBox& region) -> Query { typename Query::Impl* query_impl = GetAvailableQueryFromPool(); query_impl->Acquire(this, ®ion, Query::Impl::QueryType::kIntersects); return Query(query_impl); } template -auto - LooseQuadtree::Impl:: -QueryInsideRegion(const BoundingBox& region) -> Query { +auto LooseQuadtree::Impl::QueryInsideRegion(const BoundingBox& region) -> Query { typename Query::Impl* query_impl = GetAvailableQueryFromPool(); query_impl->Acquire(this, ®ion, Query::Impl::QueryType::kInside); return Query(query_impl); } template -auto - LooseQuadtree::Impl:: -QueryContainsRegion(const BoundingBox& region) -> Query { +auto LooseQuadtree::Impl::QueryContainsRegion(const BoundingBox& region) -> Query { typename Query::Impl* query_impl = GetAvailableQueryFromPool(); query_impl->Acquire(this, ®ion, Query::Impl::QueryType::kContains); return Query(query_impl); } template -const BoundingBox& - LooseQuadtree::Impl:: -GetBoundingBox() const { +const BoundingBox& LooseQuadtree::Impl::GetBoundingBox() const { return bounding_box_; } template -void - LooseQuadtree::Impl:: -ForceCleanup() { +void LooseQuadtree::Impl::ForceCleanup() { Query query = QueryIntersectsRegion(bounding_box_); while (!query.EndOfQuery()) { query.Next(); @@ -1107,25 +1028,19 @@ ForceCleanup() { } template -int - LooseQuadtree::Impl:: -GetSize() const { +int LooseQuadtree::Impl::GetSize() const { return number_of_objects_; } template -void - LooseQuadtree::Impl:: -Clear() { +void LooseQuadtree::Impl::Clear() { DeleteTree(); } template -void - LooseQuadtree::Impl:: -RecalculateMaximalDepth() { +void LooseQuadtree::Impl::RecalculateMaximalDepth() { do { if (maximal_depth_ < kInternalMaxDepth && number_of_objects_ > 1ll << (maximal_depth_ << 1)) { @@ -1142,9 +1057,7 @@ RecalculateMaximalDepth() { } template -void - LooseQuadtree::Impl:: -DeleteTree() { +void LooseQuadtree::Impl::DeleteTree() { object_pointers_.clear(); detail::FullTreeTraversal& trav = internal_traversal_; trav.StartAt(root_, bounding_box_); @@ -1203,9 +1116,7 @@ DeleteTree() { } template -ObjectT** - LooseQuadtree::Impl:: -InsertIntoTree(Object* object) { +ObjectT** LooseQuadtree::Impl::InsertIntoTree(Object* object) { BoundingBox object_bounds(0,0,0,0); BoundingBoxExtractor::ExtractBoundingBox(object, &object_bounds); assert(object_bounds.width >= 0); @@ -1373,9 +1284,7 @@ InsertIntoTree(Object* object) { } template -auto - LooseQuadtree::Impl:: -GetAvailableQueryFromPool() -> typename Query::Impl* { +auto LooseQuadtree::Impl::GetAvailableQueryFromPool() -> typename Query::Impl* { for (auto it = query_pool_.begin(); it != query_pool_.end(); it++) { if (it->IsAvailable()) { return &*it; @@ -1389,101 +1298,76 @@ GetAvailableQueryFromPool() -> typename Query::Impl* { template -bool - LooseQuadtree:: -Insert(Object* object) { +bool LooseQuadtree::Insert(Object* object) { return impl_.Insert(object); } template -bool - LooseQuadtree:: -Update(Object* object) { +bool LooseQuadtree::Update(Object* object) { return impl_.Update(object); } template -bool - LooseQuadtree:: -Remove(Object* object) { +bool LooseQuadtree::Remove(Object* object) { return impl_.Remove(object); } template -bool - LooseQuadtree:: -Contains(Object* object) const { +bool LooseQuadtree::Contains(Object* object) const { return impl_.Contains(object); } template -auto - LooseQuadtree:: -QueryIntersectsRegion(const BoundingBox& region) -> Query { +auto LooseQuadtree::QueryIntersectsRegion(const BoundingBox& region) -> Query { return impl_.QueryIntersectsRegion(region); } template -auto - LooseQuadtree:: -QueryInsideRegion(const BoundingBox& region) -> Query { +auto LooseQuadtree::QueryInsideRegion(const BoundingBox& region) -> Query { return impl_.QueryInsideRegion(region); } template -auto - LooseQuadtree:: -QueryContainsRegion(const BoundingBox& region) -> Query { +auto LooseQuadtree::QueryContainsRegion(const BoundingBox& region) -> Query { return impl_.QueryContainsRegion(region); } template const BoundingBox& - LooseQuadtree:: -GetLooseBoundingBox() const { + LooseQuadtree::GetLooseBoundingBox() const { return impl_.GetBoundingBox(); } template -void - LooseQuadtree:: -ForceCleanup() { +void LooseQuadtree::ForceCleanup() { impl_.ForceCleanup(); } template -int - LooseQuadtree:: -GetSize() const { +int LooseQuadtree::GetSize() const { return impl_.GetSize(); } template -bool - LooseQuadtree:: -IsEmpty() const { +bool LooseQuadtree::IsEmpty() const { return impl_.GetSize() == 0; } template -void - LooseQuadtree:: -Clear() { +void LooseQuadtree::Clear() { impl_.Clear(); } template - LooseQuadtree::Query:: -Query(Impl* pimpl) : pimpl_(pimpl) { +LooseQuadtree::Query::Query(Impl* pimpl) : pimpl_(pimpl) { assert(pimpl_ != nullptr); assert(!pimpl_->IsAvailable()); } template - LooseQuadtree::Query:: -~Query() { +LooseQuadtree::Query::~Query() { if (pimpl_ != nullptr) { pimpl_->Release(); assert(pimpl_->IsAvailable()); @@ -1492,15 +1376,12 @@ template } template - LooseQuadtree::Query:: -Query(Query&& other) noexcept : pimpl_(other.pimpl_) { +LooseQuadtree::Query::Query(Query&& other) noexcept : pimpl_(other.pimpl_) { other.pimpl_ = nullptr; } template -auto - LooseQuadtree::Query:: -operator=(Query&& other) noexcept -> Query& { +auto LooseQuadtree::Query::operator=(Query&& other) noexcept -> Query& { this->~Query(); pimpl_ = other.pimpl_; other.pimpl_ = nullptr; @@ -1508,30 +1389,24 @@ operator=(Query&& other) noexcept -> Query& { } template -bool - LooseQuadtree::Query:: -EndOfQuery() const { +bool LooseQuadtree::Query::EndOfQuery() const { return pimpl_->EndOfQuery(); } template -ObjectT* - LooseQuadtree::Query:: -GetCurrent() const { +ObjectT* LooseQuadtree::Query::GetCurrent() const { return pimpl_->GetCurrent(); } template -void - LooseQuadtree::Query:: -Next() { +void LooseQuadtree::Query::Next() { pimpl_->Next(); } -} //loose_quadtree +} // namespace loose_quadtree #ifdef __GNUG__ #pragma GCC diagnostic pop -- cgit v1.2.3