supereight
Public Types | Public Member Functions | Protected Member Functions | List of all members
se::BaseIterator< DerivedT > Class Template Reference

Iterates over all valid data in the octree at the last scale it was updated at. More...

#include <iterator.hpp>

Inheritance diagram for se::BaseIterator< DerivedT >:
se::LeavesIterator< OctreeT > se::UpdateIterator< OctreeT >

Public Types

typedef BaseTraits< DerivedT >::OctreeType OctreeType
 
typedef BaseTraits< DerivedT >::NodeType NodeType
 
typedef BaseTraits< DerivedT >::BlockType BlockType
 
using difference_type = long
 
using value_type = se::OctantBase
 
using pointer = se::OctantBase *
 
using reference = se::OctantBase &
 
using iterator_category = std::forward_iterator_tag
 

Public Member Functions

 BaseIterator ()
 
 BaseIterator (OctreeType *octree_ptr)
 
 BaseIterator (const BaseIterator &other)
 
BaseIteratoroperator++ ()
 
BaseIterator operator++ (int)
 
bool operator== (const BaseIterator &other) const
 
bool operator!= (const BaseIterator &other) const
 
se::OctantBaseoperator* () const
 

Protected Member Functions

void init ()
 

Detailed Description

template<typename DerivedT>
class se::BaseIterator< DerivedT >

Iterates over all valid data in the octree at the last scale it was updated at.

The iterator performs a depth-first traversal of the octree. To use it just use the se::Octree::begin() and se::Octree::end() functions or a range-based for loop:

for (auto& volume : octree) {
// Do stuff with volume
}
Note
Changes to the se::Octree while iterating will result in strange behavior.

Member Typedef Documentation

◆ OctreeType

template<typename DerivedT>
typedef BaseTraits<DerivedT>::OctreeType se::BaseIterator< DerivedT >::OctreeType

◆ NodeType

template<typename DerivedT>
typedef BaseTraits<DerivedT>::NodeType se::BaseIterator< DerivedT >::NodeType

◆ BlockType

template<typename DerivedT>
typedef BaseTraits<DerivedT>::BlockType se::BaseIterator< DerivedT >::BlockType

◆ difference_type

template<typename DerivedT>
using se::BaseIterator< DerivedT >::difference_type = long

◆ value_type

template<typename DerivedT>
using se::BaseIterator< DerivedT >::value_type = se::OctantBase

◆ pointer

template<typename DerivedT>
using se::BaseIterator< DerivedT >::pointer = se::OctantBase*

◆ reference

template<typename DerivedT>
using se::BaseIterator< DerivedT >::reference = se::OctantBase&

◆ iterator_category

template<typename DerivedT>
using se::BaseIterator< DerivedT >::iterator_category = std::forward_iterator_tag

Constructor & Destructor Documentation

◆ BaseIterator() [1/3]

template<typename DerivedT>
se::BaseIterator< DerivedT >::BaseIterator ( )

◆ BaseIterator() [2/3]

template<typename DerivedT>
se::BaseIterator< DerivedT >::BaseIterator ( OctreeType octree_ptr)

◆ BaseIterator() [3/3]

template<typename DerivedT>
se::BaseIterator< DerivedT >::BaseIterator ( const BaseIterator< DerivedT > &  other)

Member Function Documentation

◆ operator++() [1/2]

template<typename DerivedT>
BaseIterator& se::BaseIterator< DerivedT >::operator++ ( )

◆ operator++() [2/2]

template<typename DerivedT>
BaseIterator se::BaseIterator< DerivedT >::operator++ ( int  )

◆ operator==()

template<typename DerivedT>
bool se::BaseIterator< DerivedT >::operator== ( const BaseIterator< DerivedT > &  other) const

◆ operator!=()

template<typename DerivedT>
bool se::BaseIterator< DerivedT >::operator!= ( const BaseIterator< DerivedT > &  other) const

◆ operator*()

template<typename DerivedT>
se::OctantBase* se::BaseIterator< DerivedT >::operator* ( ) const

◆ init()

template<typename DerivedT>
void se::BaseIterator< DerivedT >::init ( )
protected

The documentation for this class was generated from the following file: