MOAB: Mesh Oriented datABase  (version 5.5.0)
MBIter< Container > Class Template Reference

#include <MBIter.hpp>

+ Inheritance diagram for MBIter< Container >:
+ Collaboration diagram for MBIter< Container >:

Public Member Functions

 MBIter (iBase_EntityType type, iMesh_EntityTopology topology, EntityHandle set, int arr_size, bool recursive=false)
 
 ~MBIter ()
 
Container::const_iterator position () const
 
Container::const_iterator end () const
 
ErrorCode step (int num_steps, bool &at_end)
 
void get_entities (Core *mb, EntityHandle *array, int &count)
 
virtual ErrorCode reset (Interface *mb)
 
- Public Member Functions inherited from iBase_EntityArrIterator_Private
 iBase_EntityArrIterator_Private (iBase_EntityType type, iMesh_EntityTopology topology, EntityHandle set, int array_sz, bool recursive=false)
 
virtual ~iBase_EntityArrIterator_Private ()
 
int array_size () const
 
void remove_type (std::vector< EntityHandle > &vect, EntityType t)
 
void remove_type (Range &range, EntityType t)
 

Protected Attributes

Container iterData
 
Container::const_iterator iterPos
 
- Protected Attributes inherited from iBase_EntityArrIterator_Private
iBase_EntityType entType
 
iMesh_EntityTopology entTopo
 
EntityHandle entSet
 
int arrSize
 
bool isRecursive
 

Detailed Description

template<class Container>
class MBIter< Container >

Definition at line 121 of file MBIter.hpp.

Constructor & Destructor Documentation

◆ MBIter()

template<class Container >
MBIter< Container >::MBIter ( iBase_EntityType  type,
iMesh_EntityTopology  topology,
EntityHandle  set,
int  arr_size,
bool  recursive = false 
)
inline

Definition at line 128 of file MBIter.hpp.

133  : iBase_EntityArrIterator_Private( type, topology, set, arr_size, recursive ), iterPos( iterData.end() )
134  {
135  }

◆ ~MBIter()

template<class Container >
MBIter< Container >::~MBIter ( )
inline

Definition at line 137 of file MBIter.hpp.

137 {}

Member Function Documentation

◆ end()

template<class Container >
Container::const_iterator MBIter< Container >::end ( ) const
inline

Definition at line 144 of file MBIter.hpp.

145  {
146  return iterData.end();
147  };

References MBIter< Container >::iterData.

Referenced by iMesh_connectIterate(), iMesh_coordsIterate(), iMesh_tagIterate(), and MBIter< Container >::step().

◆ get_entities()

template<class Container >
void MBIter< Container >::get_entities ( Core *  mb,
EntityHandle *  array,
int &  count 
)
inlinevirtual

Implements iBase_EntityArrIterator_Private.

Definition at line 154 of file MBIter.hpp.

155  {
156  for( count = 0; count < arrSize && iterPos != iterData.end(); ++iterPos )
157  if( mb->is_valid( *iterPos ) ) array[count++] = *iterPos;
158  }

References iBase_EntityArrIterator_Private::arrSize, MBIter< Container >::iterData, MBIter< Container >::iterPos, and mb.

◆ position()

template<class Container >
Container::const_iterator MBIter< Container >::position ( ) const
inline

Definition at line 139 of file MBIter.hpp.

140  {
141  return iterPos;
142  };

References MBIter< Container >::iterPos.

Referenced by iMesh_connectIterate(), iMesh_coordsIterate(), and iMesh_tagIterate().

◆ reset()

template<class Container >
virtual ErrorCode MBIter< Container >::reset ( Interface *  mb)
inlinevirtual

Implements iBase_EntityArrIterator_Private.

Definition at line 160 of file MBIter.hpp.

161  {
162  ErrorCode result;
163  iterData.clear();
165  {
166  if( entTopo == iMesh_SEPTAHEDRON )
167  result = MB_SUCCESS;
168  else
169  result = mb->get_entities_by_type( entSet, mb_topology_table[entTopo], iterData, isRecursive );
170  }
171  else if( entType != iBase_ALL_TYPES )
172  {
173  result = mb->get_entities_by_dimension( entSet, entType, iterData, isRecursive );
175  }
176  else
177  {
178  result = mb->get_entities_by_handle( entSet, iterData, isRecursive );
181  }
182  iterPos = iterData.begin();
183  return result;
184  }

References iBase_EntityArrIterator_Private::entSet, iBase_EntityArrIterator_Private::entTopo, iBase_EntityArrIterator_Private::entType, ErrorCode, iBase_ALL_TYPES, iBase_REGION, iMesh_ALL_TOPOLOGIES, iMesh_SEPTAHEDRON, iBase_EntityArrIterator_Private::isRecursive, MBIter< Container >::iterData, MBIter< Container >::iterPos, mb, MB_SUCCESS, mb_topology_table, MBENTITYSET, MBKNIFE, and iBase_EntityArrIterator_Private::remove_type().

Referenced by SetIntersectIter< Container >::reset().

◆ step()

template<class Container >
ErrorCode MBIter< Container >::step ( int  num_steps,
bool &  at_end 
)
inlinevirtual

Implements iBase_EntityArrIterator_Private.

Definition at line 149 of file MBIter.hpp.

150  {
151  return step_iterator( iterPos, end(), num_steps, at_end );
152  }

References MBIter< Container >::end(), MBIter< Container >::iterPos, and step_iterator().

Member Data Documentation

◆ iterData

template<class Container >
Container MBIter< Container >::iterData
protected

◆ iterPos

template<class Container >
Container::const_iterator MBIter< Container >::iterPos
protected

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