32 :
TagInfo( name, size, type, default_value, size )
48 for( MapType::iterator i =
mData.begin(); i !=
mData.end(); ++i )
56 #ifdef MOAB_HAVE_UNORDERED_MAP
57 MapType::iterator iter =
mData.find( entity_handle );
59 MapType::iterator iter =
mData.lower_bound( entity_handle );
63 if( iter !=
mData.end() && iter->first == entity_handle ) memcpy( iter->second, data,
get_size() );
68 memcpy( new_data, data,
get_size() );
76 MapType::const_iterator iter =
mData.find( entity_handle );
78 if( iter !=
mData.end() )
107 MapType::iterator i =
mData.find( entity_handle );
122 unsigned char* ptr =
reinterpret_cast< unsigned char*
>( data );
123 for(
size_t i = 0; i < num_entities; ++i, ptr +=
get_size() )
133 unsigned char* ptr =
reinterpret_cast< unsigned char*
>( data );
147 const void** pointers,
148 int* data_lengths )
const
156 for(
size_t i = 0; i < num_entities; ++i, ++pointers )
172 const Range& entities,
173 const void** pointers,
174 int* data_lengths )
const
183 for( i = entities.
begin(); i != entities.
end(); ++i, ++pointers )
205 const unsigned char* ptr =
reinterpret_cast< const unsigned char*
>( data );
206 for(
size_t i = 0; i < num_entities; ++i, ptr +=
get_size() )
216 const unsigned char* ptr =
reinterpret_cast< const unsigned char*
>( data );
228 void const*
const* pointers,
235 for(
size_t i = 0; i < num_entities; ++i, ++pointers )
243 const Range& entities,
244 void const*
const* pointers,
252 for( i = entities.
begin(); i != entities.
end(); ++i, ++pointers )
262 const void* value_ptr,
265 if( value_len && value_len !=
get_size() )
268 <<
" of size " << value_len );
273 for(
size_t i = 0; i < num_entities; ++i )
281 const Range& entities,
282 const void* value_ptr,
285 if( value_len && value_len !=
get_size() )
288 <<
" of size " << value_len );
294 for( i = entities.
begin(); i != entities.
end(); ++i )
305 size_t num_entities )
307 for(
size_t i = 0; i < num_entities; ++i )
343 const void* ptr = NULL;
345 data_ptr =
const_cast< void*
>( ptr );
349 data_ptr =
const_cast< void*
>( ptr );
364 template <
class Container >
367 SparseTag::MapType::const_iterator iter;
368 typename Container::iterator hint = output_range.begin();
371 for( iter = mData.begin(); iter != mData.end(); ++iter )
372 hint = output_range.insert( hint, iter->first );
376 #ifdef MOAB_HAVE_UNORDERED_MAP
377 for( iter = mData.begin(); iter != mData.end(); ++iter )
378 if(
TYPE_FROM_HANDLE( iter->first ) == type ) hint = output_range.insert( hint, iter->first );
381 SparseTag::MapType::const_iterator end = mData.lower_bound(
LAST_HANDLE( type ) + 1 );
382 for( ; iter != end; ++iter )
383 hint = output_range.insert( hint, iter->first );
388 template <
class Container >
392 Container& output_range )
394 typename Container::iterator hint = output_range.begin();
396 if( mData.find( *i ) != mData.end() ) hint = output_range.insert( hint, *i );
399 template <
class Container >
406 get_tagged< Container >( mData, type, entities );
411 std::pair< Range::iterator, Range::iterator > r =
intersect->equal_range( type );
412 get_tagged< Container >( mData, r.first, r.second, entities );
428 size_t& output_count,
434 output_count = counter.
end();
445 Range& output_entities,
449 const Range* intersect_entities )
const
451 if( value_bytes && value_bytes !=
get_size() )
454 <<
" of size " << value_bytes );
457 MapType::const_iterator iter, end;
458 #ifdef MOAB_HAVE_UNORDERED_MAP
459 if( intersect_entities )
461 std::pair< Range::iterator, Range::iterator > r;
464 r.first = intersect_entities->
begin();
465 r.second = intersect_entities->
end();
481 seqman->get_entities( type, tmp );
485 if( intersect_entities )
489 iter =
mData.lower_bound( p->first );
490 end =
mData.upper_bound( p->second );
498 iter =
mData.begin();
521 per_entity =
get_size() + 4 *
sizeof(
void* );