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;
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 Core::TransformChain::TransformChainIterator::difference_type =  std::ptrdiff_t;

using iterator_category

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

using pointer

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

using reference

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

using value_type

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

Public Functions Documentation

function TransformChainIterator

cpp
TransformChainIterator() =default
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
)
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()
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()
std::vector< TransformInfo > collectInfo()

function collectWithInfo

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

function equals

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

function getSequence

cpp
Sequence * getSequence() const
Sequence * getSequence() const

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

function next

cpp
void next()
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
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++()
inline Iterator & operator++()

function operator++

cpp
inline Iterator operator++(
    int 
)
inline Iterator operator++(
    int 
)

function operator->

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

function transformInfo

cpp
inline const TransformInfo & transformInfo() const
inline const TransformInfo & transformInfo() const

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

function valid

cpp
bool valid() const
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;
bool m_ignoreCamera = true;

variable m_skipEmptyCamera

cpp
bool m_skipEmptyCamera = true;
bool m_skipEmptyCamera = true;

variable m_skipEmptySequences

cpp
bool m_skipEmptySequences = true;
bool m_skipEmptySequences = true;

Friends

friend TransformChain

cpp
friend class TransformChain(
    TransformChain 
);
friend class TransformChain(
    TransformChain 
);

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