Skip to content

Core::TransformChain::TransformChainIterator ​

Iterator for traversing the sequence / transform chain. More...

#include "Core/Nodes/Iterators.h"

Public Types ​

Name
using std::ptrdiff_tdifference_type
using std::forward_iterator_tagiterator_category
using Ptr< Node >pointer
using Ptr< Node > &reference
using Ptr< Node >value_type

Public Functions ​

Name
TransformChainIterator() =default<br>Empty "past the end" iterator.
TransformChainIterator(TransformChain * chain, const Ptr< Sequence > & sequence, const Ptr< Camera > & camera, const Ptr< Node > & node, bool mSkipEmptySequences, bool mIgnoreCamera, bool mSkipEmptyCamera)
std::vector< Ptr< Node > >collect()
std::vector< TransformInfo >collectInfo()
std::pair< std::vector< Ptr< Node > >, std::vector< TransformInfo > >collectWithInfo()
boolequals(const Iterator & b) const
Sequence *getSequence() const
voidnext()<br>Advance the iterator.
Ptr< Node >operator*() const<br>Get current matrix, can be a transformation or the sequence itself.
Iterator &operator++()
Iteratoroperator++(int )
Ptr< Node >operator->() const
const TransformInfo &transformInfo() const<br>Return the current transform metadata object carrying detailed information about the current transform.
boolvalid() const<br>Check whether the iterator is pointing at a valid element (eg. not the end of a container)

Public Attributes ​

Name
boolm_ignoreCamera
boolm_skipEmptyCamera
boolm_skipEmptySequences

Friends ​

Name
classTransformChain

Detailed Description ​

cpp
class Core::TransformChain::TransformChainIterator;

Iterator for traversing the sequence / transform chain.

Advances from a leaf to root (from "right" to "left"), optionally including empty sequences and camera sequences.

Public Types Documentation ​

using difference_type ​

cpp
using Core::TransformChain::TransformChainIterator::difference_type =  std::ptrdiff_t;

using iterator_category ​

cpp
using Core::TransformChain::TransformChainIterator::iterator_category =  std::forward_iterator_tag;

using pointer ​

cpp
using Core::TransformChain::TransformChainIterator::pointer =  Ptr<Node>;

using reference ​

cpp
using Core::TransformChain::TransformChainIterator::reference =  Ptr<Node>&;

using value_type ​

cpp
using Core::TransformChain::TransformChainIterator::value_type =  Ptr<Node>;

Public Functions Documentation ​

function TransformChainIterator ​

cpp
TransformChainIterator() =default

Empty "past the end" iterator.

function TransformChainIterator ​

cpp
TransformChainIterator(
    TransformChain * chain,
    const Ptr< Sequence > & sequence,
    const Ptr< Camera > & camera,
    const Ptr< Node > & node,
    bool mSkipEmptySequences,
    bool mIgnoreCamera,
    bool mSkipEmptyCamera
)

function collect ​

cpp
std::vector< Ptr< Node > > collect()

Return: Non-owned pointer to the all matrices from start to the root, note that Ptr<Node> may points to operator with matrix output, not only to transformation.

function collectInfo ​

cpp
std::vector< TransformInfo > collectInfo()

function collectWithInfo ​

cpp
std::pair< std::vector< Ptr< Node > >, std::vector< TransformInfo > > collectWithInfo()

function equals ​

cpp
bool equals(
    const Iterator & b
) const

function getSequence ​

cpp
Sequence * getSequence() const

Return: Non-owned pointer to the current sequence. Never null.

function next ​

cpp
void next()

Advance the iterator.

Move to the next matrix (to the root). Eg. advancing "right to left"

function operator* ​

cpp
Ptr< Node > operator*() const

Get current matrix, can be a transformation or the sequence itself.

Note: You have to extract data from the node by yourself.

function operator++ ​

cpp
inline Iterator & operator++()

function operator++ ​

cpp
inline Iterator operator++(
    int 
)

function operator-> ​

cpp
inline Ptr< Node > operator->() const

function transformInfo ​

cpp
inline const TransformInfo & transformInfo() const

Return the current transform metadata object carrying detailed information about the current transform.

function valid ​

cpp
bool valid() const

Check whether the iterator is pointing at a valid element (eg. not the end of a container)

Public Attributes Documentation ​

variable m_ignoreCamera ​

cpp
bool m_ignoreCamera = true;

variable m_skipEmptyCamera ​

cpp
bool m_skipEmptyCamera = true;

variable m_skipEmptySequences ​

cpp
bool m_skipEmptySequences = true;

Friends ​

friend TransformChain ​

cpp
friend class TransformChain(
    TransformChain 
);

Updated on 2026-09-11 at 21:24:26 +0000