4#ifndef vtkCompositeDataSetRange_h 
    5#define vtkCompositeDataSetRange_h 
   18VTK_ABI_NAMESPACE_BEGIN
 
   30VTK_ABI_NAMESPACE_BEGIN
 
   38VTK_ABI_NAMESPACE_BEGIN
 
   40struct CompositeDataSetRange;
 
   41struct CompositeDataSetIterator;
 
   62    : Iterator(o.Iterator ? 
SmartIterator::Take(o.Iterator->NewInstance()) : nullptr)
 
   64    this->CopyState(o.Iterator);
 
   72    this->CopyState(o.Iterator);
 
  119    return !(lhs == rhs); 
 
  125    swap(lhs.Iterator, rhs.Iterator);
 
  134    : Iterator(std::move(iter))
 
  146  void CopyState(InternalIterator* 
source)
 
  150      assert(this->Iterator != 
nullptr);
 
  158      this->AdvanceTo(
source->GetCurrentFlatIndex());
 
  162  void AdvanceTo(
const unsigned int flatIdx)
 
  164    assert(this->Iterator != 
nullptr);
 
  174    assert(this->Iterator != 
nullptr);
 
  181    assert(this->Iterator != 
nullptr);
 
  186  mutable SmartIterator Iterator;
 
  209    : CompositeDataSet(cds)
 
  212    assert(this->CompositeDataSet);
 
  223    auto iter = this->NewIterator();
 
  224    iter->InitTraversal();
 
  225    while (!iter->IsDoneWithTraversal())
 
  228      iter->GoToNextItem();
 
  244  SmartIterator NewIterator()
 const 
  249    result->SetSkipEmptyNodes((this->Options & Opts::SkipEmptyNodes) != Opts::None);
 
  250    result->InitTraversal();
 
superclass for composite data iterators
 
virtual void SetDataSet(vtkCompositeDataSet *ds)
Set the composite dataset this iterator is iterating over.
 
virtual int IsDoneWithTraversal()=0
Test whether the iterator is finished with the traversal.
 
virtual void InitTraversal()
Begin iterating over the composite dataset structure.
 
virtual void SetSkipEmptyNodes(vtkTypeBool)
If SkipEmptyNodes is true, then nullptr datasets will be skipped.
 
virtual void GoToNextItem()=0
Move the iterator to the next item in the collection.
 
virtual unsigned int GetCurrentFlatIndex()=0
Flat index is an index to identify the data in a composite data structure.
 
abstract superclass for composite (multi-block or AMR) datasets
 
virtual vtkCompositeDataIterator * NewIterator()=0
Return a new iterator (the iterator has to be deleted by user).
 
general representation of visualization data
 
static vtkSmartPointer< InternalIterator > Take(InternalIterator *t)
Transfer ownership of one reference to the given VTK object to a new smart pointer.
 
A reference proxy into a vtkCompositeDataSet, obtained by dereferencing an iterator from the vtk::Ran...
 
vtk::CompositeDataSetNodeReference< vtkCompositeDataIterator, CompositeDataSetIterator > CompositeDataSetIteratorReference
 
Specialization of tuple ranges and iterators for vtkAOSDataArrayTemplate.
 
CompositeDataSetIterator & operator++()
 
CompositeDataSetIterator operator++(int)
 
CompositeDataSetIterator(CompositeDataSetIterator &&) noexcept=default
 
pointer operator->() const
 
friend bool operator!=(const CompositeDataSetIterator &lhs, const CompositeDataSetIterator &rhs)
 
friend void swap(CompositeDataSetIterator &lhs, CompositeDataSetIterator &rhs) noexcept
 
reference operator*() const
 
CompositeDataSetIterator(SmartIterator &&iter) noexcept
 
std::forward_iterator_tag iterator_category
 
CompositeDataSetIterator(const CompositeDataSetIterator &o)
 
friend bool operator==(const CompositeDataSetIterator &lhs, const CompositeDataSetIterator &rhs)
 
CompositeDataSetIterator() noexcept
 
const_iterator cend() const
 
CompositeDataSetOptions GetOptions() const noexcept
 
vtkCompositeDataSet * GetCompositeDataSet() const noexcept
 
const_iterator cbegin() const
 
CompositeDataSetRange(vtkCompositeDataSet *cds, CompositeDataSetOptions opts=CompositeDataSetOptions::None)
 
boost::graph_traits< vtkGraph * >::vertex_descriptor source(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)