Skip to content

Core::SequenceTreeIterator

Preorder iterator over a subtree of sequences and models connected using matrix multiplication connections. More...

#include "Core/Nodes/Iterators.h"

Inherits from ForwardIteratorBase< SequenceTreeIterator, Node, false >

Protected Types

Name
using SequenceTreeIteratorIterator
using ForwardIteratorBase< SequenceTreeIterator, Node, false >Super

Public Functions

Name
SequenceTreeIterator()
SequenceTreeIterator(Node * root)
referencedereference() const
boolequals(const Iterator & b) const
voidnext()
pointerptr() const
glm::mat4transform()
boolvalid() const

Protected Attributes

Name
Node *m_curr <br>Current node of the iterated (sub)tree, nullptr indicates invalid/after-end iterator.
boolm_root
std::stack< std::pair< Node *, glm::mat4 >, std::vector< std::pair< Node *, glm::mat4 > > >m_stack
glm::mat4m_transform

Additional inherited members

Public Types inherited from ForwardIteratorBase< SequenceTreeIterator, Node, false >

Name
using std::ptrdiff_tdifference_type
using std::forward_iterator_tagiterator_category
using typename std::conditional< IsConst, const Value *, Value * >::typepointer
using typename std::conditional< IsConst, const Value &, Value & >::typereference
using typename std::conditional< IsConst, const Value, Value >::typevalue_type

Public Functions inherited from ForwardIteratorBase< SequenceTreeIterator, Node, false >

Name
referenceoperator*()
Iterator &operator++()
Iteratoroperator++(int )
pointeroperator->()

Protected Functions inherited from ForwardIteratorBase< SequenceTreeIterator, Node, false >

Name
ForwardIteratorBase()
Iterator *self()<br>CRTP self pointer (pointer to the derived type)
const Iterator *self() const<br>CRTP const self pointer.

Friends inherited from ForwardIteratorBase< SequenceTreeIterator, Node, false >

Name
booloperator!=(const Iterator & a, const Iterator & b)
booloperator==(const Iterator & a, const Iterator & b)

Detailed Description

cpp
class Core::SequenceTreeIterator;
class Core::SequenceTreeIterator;

Preorder iterator over a subtree of sequences and models connected using matrix multiplication connections.

An accumulated transform from the root to each node is provided during iteration (not including the node and root).

Protected Types Documentation

using Iterator

cpp
using Core::SequenceTreeIterator::Iterator =  SequenceTreeIterator;
using Core::SequenceTreeIterator::Iterator =  SequenceTreeIterator;

using Super

cpp
using Core::SequenceTreeIterator::Super =  ForwardIteratorBase<SequenceTreeIterator, Node, false>;
using Core::SequenceTreeIterator::Super =  ForwardIteratorBase<SequenceTreeIterator, Node, false>;

Public Functions Documentation

function SequenceTreeIterator

cpp
inline SequenceTreeIterator()
inline SequenceTreeIterator()

function SequenceTreeIterator

cpp
inline SequenceTreeIterator(
    Node * root
)
inline SequenceTreeIterator(
    Node * root
)

function dereference

cpp
inline reference dereference() const
inline reference dereference() const

function equals

cpp
inline bool equals(
    const Iterator & b
) const
inline bool equals(
    const Iterator & b
) const

function next

cpp
inline void next()
inline void next()

function ptr

cpp
inline pointer ptr() const
inline pointer ptr() const

function transform

cpp
inline glm::mat4 transform()
inline glm::mat4 transform()

function valid

cpp
inline bool valid() const
inline bool valid() const

Protected Attributes Documentation

variable m_curr

cpp
Node * m_curr {nullptr};
Node * m_curr {nullptr};

Current node of the iterated (sub)tree, nullptr indicates invalid/after-end iterator.

variable m_root

cpp
bool m_root = true;
bool m_root = true;

variable m_stack

cpp
std::stack< std::pair< Node *, glm::mat4 >, std::vector< std::pair< Node *, glm::mat4 > > > m_stack;
std::stack< std::pair< Node *, glm::mat4 >, std::vector< std::pair< Node *, glm::mat4 > > > m_stack;

variable m_transform

cpp
glm::mat4 m_transform {1.0f};
glm::mat4 m_transform {1.0f};

Updated on 2025-05-31 at 12:55:31 +0000