MOAB: Mesh Oriented datABase  (version 5.2.1)
moab::Range Class Reference

the class Range More...

#include <Range.hpp>

+ Collaboration diagram for moab::Range:

Classes

class  const_iterator
 a const iterator which iterates over an Range More...
class  const_pair_iterator
class  const_reverse_iterator
 a const reverse iterator which iterates over an Range More...
class  pair_iterator
 used to iterate over sub-ranges of a range More...
struct  PairNode

Public Types

typedef const_iterator iterator
typedef const_reverse_iterator reverse_iterator
typedef EntityHandle value_type

Public Member Functions

Rangeoperator-= (const Range &rhs)
 just like subtract, but as an operator
 Range ()
 default constructor
 Range (const Range &copy)
 copy constructor
 Range (EntityHandle val1, EntityHandle val2)
 another constructor that takes an initial range
Rangeoperator= (const Range &copy)
 operator=
 ~Range ()
 destructor
const_iterator begin () const
 return the beginning const iterator of this range
const_reverse_iterator rbegin () const
 return the beginning const reverse iterator of this range
const_iterator end () const
 return the ending const iterator for this range
const_reverse_iterator rend () const
 return the ending const reverse iterator for this range
size_t size () const
 return the number of values this Ranges represents
size_t psize () const
 return the number of range pairs in the list
bool empty () const
iterator insert (iterator hint, EntityHandle val)
iterator insert (EntityHandle val)
 insert an item into the list and return the iterator for the inserted item
iterator insert (iterator hint, EntityHandle first, EntityHandle last)
iterator insert (EntityHandle val1, EntityHandle val2)
template<typename T >
iterator insert_list (T begin_iter, T end_iter)
template<class T >
iterator insert (typename T::const_iterator begin_iter, typename T::const_iterator end_iter)
template<typename T >
iterator insert (const T *begin_iter, const T *end_iter)
iterator erase (iterator iter)
 remove an item from this list and return an iterator to the next item
iterator erase (iterator iter1, iterator iter2)
 remove a range of items from the list
iterator erase (EntityHandle val)
 erases a value from this container
const EntityHandlefront () const
 get first entity in range
const EntityHandleback () const
 get last entity in range
EntityHandle pop_front ()
 remove first entity from range
EntityHandle pop_back ()
 remove last entity from range
const_iterator find (EntityHandle val) const
 find an item int the list and return an iterator at that value
const_iterator lower_bound (EntityHandle val) const
const_iterator upper_bound (EntityHandle val) const
const_iterator lower_bound (EntityType type) const
const_iterator upper_bound (EntityType type) const
std::pair< const_iterator,
const_iterator
equal_range (EntityType type) const
const_iterator lower_bound (EntityType type, const_iterator first) const
const_iterator upper_bound (EntityType type, const_iterator first) const
bool all_of_type (EntityType type) const
bool all_of_dimension (int dimension) const
unsigned num_of_type (EntityType type) const
unsigned num_of_dimension (int dim) const
void clear ()
 clears the contents of the list
const std::string str_rep (const char *indent_prefix=NULL) const
 for debugging
void print (const char *indent_prefix=NULL) const
void print (std::ostream &s, const char *indent_prefix=NULL) const
unsigned long get_memory_use () const
double compactness () const
void insert (Range::const_iterator begin, Range::const_iterator end)
void merge (const Range &range)
 merges this Range with another range
void merge (Range::const_iterator beginr, Range::const_iterator endr)
 merge a subset of some other range
void swap (Range &range)
 swap the contents of this range with another one
void sanity_check () const
 check for internal consistency
bool contains (const Range &other) const
 Check if this range is a non-strict superset of some other range.
Range subset_by_type (EntityType t) const
 return a subset of this range, by type
Range subset_by_dimension (int dim) const
 return a subset of this range, by dimension
EntityHandle operator[] (EntityID index) const
int index (EntityHandle handle) const
pair_iterator pair_begin ()
pair_iterator pair_end ()
const_pair_iterator const_pair_begin () const
const_pair_iterator const_pair_end () const
const_pair_iterator pair_begin () const
const_pair_iterator pair_end () const
template<typename Iterator >
Range::iterator insert_list (Iterator begin_iter, Iterator end_iter)

Static Public Member Functions

static const_iterator lower_bound (const_iterator first, const_iterator last, EntityHandle val)
 return an iterator to the first value >= val
static const_iterator upper_bound (const_iterator first, const_iterator last, EntityHandle val)

Protected Member Functions

void delete_pair_node (PairNode *dead_node)
 if dead_node is not mHead, remove it from the list and free it's memory.

Protected Attributes

PairNode mHead

Friends

Range intersect (const Range &, const Range &)
 intersect two ranges, placing the results in the return range
Range subtract (const Range &, const Range &)
 subtract range2 from this, placing the results in the return range

Detailed Description


Member Typedef Documentation

Definition at line 194 of file Range.hpp.

for short hand notation, lets typedef the container class that holds the ranges

Definition at line 206 of file Range.hpp.


Constructor & Destructor Documentation

moab::Range::Range ( ) [inline]

default constructor

Definition at line 844 of file Range.hpp.

References mHead, moab::Range::PairNode::mNext, and moab::Range::PairNode::mPrev.

{
    // set the head node to point to itself
    mHead.mNext = mHead.mPrev = &mHead;
    mHead.first = mHead.second = 0;
}
moab::Range::Range ( const Range copy)

copy constructor

Definition at line 169 of file Range.cpp.

References alloc_pair(), mHead, moab::Range::PairNode::mNext, and moab::Range::PairNode::mPrev.

{
    // set the head node to point to itself
    mHead.mNext = mHead.mPrev = &mHead;
    mHead.first = mHead.second = 0;

    const PairNode* copy_node = copy.mHead.mNext;
    PairNode* new_node        = &mHead;
    for( ; copy_node != &( copy.mHead ); copy_node = copy_node->mNext )
    {
        PairNode* tmp_node     = alloc_pair( new_node->mNext, new_node, copy_node->first, copy_node->second );
        new_node->mNext->mPrev = tmp_node;
        new_node->mNext        = tmp_node;
        new_node               = tmp_node;
    }
}

another constructor that takes an initial range

Definition at line 162 of file Range.cpp.

References alloc_pair(), mHead, moab::Range::PairNode::mNext, and moab::Range::PairNode::mPrev.

{
    mHead.mNext = mHead.mPrev = alloc_pair( &mHead, &mHead, val1, val2 );
    mHead.first = mHead.second = 0;
}
moab::Range::~Range ( ) [inline]

destructor

Definition at line 852 of file Range.hpp.

References clear().

{
    clear();
}

Member Function Documentation

return the beginning const iterator of this range

Examples:
addPCdata.cpp, ComputeTriDual.cpp, copyPartition.cpp, DirectAccessNoHoles.cpp, DirectAccessWithHoles.cpp, GetEntities.cpp, LaplacianSmoother.cpp, LloydRelaxation.cpp, QuadTriConv.cpp, ReadPartFile.cpp, SetsNTags.cpp, StructuredMeshSimple.cpp, TestErrorHandling.cpp, TestExodusII.cpp, and VisTags.cpp.

Definition at line 858 of file Range.hpp.

References mHead, and moab::Range::PairNode::mNext.

Referenced by moab::GeomTopoTool::A_is_in_B(), add_dead_elems_to_impl_compl(), moab::SpatialLocator::add_elems(), add_field_value(), moab::ParallelComm::add_verts(), adj_perf(), ahf_test(), moab::SharedSetData::append_local_handles(), moab::SmoothFace::area(), moab::IntxAreaUtils::area_on_sphere(), moab::WriteSTL::ascii_write_triangles(), MetisPartitioner::assemble_graph(), ZoltanPartitioner::assemble_graph(), MetisPartitioner::assemble_taggedents_graph(), MetisPartitioner::assemble_taggedsets_graph(), moab::WriteUtil::assign_ids(), moab::DualTool::atomic_pillow(), moab::WriteSTL::binary_write_triangles(), moab::FBEngine::boundary_mesh_edges_on_face(), moab::FBEngine::boundary_nodes_on_face(), moab::box_from_axes(), moab::MeshGeneration::BrickInstance(), SphereDecomp::build_hexes(), moab::BVHTree::build_tree(), build_tree(), moab::AxisBox::calculate(), moab::FBEngine::chain_able_edge(), moab::FBEngine::chain_two_edges(), moab::Core::check_adjacencies(), check_answers(), check_big_meshset(), moab::ParallelComm::check_clean_iface(), moab::DualTool::check_dual_adjs(), moab::DualTool::check_dual_equiv_edges(), moab::AEntityFactory::check_equiv_entities(), moab::NCHelperMPAS::check_existing_mesh(), check_handle_tag(), check_handle_tag_type(), check_ho_elements(), check_identical_mesh(), check_mesh_is_tet(), check_meshset_common(), moab::GeomTopoTool::check_model(), check_order_by_sets_and_adj(), check_parallel_read(), moab::ParallelComm::check_sent_ents(), check_set_contents(), check_shared_ents(), check_tree(), moab::Skinner::classify_2d_boundary(), moab::Intx2Mesh::clean(), moab::ParallelComm::clean_shared_tags(), moab::VarLenSparseTag::clear_data(), moab::SparseTag::clear_data(), moab::Core::clear_meshset(), closedsurface_uref_hirec_convergence_study(), closest_point_in_triangles(), moab::OrientedBoxTreeTool::closest_to_location(), moab::closest_to_triangles(), moab::HalfFacetRep::collect_and_compare(), moab::MeshTopoUtil::common_entity(), moab::WriteHDF5Parallel::communicate_shared_set_data(), moab::WriteHDF5Parallel::communicate_shared_set_ids(), compare(), compare_set_contents(), compare_sets(), moab::HiReconstruction::compute_average_vertex_normals_surf(), moab::HiReconstruction::compute_average_vertex_tangents_curve(), moab::SmoothFace::compute_control_points_on_edges(), moab::NestedRefine::compute_coordinates(), compute_dual_mesh(), moab::SmoothFace::compute_internal_control_points_on_facets(), compute_lagrange_mesh_on_sphere(), SphereDecomp::compute_nodes(), moab::ParCommGraph::compute_partition(), moab::SmoothFace::compute_tangents_for_each_edge(), compute_tracer_case1(), compute_velocity_case1(), moab::TempestRemapper::ComputeOverlapMesh(), moab::DualTool::construct_dual(), moab::DualTool::construct_dual_cells(), moab::DualTool::construct_dual_edges(), moab::DualTool::construct_dual_faces(), moab::DualTool::construct_dual_vertices(), moab::BVHTree::construct_element_vec(), moab::DualTool::construct_hex_dual(), moab::NestedRefine::construct_hm_1D(), moab::NestedRefine::construct_hm_2D(), moab::NestedRefine::construct_hm_3D(), moab::DualTool::construct_hp_parent_child(), moab::GeomTopoTool::construct_obb_tree(), moab::GeomTopoTool::construct_obb_trees(), moab::GeomTopoTool::construct_vertex_ranges(), moab::TempestRemapper::convert_mesh_to_tempest_private(), moab::Tqdcfr::convert_nodesets_sidesets(), moab::TempestRemapper::convert_overlap_mesh_sorted_by_source(), moab::ReadHDF5::convert_range_to_handle(), moab::HigherOrderFactory::convert_sequence(), moab::SpectralMeshTool::convert_to_coarse(), moab::copy_sorted_file_ids(), moab::WriteHDF5::count_set_size(), EntityCount::create_adjacencies(), moab::ReadCCMIO::create_cell_from_faces(), moab::AEntityFactory::create_explicit_adjs(), moab::NCHelperGCRM::create_gather_set_vertices(), moab::NCHelperMPAS::create_gather_set_vertices(), moab::NestedRefine::create_hm_storage_single_level(), moab::ParallelComm::create_iface_pc_links(), moab::ReadABAQUS::create_instance_of_part(), create_lagr_mesh(), moab::NCHelperMPAS::create_local_cells(), moab::NCHelperGCRM::create_local_edges(), moab::NCHelperMPAS::create_local_edges(), moab::NCHelperGCRM::create_local_vertices(), moab::NCHelperMPAS::create_local_vertices(), moab::NCHelperHOMME::create_mesh(), moab::ScdNCHelper::create_mesh(), moab::NCHelperGCRM::create_padded_local_cells(), moab::NCHelperMPAS::create_padded_local_cells(), moab::ScdNCHelper::create_quad_coordinate_tag(), moab::ReadGmsh::create_sets(), IntxUtilsCSLAM::create_span_quads(), moab::SpectralMeshTool::create_spectral_elems(), moab::AEntityFactory::create_vert_elem_adjacencies(), vtkMoabReader::CreateSubBlocks(), moab::Intx2Mesh::createTags(), cube_tri_curve_coincidence_test(), IntxUtilsCSLAM::deep_copy_set(), moab::IntxUtils::deep_copy_set_with_quads(), moab::DualTool::delete_dual_entities(), moab::ParallelComm::delete_entities(), delete_existing_tree(), moab::ReadHDF5::delete_non_side_elements(), moab::ReadParallel::delete_nonlocal_entities(), moab::GeomTopoTool::delete_obb_tree(), moab::HalfFacetRep::determine_border_vertices(), moab::HalfFacetRep::determine_incident_halfedges(), moab::HalfFacetRep::determine_incident_halffaces(), moab::HalfFacetRep::determine_incident_halfverts(), moab::HalfFacetRep::determine_sibling_halfedges(), moab::HalfFacetRep::determine_sibling_halffaces(), moab::HalfFacetRep::determine_sibling_halfverts(), moab::Intx2Mesh::DetermineOrderedNeighbors(), do_file(), do_linear_test(), do_ray_fire_test(), do_test_mode(), dot_children(), dot_contained(), dot_nodes(), dot_write_id_nodes(), moab::SmoothFace::DumpModelControlPoints(), moab::GeomTopoTool::duplicate_model(), moab::IntxUtils::enforce_convexity(), equal_range(), erase_test(), moab::NestedRefine::estimate_hm_storage(), moab::Core::estimated_memory_use(), moab::WriteHDF5Parallel::exchange_file_ids(), moab::DualTool::face_shrink(), smoab::faceIdsPerCell(), FBiGeom_getEnt2ndAdj(), smoab::DataSetConverter::fill(), fill_coord_on_edges(), moab::ParallelComm::filter_pstatus(), moab::Tree::find_all_trees(), find_block(), moab::ScdInterface::find_boxes(), find_coincident_edges(), find_coincident_elements(), find_coincident_nodes(), moab::ElemEvaluator::find_containing_entity(), moab::DenseTag::find_entities_with_value(), moab::VarLenDenseTag::find_entities_with_value(), moab::VarLenSparseTag::find_entities_with_value(), moab::SparseTag::find_entities_with_value(), moab::ParallelComm::find_existing_entity(), moab::Skinner::find_geometric_skin(), moab::Skinner::find_inferred_edges(), moab::find_map_values(), moab::HalfFacetRep::find_matching_halfedge(), moab::HalfFacetRep::find_matching_halfface(), moab::HalfFacetRep::find_matching_implicit_edge_in_cell(), moab::MergeMesh::find_merged_to(), moab::BVHTree::find_point(), moab::ReadHDF5::find_sets_containing(), moab::Skinner::find_skin_noadj(), moab::Skinner::find_skin_vertices_1D(), moab::Skinner::find_skin_vertices_2D(), moab::Skinner::find_skin_vertices_3D(), moab::find_tag_values(), moab::HalfFacetRep::find_total_edges_2d(), moab::HalfFacetRep::find_total_edges_faces_3d(), moab::FBEngine::find_vertex_set_for_node(), moab::GeomQueryTool::find_volume_slow(), smoab::Interface::findDetachedEntities(), smoab::Interface::findEntitiesWithDimension(), smoab::Interface::findEntitiesWithMultipleParents(), smoab::Interface::findEntitiesWithTag(), smoab::Interface::findEntityRootParents(), moab::Intx2Mesh::FindMaxEdgesInSet(), smoab::ExtractShell::findSkins(), moab::IntxUtils::fix_degenerate_quads(), fix_surface_senses(), moab::DualTool::foc_delete_dual(), moab::DualTool::foc_get_ents(), moab::DualTool::fs_get_quad_loops(), moab::DualTool::fs_get_quads(), moab::DualTool::fsr_get_fourth_quad(), moab::ParallelComm::gather_data(), moab::WriteSLAC::gather_interior_exterior(), moab::WriteVtk::gather_mesh(), moab::WriteHDF5::gather_mesh_info(), moab::WriteTemplate::gather_mesh_information(), moab::WriteSLAC::gather_mesh_information(), moab::WriteNCDF::gather_mesh_information(), moab::WriteUtil::gather_nodes_from_elements(), moab::ReadUtil::gather_related_ents(), gather_related_test(), gather_set_stats(), moab::GeomTopoTool::generate_implicit_complement(), generate_random_points(), moab::TempestRemapper::GenerateMeshMetadata(), moab::GeomTopoTool::geometrize_surface_set(), geometry_evaluation_test(), moab::ScdBox::get_adj_edge_or_face(), moab::Core::get_adjacencies(), moab::get_adjacencies_intersection(), moab::get_adjacencies_union(), moab::MeshTopoUtil::get_average_position(), get_barycenters(), get_boundary_entities(), get_by_all_types_and_tag(), get_children_by_dimension(), moab::NestedRefine::get_connectivity(), moab::Core::get_connectivity(), moab::Core::get_connectivity_by_type(), moab::GeomTopoTool::get_ct_children_by_dimension(), moab::SparseTag::get_data(), moab::VarLenSparseTag::get_data(), get_departure_grid(), moab::AEntityFactory::get_down_adjacency_elements_poly(), moab::DualTool::get_dual_entities(), moab::WriteUtil::get_element_connect(), moab::MeshSet::get_entities(), moab::ReorderTool::get_entities(), moab::TypeSequenceManager::get_entities(), moab::MeshSet::get_entities_by_dimension(), moab::Core::get_entities_by_handle(), moab::MeshSet::get_entities_by_type(), get_ents(), get_ents_from_geometric_sets(), get_ghost_entities(), moab::ParallelComm::get_ghosted_entities(), moab::Coupler::get_gl_points_on_elements(), get_gnomonic_plane(), moab::DualTool::get_graphics_points(), moab::HalfFacetRep::get_half_facet_in_comp(), moab::ParallelComm::get_iface_entities(), moab::ParallelComm::get_interface_procs(), moab::ParallelData::get_interface_sets(), moab::ParallelComm::get_interface_sets(), get_intersection_weights(), moab::NestedRefine::get_lid_inci_child(), get_linear_reconstruction(), moab::ParallelComm::get_local_handles(), moab::MeshTopoUtil::get_manifold(), get_max_volume(), moab::AEntityFactory::get_memory_use(), moab::WriteTemplate::get_neuset_elems(), moab::WriteSLAC::get_neuset_elems(), moab::WriteCCMIO::get_neuset_elems(), moab::ReorderTool::get_new_handles(), moab::MeshSet::get_non_set_entities(), moab::HiReconstruction::get_normals_surf(), moab::DualTool::get_opposite_verts(), get_owner_handles(), moab::ParallelComm::get_part_entities(), moab::ParallelComm::get_part_neighbor_ids(), moab::ReadHDF5::get_partition(), moab::ParallelComm::get_pstatus_entities(), moab::ParallelComm::get_remote_handles(), moab::ReorderTool::get_reordered_handles(), moab::ReadABAQUS::get_set_by_name(), moab::WriteCCMIO::get_sets(), moab::ParallelComm::get_sharing_data(), moab::HalfFacetRep::get_sibling_map(), moab::WriteNCDF::get_sideset_elems(), get_signed_volume(), moab::WriteHDF5::get_tag_data_length(), moab::BitTag::get_tagged(), moab::get_tagged(), moab::DenseTag::get_tagged_entities(), moab::ReadHDF5::get_tagged_entities(), moab::HiReconstruction::get_tangents_curve(), moab::MeshSetSequence::get_type(), moab::HalfFacetRep::get_up_adjacencies_edg_3d(), moab::HalfFacetRep::get_up_adjacencies_face_3d(), moab::HalfFacetRep::get_up_adjacencies_vert_2d(), moab::HalfFacetRep::get_up_adjacencies_vert_3d(), moab::WriteTemplate::get_valid_sides(), moab::WriteSLAC::get_valid_sides(), moab::WriteNCDF::get_valid_sides(), moab::Core::get_vertex_coordinates(), moab::NestedRefine::get_vertex_duplicates(), smoab::getAllCells(), moab::IntxUtils::global_gnomonic_projection(), moab::ReorderTool::handle_order_from_int_tag(), hcFilter(), identify_set(), iMesh_createStructuredMesh(), iMesh_getEntArr2ndAdj(), iMesh_getEntsByTagsRec(), iMesh_getEntSetsByTagsRec(), iMeshP_getAdjEntities(), iMOAB_GetElementOwnership(), iMOAB_GetMeshInfo(), iMOAB_GetPointerToSurfaceBC(), iMOAB_GetPointerToVertexBC(), iMOAB_GetVertexOwnership(), iMOAB_GetVisibleElementsInfo(), ZoltanPartitioner::include_closure(), index(), moab::SmoothFace::init_gradient(), moab::HalfFacetRep::init_surface(), moab::HalfFacetRep::init_volume(), moab::Skinner::initialize(), moab::WriteNCDF::initialize_exodus_file(), insert(), insert_hint_test(), moab::ReadHDF5::insert_in_id_map(), insert_list(), moab::ReorderTool::int_order_from_sets_and_adj(), moab::intersect(), moab::AdaptiveKDTree::intersect_children_with_elems(), moab::Intx2Mesh::intersect_meshes(), moab::Intx2Mesh::intersect_meshes_kdtree(), moab::DualTool::is_blind(), moab::NestedRefine::is_cell_on_boundary(), moab::NestedRefine::is_vertex_on_boundary(), moab::OrientedBoxTreeTool::join_trees(), laplacianFilter(), smoab::detail::LinearCellConnectivity::LinearCellConnectivity(), moab::DualTool::list_entities(), moab::Core::list_entities(), moab::ParallelComm::list_entities(), moab::ReadParallel::load_file(), moab::ReadABAQUS::load_file(), moab::ReadSms::load_file_impl(), moab::WriteGMV::local_write_mesh(), lower_bound(), main(), make_tris_from_quads(), manufacture_lagrange_mesh_on_sphere(), moab::WriteDamsel::map_sparse_tags(), match_tri_edges_w_curve(), match_vertices_and_elements(), mb_adjacencies_create_delete_test(), mb_adjacent_vertex_test(), mb_bar_connectivity_test(), mb_bit_tags_test(), mb_common_tag_test(), mb_hex_connectivity_test(), mb_mesh_set_appends(), mb_mesh_set_list_replace_test(), mb_mesh_set_parent_child_test(), mb_mesh_set_set_replace_test(), mb_mesh_sets_test(), mb_quad_connectivity_test(), mb_range_seq_intersect_test(), mb_skin_higher_order_faces_common(), mb_skin_higher_order_pyramids(), mb_skin_higher_order_regions_common(), mb_skin_subset_common(), mb_skin_surface_test_common(), mb_skin_verts_common(), mb_split_test(), mb_tet_connectivity_test(), mb_topo_util_test(), mb_tri_connectivity_test(), mb_type_is_maxtype_test(), mb_vertex_coordinate_test(), mb_write_mesh_test(), moab::FBEngine::measure(), moab::GeomQueryTool::measure_area(), moab::GeomQueryTool::measure_volume(), merge(), moab::AEntityFactory::merge_adjust_adjacencies(), merge_duplicate_vertices(), moab::MergeMesh::merge_higher_dimensions(), merge_input_surfs(), merge_test(), moab::MergeMesh::merge_using_integer_tag(), min_edge_length(), smoab::detail::MixedCellConnectivity::MixedCellConnectivity(), smoab::detail::ReadSparseTag::multiSetRead(), moab::Coupler::nat_param(), moab::DualTool::next_loop_vertex(), normalize_elems(), normals_test(), nothing_but_type(), obbstat_write(), obbvis_create(), operator-=(), operator[](), moab::DualTool::order_chord(), orient_faces_outward(), moab::GeomTopoTool::other_entity(), overlap_test_measure_area(), overlap_test_ray_fire(), overlap_test_surface_sense(), moab::ParallelComm::pack_entities(), moab::ParallelComm::pack_entity_seq(), moab::ParallelComm::pack_sets(), moab::ParallelComm::pack_tags(), pack_unpack_noremoteh(), parallel_create_mesh(), ZoltanPartitioner::partition_owned_cells(), perform_laplacian_smoothing(), perform_lloyd_relaxation(), moab::LloydSmoother::perform_smooth(), moab::GeomQueryTool::point_in_volume_slow(), moab::IntxAreaUtils::positive_orientation(), moab::AdaptiveKDTree::print(), moab::Core::print(), moab::TreeNodePrinter::print_contents(), print_mbrange(), print_output(), print_partitioned_entities(), moab::WriteHDF5Parallel::print_set_sharing_data(), print_stats(), moab::HalfFacetRep::print_tags(), moab::print_type_sets(), smoab::Interface::printRange(), moab::ReadDamsel::process_entity_tags(), quads_to_tris(), query_elem_to_vert(), query_elem_to_vert_direct(), query_struct_elem_to_vert(), query_vert_to_elem(), query_vert_to_elem_direct(), smoab::RangeToVector(), moab::AdaptiveKDTree::ray_intersect_triangles(), moab::OrientedBoxTreeTool::ray_intersect_triangles(), read_cylcube_groups_test(), moab::ReadHDF5VarLen::read_data(), moab::ReadHDF5::read_dense_tag(), McnpData::read_mcnpfile(), moab::ReadHDF5::read_node_adj_elems(), moab::Tqdcfr::read_nodes(), moab::ReadNCDF::read_nodesets(), moab::ReadHDF5VarLen::read_offsets(), moab::ScdNCHelper::read_scd_variables_to_nonset_allocate(), moab::ReadHDF5::read_set_data(), moab::ReadHDF5::read_set_ids_recursive(), read_sets(), moab::ReadHDF5::read_sets(), moab::ReadNCDF::read_sidesets(), moab::ReadHDF5::read_sparse_tag_indices(), moab::ReadHDF5::read_tag_values_partial(), moab::NCHelperHOMME::read_ucd_variables_to_nonset_allocate(), moab::NCHelperMPAS::read_ucd_variables_to_nonset_allocate(), moab::NCHelperGCRM::read_ucd_variables_to_nonset_allocate(), moab::ParCommGraph::receive_mesh(), moab::ParCommGraph::receive_tag_values(), moab::HiReconstruction::reconstruct3D_curve_geom(), moab::HiReconstruction::reconstruct3D_surf_geom(), moab::MeshSetSequence::recursive_get_sets(), moab::FBEngine::redistribute_boundary_edges_to_faces(), moab::ParallelComm::reduce_tags(), moab::MeshRefiner::refine(), regression_insert_set_1(), moab::VarLenSparseTag::remove_data(), moab::SparseTag::remove_data(), moab::IntxUtils::remove_duplicate_vertices(), remove_empty_cgm_surfs_and_vols(), remove_entities_from_sets(), remove_from_back(), remove_from_vector(), moab::WriteHDF5Parallel::remove_remote_entities(), moab::ReorderTool::reorder_entities(), moab::NestedRefine::reorder_indices(), moab::ReorderTool::reorder_tag_data(), replace_faceted_cgm_surfs(), report_sets(), moab::HalfFacetRep::resize_hf_maps(), moab::ParallelComm::resolve_shared_ents(), moab::ParallelComm::resolve_shared_sets(), moab::GeomTopoTool::restore_topology_from_adjacency(), moab::GeomTopoTool::restore_topology_from_geometric_inclusion(), moab::DualTool::rev_atomic_pillow(), moab::DualTool::rev_face_shrink(), moab::IntxUtils::ScaleToRadius(), moab::ScdBox::ScdBox(), moab::BitPage::search(), moab::ParCommGraph::send_tag_values(), moab::FBEngine::separate(), moab::GeomTopoTool::separate_by_dimension(), moab::Core::set_coords(), moab::SparseTag::set_data(), moab::VarLenSparseTag::set_data(), set_density(), moab::ReadHDF5Dataset::set_file_ids(), moab::HalfFacetRep::set_sibling_map(), moab::ParallelComm::settle_intersection_points(), setup_mesh(), moab::Core::side_element(), skin_common(), moab::FBEngine::smooth_new_intx_points(), moab::AdaptiveKDTree::sphere_intersect_triangles(), moab::FBEngine::split_bedge_at_new_mesh_node(), moab::FBEngine::split_boundary(), moab::FBEngine::split_edge_at_mesh_node(), moab::MeshTopoUtil::split_entities_manifold(), moab::MeshTopoUtil::split_entity_nonmanifold(), moab::FBEngine::split_internal_edge(), moab::ParCommGraph::split_owned_range(), moab::FBEngine::split_quads(), moab::FBEngine::split_surface_with_direction(), moab::MeshTopoUtil::star_entities_nonmanifold(), moab::MeshTopoUtil::star_next_entity(), moab::ReadHDF5::store_file_ids(), moab::NestedRefine::subdivide_cells(), moab::NestedRefine::subdivide_tets(), subset_by_dimension(), moab::subtract(), summarize_cell_volume_change(), tag_elements(), moab::ParallelComm::tag_iface_entities(), moab::ScdInterface::tag_shared_vertices(), tag_time(), tag_vertices(), moab::ParallelMergeMesh::TagSharedElements(), test_add_entities(), test_adjacencies(), test_assign_global_ids(), test_bc_sets(), test_bit_tag_big(), test_boolean(), test_check_meshsets(), test_clear_bit(), test_closedsurface_mesh(), test_coords_connect_iterate(), test_delete_entities(), test_delete_obb_tree(), test_delete_tag_data(), test_element(), test_elements(), test_elements_on_several_procs(), test_file_set(), test_filter_pstatus(), test_gather_sets_ranged(), test_geometric_sets(), test_get_by_tag(), test_get_by_tag_value(), test_get_by_tag_value_dense(), test_get_entity_tags(), test_get_ents_with_default_value(), test_get_set(), test_get_set_bit(), test_get_set_variable_length(), test_ghost_elements(), test_ghost_tag_exchange(), test_global_value_common(), test_ho_elements(), test_iterates(), test_linear_hex(), test_linear_quad(), test_linear_reconstruction(), test_list_set_with_stale_handles(), test_measure_area(), test_mesh(), test_moab_v3_poly_format(), test_pack_bit_tag_data(), test_pack_poly(), test_pack_set_parent_child(), test_pack_sets_of_sets(), test_pack_sets_simple(), test_pack_tag_data_default_value(), test_pack_tag_data_dense(), test_pack_tag_data_sparse(), test_pack_tag_handle_data(), test_pack_variable_length_tag(), test_quadratic_hex(), test_ranged_set_with_stale_handles(), test_ray_fire(), test_read_bc_sets(), test_read_double_tag(), test_read_handle_tag(), test_read_handle_tag_common(), test_read_int_tag(), test_read_opaque_tag(), test_read_real_tag(), test_read_set_contents(), test_read_sets_common(), test_read_side(), test_read_sides(), test_read_tags(), test_read_vertices(), test_remove_entities(), test_restore_obb_trees(), test_root_sets_resize(), test_scd_invalid(), test_sequences_after_ghosting(), test_set_flags(), test_sets_fileids(), test_spectral_hex(), test_spectral_quad(), test_surface_sense(), test_tag_iterate_common(), test_tag_iterate_invalid(), test_unitcircle(), test_unitsphere(), test_var_length_big_data(), test_var_length_data_common(), test_var_length_handle_tag(), test_var_length_parallel(), test_write_different_element_types(), test_write_shared_sets(), TestErrorHandling_4(), time_forward_eval(), time_integrate(), time_jacobian(), time_reverse_eval(), moab::DualTool::traverse_hyperplane(), umr_perf_test(), moab::unite(), moab::ParallelComm::unpack_sets(), moab::BoundBox::update(), moab::ReadNCDF::update(), update_density(), moab::NestedRefine::update_global_ahf_1D(), moab::NestedRefine::update_global_ahf_1D_sub(), moab::NestedRefine::update_global_ahf_2D(), moab::NestedRefine::update_global_ahf_2D_sub(), moab::NestedRefine::update_global_ahf_3D(), moab::NestedRefine::update_local_ahf(), moab::ParallelComm::update_remote_data(), moab::ReorderTool::update_set_contents(), moab::NestedRefine::update_special_tags(), moab::Intx2MeshOnSphere::update_tracer_data(), moab::NestedRefine::update_tracking_verts(), upper_bound(), verdict_test1(), TreeValidator::visit(), moab::RayIntersectSets::visit(), moab::TreeNodePrinter::visit(), moab::WriteHDF5::write_adjacencies(), MetisPartitioner::write_aggregationtag_partition(), moab::WriteVtk::write_bit_tag(), moab::WriteCCMIO::write_cells_and_faces(), moab::WriteNCDF::write_elementblocks(), moab::WriteVtk::write_elems(), moab::WriteHDF5::write_elems(), moab::WriteDamsel::write_entities(), moab::WriteCCMIO::write_external_faces(), moab::WriteSmf::write_file(), moab::WriteGmsh::write_file(), moab::WriteAns::write_file(), moab::WriteDamsel::write_file(), moab::WriteSLAC::write_file(), moab::WriteTemplate::write_file(), moab::WriteNCDF::write_file(), moab::Core::write_file(), write_file(), moab::WriteNCDF::write_global_node_order_map(), moab::WriteTemplate::write_matsets(), moab::WriteSLAC::write_matsets(), moab::WriteVtk::write_nodes(), moab::WriteCCMIO::write_nodes(), moab::WriteHDF5::write_nodes(), moab::ScdNCWriteHelper::write_nonset_variables(), MetisPartitioner::write_partition(), ZoltanPartitioner::write_partition(), moab::WriteNCDF::write_poly_faces(), moab::WriteCCMIO::write_problem_description(), moab::WriteHDF5::write_set_data(), moab::WriteHDF5::write_sets(), moab::WriteHDF5::write_sparse_ids(), moab::WriteVtk::write_tag(), moab::WriteHDF5::write_tag_values(), write_tree_blocks(), moab::WriteHDF5::write_var_len_data(), moab::WriteHDF5::write_var_len_indices(), moab::IODebugTrack::~IODebugTrack(), and moab::Tqdcfr::~Tqdcfr().

{
    return const_iterator( mHead.mNext, mHead.mNext->first );
}

clears the contents of the list

Examples:
ComputeTriDual.cpp, DeformMeshRemap.cpp, HelloParMOAB.cpp, SetsNTags.cpp, and TestExodusII.cpp.

Definition at line 187 of file Range.cpp.

References free_pair(), mHead, moab::Range::PairNode::mNext, and moab::Range::PairNode::mPrev.

Referenced by adj_perf(), ahf_test(), MetisPartitioner::assemble_graph(), ZoltanPartitioner::assemble_graph(), MetisPartitioner::assemble_taggedents_graph(), moab::ReadUtil::assign_ids(), moab::OrientedBoxTreeTool::build_sets(), check_children(), check_identical_mesh(), check_num_verts(), check_tree(), check_valid_connectivity(), moab::Skinner::classify_2d_boundary(), moab::TempestRemapper::clear(), moab::OrientedBoxTreeTool::closest_to_location(), coincident_counts(), compare(), moab::MeshTopoUtil::construct_aentities(), moab::DualTool::construct_hp_parent_child(), moab::GeomTopoTool::construct_vertex_ranges(), contains_test(), moab::TempestRemapper::convert_mesh_to_tempest_private(), moab::TempestRemapper::convert_overlap_mesh_sorted_by_source(), moab::TempestRemapper::convert_tempest_mesh_private(), moab::WriteHDF5::count_set_size(), moab::ReadGmsh::create_geometric_topology(), moab::ParallelComm::create_iface_pc_links(), moab::ReadABAQUS::create_instance_of_part(), create_int_ents(), moab::AEntityFactory::create_vert_elem_adjacencies(), moab::Core::create_vertices(), vtkMoabReader::CreateSubBlocks(), delete_existing_tree(), do_file(), do_kdtree_test(), do_test_mode(), dot_get_sets(), erase_test(), moab::WriteHDF5Parallel::exchange_file_ids(), FBiGeom_getArrAdj(), FBiGeom_getEnt2ndAdj(), moab::ParallelComm::filter_pstatus(), moab::AdaptiveKDTree::find_close_triangle(), moab::MergeMesh::find_merged_to(), moab::ReadHDF5::find_sets_containing(), moab::DualTool::fs_get_quads(), moab::DualTool::fsr_get_fourth_quad(), moab::WriteHDF5Parallel::gather_interface_meshes(), moab::WriteVtk::gather_mesh(), moab::WriteHDF5::gather_mesh_info(), moab::ReadUtil::gather_related_ents(), get_adjacent_elems(), moab::MeshTopoUtil::get_bridge_adjacencies(), get_by_all_types_and_tag(), get_children_by_dimension(), EntityCount::get_counts(), moab::GeomTopoTool::get_ct_children_by_dimension(), get_entities(), get_expected_ghosts(), moab::DualTool::get_graphics_points(), moab::Coupler::get_matching_entities(), get_max_volume(), moab::DualTool::get_opposite_verts(), moab::ParallelComm::get_sent_ents(), moab::ReadABAQUS::get_set_elements(), moab::ReadABAQUS::get_set_nodes(), moab::WriteCCMIO::get_sets(), moab::ParallelComm::get_shared_entities(), moab::SharedSetData::get_shared_sets(), moab::WriteHDF5::get_sparse_tagged_entities(), moab::WriteHDF5::get_tag_data_length(), moab::FBEngine::get_vert_edges(), moab::WriteHDF5::get_write_entities(), moab::FBEngine::getAdjacentEntities(), moab::FBEngine::getEgVtxSense(), moab::FBEngine::getEntities(), moab::TempestRemapper::GetOverlapAugmentedEntities(), heappermute(), iMOAB_UpdateMeshInfo(), ZoltanPartitioner::include_closure(), moab::SmoothFace::init_gradient(), moab::ReorderTool::int_order_from_sets_and_adj(), moab::AdaptiveKDTree::intersect_children_with_elems(), moab::Intx2Mesh::intersect_meshes(), moab::Intx2Mesh::intersect_meshes_kdtree(), intersect_test(), moab::ReadCGNS::load_file(), moab::ReadParallel::load_file(), moab::ReadGmsh::load_file(), moab::ReadSms::load_file_impl(), moab::ReadHDF5::load_file_impl(), moab::WriteGMV::local_write_mesh(), main(), make_mesh(), make_tris_from_quads(), mb_memory_use_test(), mb_mesh_set_flag_test(), mb_mesh_set_list_replace_test(), mb_mesh_set_set_replace_test(), mb_mesh_sets_test(), mb_poly_adjacency_test(), mb_poly_adjacency_test2(), mb_range_seq_intersect_test(), mb_skin_curve_test_common(), mb_skin_higher_order_faces_common(), mb_skin_higher_order_regions_common(), mb_skin_poly_test(), mb_skin_subset_common(), mb_skin_verts_common(), mb_split_test(), mb_topo_util_test(), mb_type_is_maxtype_test(), mb_write_mesh_test(), moab::GeomQueryTool::measure_area(), moab::GeomQueryTool::measure_volume(), merge_2D_elem(), merge_3D_elem(), moab::MergeMesh::merge_higher_dimensions(), moab::AdaptiveKDTree::merge_leaf(), moab::BSPTree::merge_leaf(), merge_test(), merge_with_tag_test(), moab::DualTool::next_loop_vertex(), operator=(), moab::ParallelComm::pack_entities(), pack_unpack_noremoteh(), parallel_create_mesh(), ZoltanPartitioner::partition_owned_cells(), moab::GeomQueryTool::point_in_volume_slow(), moab::ParallelMergeMesh::PopulateMySkinEnts(), moab::Core::print(), print_file_stats(), print_output(), print_partitioned_entities(), query_vert_to_elem_direct(), moab::AdaptiveKDTree::ray_intersect_triangles(), moab::OrientedBoxTreeTool::ray_intersect_triangles(), moab::ReadABAQUS::read_element_set(), DeformMeshRemap::read_file(), McnpData::read_mcnpfile(), moab::ReadABAQUS::read_node_set(), moab::ReadHDF5VarLen::read_offsets(), moab::ReadHDF5::read_set_ids_recursive(), moab::ReadHDF5::read_sparse_tag_indices(), regression_mmiller_8_2010(), regression_tag_on_nonexistent_entity(), moab::IntxUtils::remove_duplicate_vertices(), remove_entities_from_sets(), report_nsets(), moab::ParallelComm::resolve_shared_sets(), moab::GeomTopoTool::restore_topology_from_adjacency(), moab::FBEngine::separate(), moab::ReadHDF5Dataset::set_all_file_ids(), skin_common(), moab::OrientedBoxTreeTool::sphere_intersect_triangles(), moab::split_box(), moab::MeshTopoUtil::split_entities_manifold(), moab::FBEngine::split_surface(), moab::MeshTopoUtil::star_next_entity(), subtract_test(), swap_test(), tag_depth(), tag_elements(), moab::ParallelComm::tag_iface_entities(), tag_time(), tag_vertices(), test_add_entities(), test_adjacencies(), test_bc_sets(), test_build_tree_bisect_triangles(), test_check_meshsets(), test_closest_triangle(), test_elements_on_several_procs(), test_gather_sets_ranged(), test_geometric_sets(), test_get_by_tag(), test_get_by_tag_value(), test_get_by_tag_value_dense(), test_get_ents_with_default_value(), test_ghost_elements(), test_ghost_tag_exchange(), test_pack_bit_tag_data(), test_pack_elements(), test_pack_higher_order(), test_pack_poly(), test_pack_set_contents(), test_pack_set_parent_child(), test_pack_sets_of_sets(), test_pack_sets_simple(), test_pack_tag_data_default_value(), test_pack_tag_data_dense(), test_pack_tag_data_sparse(), test_pack_tag_handle_data(), test_pack_variable_length_tag(), test_ray_intersect_triangles(), test_read_adjacencies(), test_read_bc_sets(), test_read_set_sets(), test_read_sides(), test_remove_entities(), test_restore_obb_trees(), test_set_flags(), test_shared_sets(), test_sphere_intersect_triangles(), test_var_length_big_data(), test_var_length_data_common(), test_var_length_handle_tag(), test_var_length_parallel(), test_write_unbalanced(), moab::DualTool::traverse_hyperplane(), moab::NestedRefine::update_global_ahf_1D_sub(), moab::NestedRefine::update_special_tags(), MetisPartitioner::write_aggregationtag_partition(), moab::WriteCCMIO::write_cells_and_faces(), moab::WriteTemplate::write_file(), moab::WriteSLAC::write_file(), moab::WriteNCDF::write_file(), moab::WriteHDF5::write_finished(), MetisPartitioner::write_partition(), ZoltanPartitioner::write_partition(), write_tree_blocks(), and ~Range().

{
    PairNode* tmp_node = mHead.mNext;
    while( tmp_node != &mHead )
    {
        PairNode* to_delete = tmp_node;
        tmp_node            = tmp_node->mNext;
        free_pair( to_delete );
    }
    mHead.mNext = &mHead;
    mHead.mPrev = &mHead;
}
double moab::Range::compactness ( ) const [inline]
bool moab::Range::contains ( const Range other) const

Check if this range is a non-strict superset of some other range.

Definition at line 989 of file Range.cpp.

References empty(), mHead, and moab::Range::PairNode::mNext.

Referenced by moab::WriteHDF5::check_dense_format_tag(), contains_test(), and moab::Skinner::find_skin_scd().

{
    if( othr.empty() ) return true;
    if( empty() ) return false;

    // neither range is empty, so both have valid pair nodes
    // other than dummy mHead
    const PairNode* this_node = mHead.mNext;
    const PairNode* othr_node = othr.mHead.mNext;
    for( ;; )
    {
        // Loop while the node in this list is entirely before
        // the node in the other list.
        while( this_node->second < othr_node->first )
        {
            this_node = this_node->mNext;
            if( this_node == &mHead ) return false;
        }
        // If other node is not entirely contained in this node
        // then other list is not contained in this list
        if( this_node->first > othr_node->first ) break;
        // Loop while other node is entirely contained in this node.
        while( othr_node->second <= this_node->second )
        {
            othr_node = othr_node->mNext;
            if( othr_node == &othr.mHead ) return true;
        }
        // If other node overlapped end of this node
        if( othr_node->first <= this_node->second ) break;
    }

    // should be unreachable
    return false;
}
void moab::Range::delete_pair_node ( PairNode dead_node) [protected]

if dead_node is not mHead, remove it from the list and free it's memory.

Definition at line 461 of file Range.cpp.

References free_pair(), mHead, moab::Range::PairNode::mNext, and moab::Range::PairNode::mPrev.

Referenced by erase(), operator-=(), pop_back(), pop_front(), and moab::subtract().

{
    if( node != &mHead )
    {  // pop_front() and pop_back() rely on this check
        node->mPrev->mNext = node->mNext;
        node->mNext->mPrev = node->mPrev;
        free_pair( node );
    }
}
bool moab::Range::empty ( ) const [inline]

return whether empty or not always use "if(!Ranges::empty())" instead of "if(Ranges::size())"

Examples:
DeformMeshRemap.cpp, DirectAccessNoHoles.cpp, LaplacianSmoother.cpp, and LloydRelaxation.cpp.

Definition at line 883 of file Range.hpp.

References mHead, and moab::Range::PairNode::mNext.

Referenced by add_dead_elems_to_impl_compl(), moab::SpatialLocator::add_elems(), all_of_dimension(), all_of_type(), MetisPartitioner::assemble_graph(), ZoltanPartitioner::assemble_graph(), MetisPartitioner::assemble_taggedents_graph(), MetisPartitioner::assemble_taggedsets_graph(), build_tree(), moab::OrientedBoxTreeTool::build_tree(), check_children(), moab::WriteHDF5::check_dense_format_tag(), moab::DualTool::check_dual_equiv_edges(), moab::NCHelperHOMME::check_existing_mesh(), moab::NCHelperGCRM::check_existing_mesh(), moab::NCHelperMPAS::check_existing_mesh(), moab::ParallelComm::check_global_ids(), check_handle_tag(), check_ho_elements(), check_meshset_common(), moab::HalfFacetRep::check_mixed_entity_type(), moab::GeomTopoTool::check_model(), moab::ParallelComm::check_my_shared_handles(), check_parallel_read(), moab::Skinner::classify_2d_boundary(), moab::MeshTag::clear_data(), closest_point_in_triangles(), moab::OrientedBoxTreeTool::closest_to_location(), moab::NCWriteGCRM::collect_mesh_info(), moab::NCWriteHOMME::collect_mesh_info(), moab::NCWriteMPAS::collect_mesh_info(), moab::ScdNCWriteHelper::collect_mesh_info(), moab::NCWriteGCRM::collect_variable_data(), moab::NCWriteMPAS::collect_variable_data(), moab::MeshTopoUtil::common_entity(), moab::ParCommGraph::compute_partition(), moab::DualTool::construct_dual_cells(), moab::DualTool::construct_dual_edges(), moab::DualTool::construct_dual_faces(), moab::DualTool::construct_dual_vertices(), moab::NestedRefine::construct_hm_2D(), moab::DualTool::construct_hp_parent_child(), moab::GeomTopoTool::construct_obb_tree(), contains(), moab::Tqdcfr::convert_nodesets_sidesets(), moab::SpectralMeshTool::convert_to_coarse(), count_owned_entities(), moab::Coupler::Coupler(), moab::ReadIDEAS::create_elements(), moab::ReadGmsh::create_geometric_topology(), moab::ParallelComm::create_iface_pc_links(), create_mesh_no_holes(), moab::ReadParallel::create_partition_sets(), moab::ReadGmsh::create_sets(), moab::SpatialLocator::create_tree(), moab::DataCoupler::DataCoupler(), moab::DualTool::delete_dual_entities(), MBiMesh::delete_entities(), moab::Core::delete_entities(), delete_existing_tree(), moab::ReadHDF5::delete_non_side_elements(), moab::ReadParallel::delete_nonlocal_entities(), do_file(), do_ray_fire_test(), moab::MeshTopoUtil::equivalent_entities(), moab::ParallelComm::exchange_ghost_cells(), moab::ParallelComm::exchange_owned_mesh(), moab::ParallelComm::exchange_tags(), moab::DualTool::face_shrink(), moab::ParallelComm::filter_pstatus(), moab::Tree::find_all_trees(), moab::ScdInterface::find_boxes(), moab::AdaptiveKDTree::find_close_triangle(), moab::ParallelComm::find_existing_entity(), moab::Skinner::find_geometric_skin(), moab::MergeMesh::find_merged_to(), DeformMeshRemap::find_other_sets(), moab::ReadHDF5::find_sets_containing(), moab::Skinner::find_skin(), moab::Skinner::find_skin_noadj(), moab::Skinner::find_skin_vertices(), smoab::findFaceSets(), moab::DualTool::foc_delete_dual(), moab::DualTool::foc_get_ents(), moab::WriteCCMIO::gather_matset_info(), moab::WriteVtk::gather_mesh(), moab::WriteNCDF::gather_mesh_information(), moab::WriteUtil::gather_nodes_from_elements(), moab::ReadUtil::gather_related_ents(), generate_random_points(), moab::GeomTopoTool::geometrize_surface_set(), moab::get_adjacencies_intersection(), moab::MeshTopoUtil::get_average_position(), moab::MeshTopoUtil::get_bridge_adjacencies(), moab::MeshTag::get_data(), moab::WriteUtil::get_element_connect(), moab::Core::get_entities_by_type_and_tag(), get_ents(), moab::ReadUtil::get_gather_set(), moab::ParallelComm::get_ghosted_entities(), moab::ParallelData::get_interface_sets(), moab::Tqdcfr::get_mesh_entities(), moab::WriteUtil::get_node_coords(), moab::ParallelComm::get_remote_handles(), moab::ParallelComm::get_sent_ents(), moab::WriteHDF5::get_sparse_tagged_entities(), moab::ReadHDF5::get_subset_ids(), moab::ParallelComm::get_tag_send_list(), moab::Core::get_vertices(), moab::IntxUtils::global_gnomonic_projection(), iMesh_destroyTag(), iMOAB_CreateElements(), iMOAB_CreateVertices(), iMOAB_DeregisterApplication(), iMOAB_GetBlockInfo(), iMOAB_GetElementID(), iMOAB_GetElementOwnership(), iMOAB_UpdateMeshInfo(), ZoltanPartitioner::include_closure(), moab::NestedRefine::initialize(), moab::HiReconstruction::initialize(), moab::Coupler::initialize_spectral_elements(), moab::Coupler::initialize_tree(), moab::ReadHDF5::insert_in_id_map(), moab::Intx2Mesh::intersect_meshes(), moab::Intx2Mesh::intersect_meshes_kdtree(), intersect_test(), moab::DualTool::is_blind(), moab::OrientedBoxTreeTool::join_trees(), moab::DebugOutput::list_ints_real(), moab::DebugOutput::list_range_real(), load_file(), moab::ReadParallel::load_file(), moab::ReadHDF5::load_file_partial(), moab::SpatialLocator::locate_points(), main(), moab::WriteDamsel::map_sparse_tags(), mb_adjacent_vertex_test(), mb_common_tag_test(), mb_mesh_set_flag_test(), mb_skin_higher_order_regions_common(), mb_skin_verts_common(), moab::DualTool::next_loop_vertex(), moab::DualTool::order_chord(), moab::ParallelComm::pack_entities(), moab::ParallelComm::pack_sets(), pack_unpack_noremoteh(), ZoltanPartitioner::partition_mesh_and_geometry(), ZoltanPartitioner::partition_owned_cells(), perform_laplacian_smoothing(), perform_lloyd_relaxation(), moab::LloydSmoother::perform_smooth(), moab::ParallelMergeMesh::PopulateMySkinEnts(), moab::Core::print(), moab::TreeNodePrinter::print_contents(), print_partitioned_entities(), process_partition_file(), moab::ReadHDF5::read_elems(), DeformMeshRemap::read_file(), moab::ReadHDF5::read_nodes(), moab::Tqdcfr::read_nodes(), moab::ReadHDF5VarLen::read_offsets(), moab::ReadHDF5::read_set_ids_recursive(), moab::ReadHDF5::read_sets(), moab::ReadHDF5::read_sparse_tag_indices(), smoab::DataSetConverter::readProperties(), moab::ParCommGraph::receive_mesh(), moab::FBEngine::redistribute_boundary_edges_to_faces(), moab::ParallelComm::reduce_tags(), refine_entities(), moab::MeshTag::remove_data(), remove_entities_from_sets(), moab::ReorderTool::reorder_tag_data(), moab::ParallelComm::resolve_shared_ents(), moab::ParallelComm::resolve_shared_sets(), moab::GeomTopoTool::restore_topology_from_adjacency(), moab::DualTool::rev_face_shrink(), sanity_check(), moab::ScdBox::ScdBox(), moab::ParallelComm::send_entities(), moab::WriteHDF5::serial_create_file(), moab::MeshTag::set_data(), moab::GeomTopoTool::setup_implicit_complement(), moab::Core::side_element(), skin_common(), moab::SpatialLocator::SpatialLocator(), moab::OrientedBoxTreeTool::sphere_intersect_triangles(), moab::MeshTopoUtil::star_entities_nonmanifold(), moab::MeshTopoUtil::star_next_entity(), moab::ReadCGM::store_group_content(), str_rep(), moab::NestedRefine::subdivide_cells(), moab::NestedRefine::subdivide_tets(), swap_test(), tag_depth(), tag_elements(), tag_vertices(), test_adjacencies(), test_clear_bit(), test_delete_bit_data(), test_delete_type_tag(), test_elements_on_several_procs(), test_geometric_sets(), test_get_by_tag(), test_get_by_tag_value(), test_get_by_tag_value_dense(), test_get_set(), test_get_set_bit(), test_get_set_variable_length(), test_ghost_elements(), test_ho_elements(), test_multiple_files(), test_pack_bit_tag_data(), test_pack_set_contents(), test_pack_set_parent_child(), test_pack_sets_of_sets(), test_pack_sets_simple(), test_pack_tag_data_default_value(), test_pack_tag_data_dense(), test_pack_tag_data_sparse(), test_pack_tag_handle_data(), test_pack_variable_length_tag(), test_read_double_tag(), test_read_handle_tag_common(), test_read_nodes_common(), test_read_opaque_tag(), test_spectral_hex(), test_tree_delete(), moab::ParallelComm::unpack_sets(), moab::ReorderTool::update_set_contents(), TreeValidator::visit(), moab::RayIntersectSets::visit(), MetisPartitioner::write_aggregationtag_partition(), moab::WriteCCMIO::write_cells_and_faces(), moab::WriteGmsh::write_file(), moab::WriteSTL::write_file(), moab::WriteDamsel::write_file(), moab::WriteNCDF::write_file(), moab::WriteHDF5::write_file_impl(), moab::NCWriteMPAS::write_nonset_variables(), moab::NCWriteGCRM::write_nonset_variables(), MetisPartitioner::write_partition(), ZoltanPartitioner::write_partition(), moab::WriteNCDF::write_poly_faces(), moab::WriteCCMIO::write_problem_description(), moab::WriteVtk::write_tags(), write_tree_blocks(), and moab::IODebugTrack::~IODebugTrack().

{
    return ( mHead.mNext == &mHead );
}

return the ending const iterator for this range

Examples:
addPCdata.cpp, ComputeTriDual.cpp, copyPartition.cpp, DeformMeshRemap.cpp, DirectAccessNoHoles.cpp, DirectAccessWithHoles.cpp, GetEntities.cpp, LaplacianSmoother.cpp, LloydRelaxation.cpp, QuadTriConv.cpp, ReadPartFile.cpp, SetsNTags.cpp, TestErrorHandling.cpp, TestExodusII.cpp, and VisTags.cpp.

Definition at line 870 of file Range.hpp.

References mHead.

Referenced by add_dead_elems_to_impl_compl(), add_field_value(), adj_perf(), ahf_test(), moab::SmoothFace::area(), moab::IntxAreaUtils::area_on_sphere(), moab::WriteSTL::ascii_write_triangles(), MetisPartitioner::assemble_graph(), ZoltanPartitioner::assemble_graph(), MetisPartitioner::assemble_taggedents_graph(), MetisPartitioner::assemble_taggedsets_graph(), moab::ParallelComm::assign_global_ids(), moab::WriteUtil::assign_ids(), moab::WriteSTL::binary_write_triangles(), moab::FBEngine::boundary_mesh_edges_on_face(), moab::FBEngine::boundary_nodes_on_face(), moab::box_from_axes(), moab::MeshGeneration::BrickInstance(), SphereDecomp::build_hexes(), moab::BVHTree::build_tree(), build_tree(), moab::FBEngine::chain_able_edge(), moab::FBEngine::chain_two_edges(), moab::Core::check_adjacencies(), check_answers(), check_big_meshset(), check_children(), moab::DualTool::check_dual_adjs(), moab::DualTool::check_dual_equiv_edges(), moab::AEntityFactory::check_equiv_entities(), moab::NCHelperMPAS::check_existing_mesh(), check_handle_tag(), check_handle_tag_type(), check_ho_elements(), check_identical_mesh(), check_mesh_is_tet(), check_meshset_common(), moab::GeomTopoTool::check_model(), moab::ParallelComm::check_my_shared_handles(), check_order_by_sets_and_adj(), check_parallel_read(), moab::ParallelComm::check_sent_ents(), check_set_contents(), check_shared_ents(), check_tree(), moab::Skinner::classify_2d_boundary(), moab::Intx2Mesh::clean(), moab::VarLenSparseTag::clear_data(), moab::SparseTag::clear_data(), moab::Core::clear_meshset(), closedsurface_uref_hirec_convergence_study(), closest_point_in_triangles(), moab::OrientedBoxTreeTool::closest_to_location(), moab::closest_to_triangles(), moab::WriteHDF5Parallel::communicate_shared_set_data(), moab::WriteHDF5Parallel::communicate_shared_set_ids(), compare_set_contents(), moab::HiReconstruction::compute_average_vertex_normals_surf(), moab::HiReconstruction::compute_average_vertex_tangents_curve(), moab::SmoothFace::compute_control_points_on_edges(), compute_dual_mesh(), moab::SmoothFace::compute_internal_control_points_on_facets(), moab::FBEngine::compute_intersection_points(), compute_lagrange_mesh_on_sphere(), SphereDecomp::compute_nodes(), moab::ParCommGraph::compute_partition(), moab::SmoothFace::compute_tangents_for_each_edge(), compute_tracer_case1(), compute_velocity_case1(), moab::TempestRemapper::ComputeOverlapMesh(), moab::DualTool::construct_dual(), moab::DualTool::construct_dual_cells(), moab::DualTool::construct_dual_edges(), moab::DualTool::construct_dual_faces(), moab::DualTool::construct_dual_vertices(), moab::BVHTree::construct_element_vec(), moab::DualTool::construct_hex_dual(), moab::DualTool::construct_hp_parent_child(), moab::GeomTopoTool::construct_obb_tree(), moab::GeomTopoTool::construct_obb_trees(), moab::GeomTopoTool::construct_vertex_ranges(), smoab::CellSet::contains(), moab::TempestRemapper::convert_mesh_to_tempest_private(), moab::Tqdcfr::convert_nodesets_sidesets(), moab::TempestRemapper::convert_overlap_mesh_sorted_by_source(), moab::HigherOrderFactory::convert_sequence(), moab::SpectralMeshTool::convert_to_coarse(), moab::WriteHDF5::count_set_size(), EntityCount::create_adjacencies(), moab::AEntityFactory::create_explicit_adjs(), moab::NCHelperGCRM::create_gather_set_vertices(), moab::NCHelperMPAS::create_gather_set_vertices(), moab::ParallelComm::create_iface_pc_links(), moab::ReadABAQUS::create_instance_of_part(), create_lagr_mesh(), moab::NCHelperMPAS::create_local_cells(), moab::NCHelperGCRM::create_local_edges(), moab::NCHelperMPAS::create_local_edges(), moab::NCHelperGCRM::create_local_vertices(), moab::NCHelperMPAS::create_local_vertices(), moab::NCHelperHOMME::create_mesh(), moab::ScdNCHelper::create_mesh(), moab::NCHelperGCRM::create_padded_local_cells(), moab::NCHelperMPAS::create_padded_local_cells(), moab::ScdNCHelper::create_quad_coordinate_tag(), moab::ReadGmsh::create_sets(), IntxUtilsCSLAM::create_span_quads(), moab::SpectralMeshTool::create_spectral_elems(), moab::AEntityFactory::create_vert_elem_adjacencies(), vtkMoabReader::CreateSubBlocks(), moab::Intx2Mesh::createTags(), cube_tri_curve_coincidence_test(), IntxUtilsCSLAM::deep_copy_set(), moab::IntxUtils::deep_copy_set_with_quads(), moab::GeomTopoTool::delete_all_obb_trees(), moab::DualTool::delete_dual_entities(), moab::ParallelComm::delete_entities(), delete_existing_tree(), moab::ReadHDF5::delete_non_side_elements(), moab::ReadParallel::delete_nonlocal_entities(), moab::GeomTopoTool::delete_obb_tree(), moab::HalfFacetRep::determine_border_vertices(), moab::HalfFacetRep::determine_incident_halfedges(), moab::HalfFacetRep::determine_incident_halffaces(), moab::HalfFacetRep::determine_incident_halfverts(), moab::HalfFacetRep::determine_sibling_halfedges(), moab::HalfFacetRep::determine_sibling_halffaces(), moab::HalfFacetRep::determine_sibling_halfverts(), moab::Intx2Mesh::DetermineOrderedNeighbors(), do_file(), do_linear_test(), do_ray_fire_test(), do_test_mode(), dot_children(), dot_contained(), dot_nodes(), dot_write_id_nodes(), moab::SmoothFace::DumpModelControlPoints(), moab::GeomTopoTool::duplicate_model(), moab::IntxUtils::enforce_convexity(), equal_range(), erase(), erase_test(), moab::ParallelComm::estimate_sets_buffer_size(), moab::WriteHDF5Parallel::exchange_file_ids(), moab::DualTool::face_shrink(), smoab::faceIdsPerCell(), FBiGeom_getEnt2ndAdj(), smoab::DataSetConverter::fill(), fill_coord_on_edges(), moab::ParallelComm::filter_pstatus(), find(), find_block(), moab::ScdInterface::find_boxes(), find_coincident_edges(), find_coincident_elements(), find_coincident_nodes(), moab::ElemEvaluator::find_containing_entity(), moab::VarLenSparseTag::find_entities_with_value(), moab::SparseTag::find_entities_with_value(), moab::Skinner::find_geometric_skin(), moab::Skinner::find_inferred_edges(), moab::BVHTree::find_point(), moab::Skinner::find_skin_noadj(), moab::Skinner::find_skin_vertices_1D(), moab::Skinner::find_skin_vertices_2D(), moab::Skinner::find_skin_vertices_3D(), moab::HalfFacetRep::find_total_edges_2d(), moab::HalfFacetRep::find_total_edges_faces_3d(), moab::FBEngine::find_vertex_set_for_node(), moab::GeomQueryTool::find_volume_slow(), smoab::Interface::findDetachedEntities(), smoab::Interface::findEntitiesWithDimension(), smoab::Interface::findEntitiesWithMultipleParents(), smoab::Interface::findEntitiesWithTag(), smoab::Interface::findEntityRootParents(), moab::Intx2Mesh::FindMaxEdgesInSet(), smoab::ExtractShell::findSkins(), moab::IntxUtils::fix_degenerate_quads(), fix_surface_senses(), moab::DualTool::foc_delete_dual(), moab::ParallelComm::gather_data(), moab::WriteSLAC::gather_interior_exterior(), moab::WriteVtk::gather_mesh(), moab::WriteHDF5::gather_mesh_info(), moab::WriteTemplate::gather_mesh_information(), moab::WriteSLAC::gather_mesh_information(), moab::WriteNCDF::gather_mesh_information(), moab::WriteUtil::gather_nodes_from_elements(), moab::ReadUtil::gather_related_ents(), gather_set_stats(), moab::GeomTopoTool::generate_implicit_complement(), generate_random_points(), moab::TempestRemapper::GenerateMeshMetadata(), moab::GeomTopoTool::geometrize_surface_set(), geometry_evaluation_test(), moab::Core::get_adjacencies(), moab::get_adjacencies_intersection(), moab::MeshTopoUtil::get_average_position(), get_barycenters(), get_boundary_entities(), get_by_all_types_and_tag(), get_children_by_dimension(), moab::Core::get_connectivity(), moab::Core::get_connectivity_by_type(), moab::Core::get_coords(), moab::GeomTopoTool::get_ct_children_by_dimension(), moab::SparseTag::get_data(), moab::VarLenSparseTag::get_data(), get_departure_grid(), moab::AEntityFactory::get_down_adjacency_elements_poly(), moab::DualTool::get_dual_entities(), moab::WriteUtil::get_element_connect(), moab::Core::get_entities_by_handle(), get_ents_from_geometric_sets(), get_ghost_entities(), moab::ParallelComm::get_ghosted_entities(), moab::Coupler::get_gl_points_on_elements(), get_gnomonic_plane(), moab::DualTool::get_graphics_points(), moab::ParallelComm::get_iface_entities(), moab::ParallelComm::get_interface_procs(), moab::ParallelData::get_interface_sets(), moab::ParallelComm::get_interface_sets(), get_intersection_weights(), get_linear_reconstruction(), moab::ParallelComm::get_local_handles(), moab::MeshTopoUtil::get_manifold(), get_max_volume(), moab::AEntityFactory::get_memory_use(), moab::WriteTemplate::get_neuset_elems(), moab::WriteSLAC::get_neuset_elems(), moab::WriteCCMIO::get_neuset_elems(), moab::HiReconstruction::get_normals_surf(), get_owner_handles(), moab::ParallelComm::get_part_entities(), moab::ParallelComm::get_part_neighbor_ids(), moab::ReadHDF5::get_partition(), moab::ParallelComm::get_proc_nvecs(), moab::ParallelComm::get_pstatus_entities(), moab::ParallelComm::get_remote_handles(), moab::ReorderTool::get_reordered_handles(), moab::ParallelComm::get_sent_ents(), moab::ReadABAQUS::get_set_by_name(), moab::WriteCCMIO::get_sets(), moab::ParallelComm::get_sharing_data(), moab::WriteNCDF::get_sideset_elems(), get_signed_volume(), moab::WriteHDF5::get_tag_data_length(), moab::BitTag::get_tagged(), moab::get_tagged(), moab::HiReconstruction::get_tangents_curve(), moab::MeshSetSequence::get_type(), moab::WriteTemplate::get_valid_sides(), moab::WriteSLAC::get_valid_sides(), moab::WriteNCDF::get_valid_sides(), moab::Core::get_vertex_coordinates(), moab::Core::get_vertices(), moab::FBEngine::getAdjacentEntities(), smoab::getAllCells(), moab::FBEngine::getEntType(), moab::IntxUtils::global_gnomonic_projection(), moab::ReorderTool::handle_order_from_int_tag(), hcFilter(), identify_set(), iMesh_createStructuredMesh(), iMesh_getEntArr2ndAdj(), iMesh_getEntsByTagsRec(), iMesh_getEntSetsByTagsRec(), iMeshP_getAdjEntities(), iMOAB_GetElementOwnership(), iMOAB_GetMeshInfo(), iMOAB_GetPointerToSurfaceBC(), iMOAB_GetPointerToVertexBC(), iMOAB_GetVertexOwnership(), iMOAB_GetVisibleElementsInfo(), ZoltanPartitioner::include_closure(), moab::ReadHDF5Dataset::init(), moab::HalfFacetRep::init_curve(), moab::SmoothFace::init_gradient(), moab::HalfFacetRep::init_surface(), moab::HalfFacetRep::init_volume(), moab::Skinner::initialize(), moab::WriteNCDF::initialize_exodus_file(), moab::FBEngine::initializeSmoothing(), insert(), moab::ReorderTool::int_order_from_sets_and_adj(), moab::intersect(), moab::AdaptiveKDTree::intersect_children_with_elems(), moab::Intx2Mesh::intersect_meshes(), moab::Intx2Mesh::intersect_meshes_kdtree(), moab::DualTool::is_blind(), moab::GeomTopoTool::is_owned_set(), moab::FBEngine::isEntAdj(), moab::OrientedBoxTreeTool::join_trees(), laplacianFilter(), smoab::detail::LinearCellConnectivity::LinearCellConnectivity(), moab::DualTool::list_entities(), moab::Core::list_entities(), moab::ParallelComm::list_entities(), moab::ReadABAQUS::load_file(), moab::WriteGMV::local_write_mesh(), lower_bound(), main(), make_tris_from_quads(), manufacture_lagrange_mesh_on_sphere(), moab::WriteDamsel::map_sparse_tags(), match_tri_edges_w_curve(), match_vertices_and_elements(), mb_adjacencies_create_delete_test(), mb_adjacent_vertex_test(), mb_bit_tags_test(), mb_common_tag_test(), mb_mesh_set_appends(), mb_mesh_set_list_replace_test(), mb_mesh_set_set_replace_test(), mb_range_seq_intersect_test(), mb_skin_adjacent_surf_patches(), mb_skin_higher_order_faces_common(), mb_skin_higher_order_pyramids(), mb_skin_higher_order_regions_common(), mb_skin_subset_common(), mb_skin_verts_common(), mb_type_is_maxtype_test(), mb_vertex_coordinate_test(), mb_write_mesh_test(), moab::FBEngine::measure(), moab::GeomQueryTool::measure_area(), moab::GeomQueryTool::measure_volume(), merge(), moab::AEntityFactory::merge_adjust_adjacencies(), merge_duplicate_vertices(), moab::MergeMesh::merge_higher_dimensions(), merge_input_surfs(), merge_test(), moab::MergeMesh::merge_using_integer_tag(), min_edge_length(), smoab::detail::MixedCellConnectivity::MixedCellConnectivity(), smoab::detail::ReadSparseTag::multiSetRead(), moab::Coupler::nat_param(), normalize_elems(), normals_test(), nothing_but_type(), obbstat_write(), obbvis_create(), moab::HiReconstruction::obtain_nring_ngbvs(), operator-=(), moab::DualTool::order_chord(), orient_faces_outward(), overlap_test_ray_fire(), overlap_test_surface_sense(), moab::ParallelComm::pack_entities(), moab::ParallelComm::pack_entity_seq(), moab::ParallelComm::pack_sets(), moab::ParallelComm::pack_tags(), pack_unpack_noremoteh(), parallel_create_mesh(), ZoltanPartitioner::partition_owned_cells(), perform_laplacian_smoothing(), perform_lloyd_relaxation(), moab::LloydSmoother::perform_smooth(), moab::GeomQueryTool::point_in_volume_slow(), moab::IntxAreaUtils::positive_orientation(), moab::AdaptiveKDTree::print(), moab::Core::print(), moab::TreeNodePrinter::print_contents(), print_mbrange(), print_output(), print_partitioned_entities(), moab::WriteHDF5Parallel::print_set_sharing_data(), print_stats(), moab::HalfFacetRep::print_tags(), moab::print_type_sets(), smoab::Interface::printRange(), moab::ReadDamsel::process_entity_tags(), quads_to_tris(), query_elem_to_vert(), query_elem_to_vert_direct(), query_struct_elem_to_vert(), query_vert_to_elem(), query_vert_to_elem_direct(), smoab::RangeToVector(), moab::AdaptiveKDTree::ray_intersect_triangles(), moab::OrientedBoxTreeTool::ray_intersect_triangles(), read_cylcube_groups_test(), moab::ReadHDF5VarLen::read_data(), DeformMeshRemap::read_file(), moab::Tqdcfr::read_nodes(), moab::ReadNCDF::read_nodesets(), moab::ReadHDF5VarLen::read_offsets(), moab::ScdNCHelper::read_scd_variables_to_nonset_allocate(), moab::ReadHDF5::read_set_data(), moab::ReadHDF5::read_set_ids_recursive(), read_sets(), moab::ReadNCDF::read_sidesets(), moab::ReadHDF5::read_sparse_tag_indices(), moab::ReadHDF5::read_tag_values_partial(), moab::NCHelperGCRM::read_ucd_variables_to_nonset_allocate(), moab::NCHelperHOMME::read_ucd_variables_to_nonset_allocate(), moab::NCHelperMPAS::read_ucd_variables_to_nonset_allocate(), moab::ParCommGraph::receive_mesh(), moab::ParCommGraph::receive_tag_values(), moab::HiReconstruction::reconstruct3D_curve_geom(), moab::HiReconstruction::reconstruct3D_surf_geom(), moab::MeshSetSequence::recursive_get_sets(), moab::FBEngine::redistribute_boundary_edges_to_faces(), moab::MeshRefiner::refine(), refine_entities(), regression_insert_set_1(), moab::VarLenSparseTag::remove_data(), moab::SparseTag::remove_data(), moab::IntxUtils::remove_duplicate_vertices(), remove_empty_cgm_surfs_and_vols(), remove_entities_from_sets(), remove_from_back(), remove_from_vector(), moab::WriteHDF5Parallel::remove_remote_entities(), moab::WriteHDF5Parallel::remove_remote_sets(), moab::ReorderTool::reorder_entities(), moab::ReorderTool::reorder_tag_data(), replace_faceted_cgm_surfs(), report_sets(), moab::HalfFacetRep::resize_hf_maps(), moab::ParallelComm::resolve_shared_ents(), moab::ParallelComm::resolve_shared_sets(), moab::GeomTopoTool::restore_obb_index(), moab::GeomTopoTool::restore_topology_from_adjacency(), moab::GeomTopoTool::restore_topology_from_geometric_inclusion(), moab::DualTool::rev_atomic_pillow(), moab::DualTool::rev_face_shrink(), moab::IntxUtils::ScaleToRadius(), moab::ParCommGraph::send_tag_values(), moab::FBEngine::separate(), moab::GeomTopoTool::separate_by_dimension(), moab::Core::set_coords(), moab::SparseTag::set_data(), moab::VarLenSparseTag::set_data(), set_density(), moab::ReadHDF5Dataset::set_file_ids(), moab::ParallelComm::settle_intersection_points(), moab::FBEngine::smooth_new_intx_points(), moab::AdaptiveKDTree::sphere_intersect_triangles(), moab::FBEngine::split_bedge_at_new_mesh_node(), moab::FBEngine::split_boundary(), moab::FBEngine::split_edge_at_mesh_node(), moab::MeshTopoUtil::split_entities_manifold(), moab::MeshTopoUtil::split_entity_nonmanifold(), moab::FBEngine::split_internal_edge(), moab::DualTool::split_pair_nonmanifold(), moab::FBEngine::split_quads(), moab::FBEngine::split_surface_with_direction(), moab::MeshTopoUtil::star_entities_nonmanifold(), moab::MeshTopoUtil::star_next_entity(), subset_by_dimension(), moab::subtract(), subtract_test(), summarize_cell_volume_change(), swap_test(), moab::ParallelComm::tag_iface_entities(), moab::ScdInterface::tag_shared_vertices(), moab::ParallelComm::tag_shared_verts(), tag_time(), moab::ParallelMergeMesh::TagSharedElements(), test_add_entities(), test_adjacencies(), test_assign_global_ids(), test_bc_sets(), test_bit_tag_big(), test_boolean(), test_check_meshsets(), test_clear_bit(), test_closedsurface_mesh(), test_coords_connect_iterate(), test_delete_entities(), test_delete_obb_tree(), test_delete_tag_data(), test_elements(), test_elements_on_several_procs(), test_file_set(), test_gather_sets_ranged(), test_geometric_sets(), test_get_ents_with_default_value(), test_get_set_bit(), test_ghost_elements(), test_ghost_tag_exchange(), test_ho_elements(), test_iterates(), test_linear_hex(), test_linear_quad(), test_linear_reconstruction(), test_mesh(), test_moab_v3_poly_format(), test_pack_bit_tag_data(), test_pack_poly(), test_pack_set_parent_child(), test_pack_sets_of_sets(), test_pack_sets_simple(), test_pack_tag_data_default_value(), test_pack_tag_data_dense(), test_pack_tag_data_sparse(), test_pack_tag_handle_data(), test_pack_variable_length_tag(), test_quadratic_hex(), test_ray_fire(), test_read_double_tag(), test_read_handle_tag(), test_read_handle_tag_common(), test_read_int_tag(), test_read_nodes_common(), test_read_nothing_common(), test_read_opaque_tag(), test_read_real_tag(), test_read_set_contents(), test_read_set_sets(), test_read_sets_common(), test_read_side(), test_read_sides(), test_read_tags(), test_read_two_sets_elems(), test_read_vertices(), test_remove_entities(), test_restore_obb_trees(), test_root_sets_resize(), test_scd_invalid(), test_sequences_after_ghosting(), test_sets_fileids(), test_spectral_hex(), test_spectral_quad(), test_surface_sense(), test_tag_iterate_common(), test_tag_iterate_invalid(), test_unitcircle(), test_unitsphere(), test_var_length_big_data(), test_var_length_data_common(), test_var_length_handle_tag(), test_var_length_parallel(), test_write_different_element_types(), test_write_shared_sets(), TestErrorHandling_4(), time_forward_eval(), time_integrate(), time_jacobian(), time_reverse_eval(), moab::DualTool::traverse_hyperplane(), tri_in_set(), umr_perf_test(), moab::unite(), moab::ParallelComm::unpack_sets(), moab::BoundBox::update(), moab::ReadNCDF::update(), update_density(), moab::ParallelComm::update_remote_data(), moab::ReorderTool::update_set_contents(), moab::NestedRefine::update_special_tags(), moab::Intx2MeshOnSphere::update_tracer_data(), upper_bound(), moab::vector_remove_range(), verdict_test1(), TreeValidator::visit(), moab::FBEngine::weave_lateral_face_from_edges(), moab::WriteHDF5::write_adjacencies(), MetisPartitioner::write_aggregationtag_partition(), moab::WriteVtk::write_bit_tag(), moab::WriteNCDF::write_elementblocks(), moab::WriteVtk::write_elems(), moab::WriteDamsel::write_entities(), moab::WriteCCMIO::write_external_faces(), moab::WriteSmf::write_file(), moab::WriteGmsh::write_file(), moab::WriteAns::write_file(), moab::WriteSLAC::write_file(), moab::WriteTemplate::write_file(), moab::WriteDamsel::write_file(), moab::WriteNCDF::write_file(), moab::Core::write_file(), write_file(), moab::WriteNCDF::write_global_node_order_map(), moab::WriteTemplate::write_matsets(), moab::WriteSLAC::write_matsets(), moab::WriteVtk::write_nodes(), moab::WriteCCMIO::write_nodes(), moab::ScdNCWriteHelper::write_nonset_variables(), MetisPartitioner::write_partition(), ZoltanPartitioner::write_partition(), moab::WriteNCDF::write_poly_faces(), moab::WriteHDF5::write_set_data(), moab::WriteHDF5::write_sets(), moab::WriteVtk::write_tag(), moab::WriteHDF5::write_var_len_data(), and moab::Tqdcfr::~Tqdcfr().

{
    return const_iterator( &mHead, mHead.first );
}
std::pair< Range::const_iterator, Range::const_iterator > moab::Range::equal_range ( EntityType  type) const

Definition at line 851 of file Range.cpp.

References begin(), moab::CREATE_HANDLE(), end(), and lower_bound().

Referenced by moab::ParallelComm::add_verts(), moab::VarLenSparseTag::find_entities_with_value(), moab::SparseTag::find_entities_with_value(), moab::ReadUtil::gather_related_ents(), generate_random_points(), moab::BitTag::get_entities_with_bits(), moab::BitTag::get_tagged(), moab::get_tagged(), moab::WriteHDF5::initialize_mesh(), subset_by_type(), and test_ghost_elements().

{
    std::pair< Range::const_iterator, Range::const_iterator > result;
    int err;
    EntityHandle handle = CREATE_HANDLE( type, 0, err );
    result.first        = err ? end() : lower_bound( begin(), end(), handle );
    // if (type+1) overflows, err will be true and we return end().
    handle        = CREATE_HANDLE( type + 1, 0, err );
    result.second = err ? end() : lower_bound( result.first, end(), handle );
    return result;
}

remove an item from this list and return an iterator to the next item

erases an item from this list and returns an iterator to the next item

Examples:
LaplacianSmoother.cpp.

Definition at line 354 of file Range.cpp.

References alloc_pair(), end(), free_pair(), moab::Range::PairNode::mNext, moab::Range::const_iterator::mNode, moab::Range::PairNode::mPrev, and moab::Range::const_iterator::mValue.

Referenced by MetisPartitioner::assemble_taggedsets_graph(), check_children(), moab::ParallelComm::check_clean_iface(), moab::DualTool::check_dual_equiv_edges(), check_identical_mesh(), moab::ParallelComm::check_my_shared_handles(), moab::Skinner::classify_2d_boundary(), contains_test(), moab::ReadCCMIO::create_cell_from_faces(), moab::ReadHDF5::delete_non_side_elements(), moab::GeomTopoTool::delete_obb_tree(), moab::ParallelComm::destroy_part(), moab::MeshTopoUtil::equivalent_entities(), erase(), erase_test(), moab::Skinner::find_skin_noadj(), moab::Skinner::find_skin_vertices_3D(), moab::DualTool::foc_delete_dual(), moab::DualTool::foc_get_addl_ents(), moab::DualTool::foc_get_ents(), moab::DualTool::fsr_get_fourth_quad(), moab::WriteVtk::gather_mesh(), generate_random_points(), moab::GeomTopoTool::geometrize_surface_set(), moab::get_adjacencies_intersection(), moab::MeshTopoUtil::get_bridge_adjacencies(), moab::ParallelComm::get_interface_sets(), moab::WriteTemplate::get_neuset_elems(), moab::WriteSLAC::get_neuset_elems(), moab::WriteCCMIO::get_neuset_elems(), moab::ReorderTool::get_new_handles(), moab::ReadHDF5::get_partition(), moab::WriteNCDF::get_sideset_elems(), moab::Core::get_vertices(), moab::ReorderTool::handle_order_from_int_tag(), hcFilter(), identify_set(), moab::Intx2Mesh::intersect_meshes(), laplacianFilter(), mb_range_seq_intersect_test(), mb_topo_util_test(), merge_duplicate_vertices(), moab::MergeMesh::merge_higher_dimensions(), min_edge_length(), moab::DualTool::next_loop_vertex(), operator-=(), moab::DualTool::order_chord(), print_stats(), moab::ReadHDF5::read_set_ids_recursive(), moab::ReorderTool::reorder_tag_data(), moab::ParallelComm::resolve_shared_ents(), moab::ParallelComm::resolve_shared_sets(), moab::DualTool::rev_face_shrink(), moab::Core::serial_load_file(), moab::MeshTopoUtil::star_entities(), moab::MeshTopoUtil::star_entities_nonmanifold(), moab::MeshTopoUtil::star_next_entity(), moab::subtract(), moab::ParallelMergeMesh::TagSharedElements(), test_coords_connect_iterate(), test_get_by_tag_value_dense(), test_get_set(), test_get_set_variable_length(), test_ghost_elements(), test_ghost_tag_exchange(), test_read_nodes_common(), test_read_set_sets(), test_read_two_sets_elems(), test_tag_iterate_common(), moab::ReadNCDF::update(), and TreeValidator::visit().

{
    // one of a few things could happen
    // 1. shrink a range
    // 2. split a range
    // 3. remove a range

    if( iter == end() ) return end();

    // the iterator most likely to be returned
    iterator new_iter = iter;
    ++new_iter;

    PairNode* kter = iter.mNode;

    // just remove the range
    if( kter->first == kter->second )
    {
        kter->mNext->mPrev = kter->mPrev;
        kter->mPrev->mNext = kter->mNext;
        free_pair( kter );
        return new_iter;
    }
    // shrink it
    else if( kter->first == iter.mValue )
    {
        kter->first++;
        return new_iter;
    }
    // shrink it the other way
    else if( kter->second == iter.mValue )
    {
        kter->second--;
        return new_iter;
    }
    // split the range
    else
    {
        PairNode* new_node     = alloc_pair( iter.mNode->mNext, iter.mNode, iter.mValue + 1, kter->second );
        new_node->mPrev->mNext = new_node->mNext->mPrev = new_node;
        iter.mNode->second                              = iter.mValue - 1;
        new_iter                                        = const_iterator( new_node, new_node->first );
        return new_iter;
    }
}

remove a range of items from the list

Definition at line 401 of file Range.cpp.

References alloc_pair(), delete_pair_node(), mHead, moab::Range::PairNode::mNext, moab::Range::const_iterator::mNode, moab::Range::PairNode::mPrev, and moab::Range::const_iterator::mValue.

{
    iterator result;

    if( iter1.mNode == iter2.mNode )
    {
        if( iter2.mValue <= iter1.mValue )
        {
            // empty range OK, otherwise invalid input
            return iter2;
        }

        // If both iterators reference the same pair node, then
        // we're either removing values from the front of the
        // node or splitting the node.  We can never be removing
        // the last value in the node in this case because iter2
        // points *after* the last entry to be removed.

        PairNode* node = iter1.mNode;
        if( iter1.mValue == node->first )
        {
            node->first = iter2.mValue;
            result      = iter2;
        }
        else
        {
            PairNode* new_node     = alloc_pair( node->mNext, node, iter2.mValue, node->second );
            new_node->mNext->mPrev = new_node;
            new_node->mPrev->mNext = new_node;
            node->second           = iter1.mValue - 1;
            result                 = iterator( new_node, new_node->first );
        }
    }
    else
    {
        if( iter1.mNode == &mHead ) return iter1;
        PairNode* dn = iter1.mNode;
        if( iter1.mValue > dn->first )
        {
            dn->second = iter1.mValue - 1;
            dn         = dn->mNext;
        }
        if( iter2.mNode != &mHead ) iter2.mNode->first = iter2.mValue;
        while( dn != iter2.mNode )
        {
            PairNode* dead = dn;
            dn             = dn->mNext;

            dead->mPrev->mNext = dead->mNext;
            dead->mNext->mPrev = dead->mPrev;
            // dead->mPrev = dead->mNext = 0;
            delete_pair_node( dead );
        }

        result = iter2;
    }

    return result;
}

erases a value from this container

Definition at line 889 of file Range.hpp.

References erase(), and find().

{
    return erase( find( val ) );
}

find an item int the list and return an iterator at that value

finds a value in the list. this method is preferred over other algorithms because it can be found faster this way.

Definition at line 500 of file Range.cpp.

References end(), mHead, and moab::Range::PairNode::mNext.

Referenced by moab::Core::check_adjacencies(), check_children(), moab::DualTool::check_dual_adjs(), moab::AEntityFactory::check_equiv_entities(), moab::Skinner::classify_2d_boundary(), moab::FBEngine::compute_intersection_points(), smoab::CellSet::contains(), moab::GeomTopoTool::duplicate_model(), erase(), FBiGeom_getEnt2ndAdj(), moab::Skinner::find_skin_noadj(), moab::ReadUtil::gather_related_ents(), moab::GeomTopoTool::geometrize_surface_set(), moab::FBEngine::getAdjacentEntities(), moab::FBEngine::getEntType(), ZoltanPartitioner::include_closure(), moab::Intx2Mesh::intersect_meshes(), moab::GeomTopoTool::is_owned_set(), moab::FBEngine::isEntAdj(), merge_duplicate_vertices(), moab::HiReconstruction::obtain_nring_ngbvs(), moab::ParallelComm::pack_entities(), moab::WriteHDF5Parallel::remove_remote_entities(), moab::WriteHDF5Parallel::remove_remote_sets(), moab::FBEngine::separate(), moab::ParallelComm::settle_intersection_points(), moab::FBEngine::split_boundary(), moab::DualTool::split_pair_nonmanifold(), subtract_test(), swap_test(), test_read_nodes_common(), test_read_nothing_common(), test_read_set_sets(), test_read_two_sets_elems(), moab::DualTool::traverse_hyperplane(), tri_in_set(), moab::vector_remove_range(), moab::FBEngine::weave_lateral_face_from_edges(), and moab::WriteSLAC::write_matsets().

{
    // iterator through the list
    PairNode* iter = mHead.mNext;
    for( ; iter != &mHead && ( val > iter->second ); iter = iter->mNext )
        ;
    return ( ( iter->second >= val ) && ( iter->first <= val ) ) ? const_iterator( iter, val ) : end();
}
const EntityHandle & moab::Range::front ( ) const [inline]

get first entity in range

Definition at line 905 of file Range.hpp.

References mHead, and moab::Range::PairNode::mNext.

Referenced by add_dead_elems_to_impl_compl(), all_of_dimension(), all_of_type(), moab::ReadMCNP5::average_with_existing_tally(), check_children(), check_geometric_set(), check_num_verts(), moab::MeshTag::clear_data(), moab::OrientedBoxTreeTool::closest_to_location(), moab::ReadIDEAS::create_elements(), moab::ReadHDF5::delete_non_side_elements(), moab::GeomTopoTool::entity_by_id(), erase_test(), find_sideset(), moab::Skinner::find_skin_vertices(), fix_surface_senses(), moab::WriteNCDF::gather_mesh_information(), moab::WriteUtil::gather_nodes_from_elements(), moab::MeshTag::get_data(), moab::ParallelComm::get_part_handle(), moab::ReadHDF5::get_partition(), moab::ReadHDF5::insert_in_id_map(), moab::Intx2Mesh::intersect_meshes(), main(), make_mesh(), mb_common_tag_test(), mb_merge_update_test(), mb_mesh_set_appends(), mb_mesh_set_flag_test(), mb_skin_curve_test_common(), mb_skin_poly_test(), mb_skin_reversed_common(), mb_skin_surface_test_common(), mb_type_is_maxtype_test(), mb_vertex_coordinate_test(), orient_faces_outward(), overlap_test_measure_volume(), overlap_test_point_in_volume(), overlap_test_ray_fire(), overlap_test_surface_sense(), overlap_test_tracking(), pop_front(), moab::ReadHDF5::read_elems(), moab::ReadHDF5VarLen::read_offsets(), read_sets(), smoab::DataSetConverter::readProperties(), regression_one_entity_by_var_tag(), moab::MeshTag::remove_data(), replace_faceted_cgm_surfs(), moab::GeomTopoTool::resize_rootSets(), moab::GeomTopoTool::restore_topology_from_adjacency(), moab::MeshTag::set_data(), moab::GeomTopoTool::setup_implicit_complement(), moab::OrientedBoxTreeTool::sphere_intersect_triangles(), subset_by_dimension_test(), test_bc_sets(), test_blocks(), test_closest_to_location(), test_delete_bit_data(), test_delete_obb_tree(), test_delete_tag_data(), test_delete_type_tag(), test_get_by_tag_value_dense(), test_get_ents_with_default_value(), test_iterates(), test_list_set_with_stale_handles(), test_measure_volume(), test_moab_v3_poly_format(), test_pack_elements(), test_pack_higher_order(), test_pack_poly(), test_pack_set_contents(), test_pack_sets_of_sets(), test_pack_sets_simple(), test_pack_tag_data_default_value(), test_point_in_volume(), test_ranged_set_with_stale_handles(), test_ray_fire(), test_read_adjacencies(), test_read_alternate_coord_format(), test_read_elements_common(), test_read_geom_set(), test_read_material_on_nodes(), test_read_material_set(), test_read_material_set1(), test_read_material_set2(), test_read_physical_set(), test_read_set_sets(), test_read_two_sets_elems(), test_restore_obb_trees(), test_set_flags(), test_surface_sense(), test_tree(), test_tree_readwrite(), test_var_length_big_data(), test_write_shared_sets(), and test_write_unbalanced().

{
    return mHead.mNext->first;
}
unsigned long moab::Range::get_memory_use ( ) const

Definition at line 981 of file Range.cpp.

References mHead, and moab::Range::PairNode::mNext.

Referenced by compactness().

{
    unsigned long result = 0;
    for( const PairNode* n = mHead.mNext; n != &mHead; n = n->mNext )
        result += sizeof( PairNode );
    return result;
}
int moab::Range::index ( EntityHandle  handle) const [inline]
Examples:
ExtrudePoly.cpp, and LaplacianSmoother.cpp.

Definition at line 934 of file Range.hpp.

References begin(), const_pair_begin(), const_pair_end(), and rbegin().

Referenced by MetisPartitioner::assemble_graph(), moab::NestedRefine::construct_hm_1D(), moab::NestedRefine::construct_hm_2D(), moab::TempestRemapper::convert_mesh_to_tempest_private(), moab::TempestRemapper::convert_overlap_mesh_sorted_by_source(), create_fine_mesh(), moab::NCHelperMPAS::create_local_cells(), moab::ParallelComm::create_part(), moab::ParallelComm::delete_entities(), moab::ParallelComm::destroy_part(), moab::HalfFacetRep::determine_incident_halfedges(), moab::HalfFacetRep::determine_sibling_halfedges(), moab::HalfFacetRep::determine_sibling_halffaces(), moab::HalfFacetRep::determine_sibling_halfverts(), fill_coord_on_edges(), moab::HalfFacetRep::find_total_edges_2d(), moab::HalfFacetRep::find_total_edges_faces_3d(), moab::Intx2MeshInPlane::findNodes(), moab::IntxRllCssphere::findNodes(), moab::Intx2MeshOnSphere::findNodes(), moab::HiReconstruction::get_fittings_data(), moab::HiReconstruction::get_normals_surf(), moab::HiReconstruction::get_tangents_curve(), hcFilter(), moab::HiReconstruction::hiproj_walf_around_vertex(), moab::HiReconstruction::hiproj_walf_in_element(), iMOAB_GetBlockElementConnectivities(), iMOAB_GetElementConnectivity(), iMOAB_GetElementID(), iMOAB_GetNeighborElements(), iMOAB_GetPointerToSurfaceBC(), iMOAB_GetPointerToVertexBC(), iMOAB_GetVisibleElementsInfo(), laplacianFilter(), main(), moab::HalfFacetRep::mark_halfedges(), moab::NestedRefine::parent_to_child(), moab::HiReconstruction::polyfit3d_walf_curve_vertex(), moab::HiReconstruction::polyfit3d_walf_surf_vertex(), moab::HiReconstruction::reconstruct3D_curve_geom(), moab::HiReconstruction::reconstruct3D_surf_geom(), update_density(), moab::NestedRefine::update_global_ahf_3D(), moab::Intx2MeshOnSphere::update_tracer_data(), moab::WriteNCDF::write_elementblocks(), and moab::WriteVtk::write_elems().

{
    if( handle < *begin() || handle > *rbegin() ) return -1;

    unsigned int i                 = 0;
    Range::const_pair_iterator pit = const_pair_begin();
    while( handle > ( *pit ).second && pit != const_pair_end() )
    {
        i += ( *pit ).second - ( *pit ).first + 1;
        ++pit;
    }
    if( handle < ( *pit ).first || pit == const_pair_end() ) return -1;

    return i + handle - ( *pit ).first;
}

inserts a single value into this range

Examples:
LaplacianSmoother.cpp, LloydRelaxation.cpp, and QuadTriConv.cpp.

Definition at line 219 of file Range.cpp.

References alloc_pair(), end(), free_pair(), mHead, moab::Range::PairNode::mNext, moab::Range::const_iterator::mNode, and moab::Range::PairNode::mPrev.

Referenced by moab::ReadSms::add_entities(), moab::GeomTopoTool::add_geo_set(), moab::SharedSetData::append_local_handles(), moab::ParallelComm::assign_global_ids(), moab::ReadUtil::assign_ids(), moab::DualTool::atomic_pillow(), moab::FBEngine::BreakTriangle2(), moab::MeshGeneration::BrickInstance(), moab::ReadRTT::build_moab(), build_triangles(), moab::ParallelComm::check_clean_iface(), moab::DualTool::check_dual_equiv_edges(), moab::ParallelComm::check_my_shared_handles(), check_order_by_sets_and_adj(), moab::ParallelComm::check_sent_ents(), check_set_contents(), moab::Skinner::classify_2d_boundary(), moab::MeshTopoUtil::common_entity(), moab::WriteHDF5Parallel::communicate_shared_set_ids(), moab::TempestRemapper::ComputeOverlapMesh(), const_pair_iterator_test(), moab::DualTool::construct_dual_cells(), moab::DualTool::construct_dual_edges(), moab::DualTool::construct_dual_faces(), moab::DualTool::construct_dual_vertices(), moab::DualTool::construct_hp_parent_child(), moab::GeomTopoTool::construct_obb_tree(), moab::GeomTopoTool::construct_obb_trees(), moab::TempestRemapper::ConstructCoveringSet(), moab::DamselUtil::container_to_range(), contains_test(), moab::Tqdcfr::convert_nodesets_sidesets(), moab::ReadHDF5::convert_range_to_handle(), moab::convert_to_ranged_ids(), moab::BVHTree::convert_tree(), moab::copy_set_contents(), moab::copy_sorted_file_ids(), moab::ReadGmsh::create_elements(), moab::NCHelperMPAS::create_gather_set_cells(), moab::ReadABAQUS::create_instance_of_part(), moab::ParallelComm::create_interface_sets(), moab::NCHelperMPAS::create_local_cells(), moab::NCHelperDomain::create_mesh(), moab::NCHelperHOMME::create_mesh(), moab::ScdNCHelper::create_mesh(), moab::FBEngine::create_new_gedge(), moab::NCHelperGCRM::create_padded_local_cells(), moab::NCHelperMPAS::create_padded_local_cells(), moab::ParallelComm::create_part(), create_patch(), moab::ScdInterface::create_scd_sequence(), moab::ReadGmsh::create_sets(), moab::ReadTemplate::create_sets(), create_shared_grid_3d(), moab::SpectralMeshTool::create_spectral_elems(), moab::ReadCGM::create_surface_facets(), moab::ReadOBJ::create_tri_faces(), moab::ReadIDEAS::create_vertices(), moab::Core::create_vertices(), moab::DualTool::delete_dual_entities(), moab::Core::delete_entities(), moab::ParallelComm::delete_entities(), moab::ReadHDF5::delete_non_side_elements(), moab::ReadParallel::delete_nonlocal_entities(), moab::GeomTopoTool::delete_obb_tree(), moab::FBEngine::divide_triangle(), do_file(), moab::GeomTopoTool::duplicate_model(), erase_test(), moab::Core::estimated_memory_use(), moab::DualTool::face_shrink(), FBiGeom_getEnt2ndAdj(), moab::ParallelComm::filter_pstatus(), moab::ScdInterface::find_boxes(), moab::Skinner::find_geometric_skin(), moab::Skinner::find_inferred_edges(), moab::find_map_values(), moab::ReadHDF5::find_sets_containing(), moab::Skinner::find_skin_noadj(), moab::Skinner::find_skin_vertices_1D(), moab::Skinner::find_skin_vertices_2D(), moab::Skinner::find_skin_vertices_3D(), moab::find_tag_values(), smoab::Interface::findDetachedEntities(), smoab::Interface::findEntitiesWithMultipleParents(), smoab::Interface::findEntitiesWithTag(), smoab::Interface::findEntityRootParents(), smoab::ExtractShell::findSkins(), moab::DualTool::foc_delete_dual(), moab::DualTool::foc_get_ents(), moab::DualTool::fs_get_quad_loops(), moab::DualTool::fsr_get_fourth_quad(), moab::WriteSLAC::gather_interior_exterior(), moab::WriteVtk::gather_mesh(), moab::WriteHDF5::gather_mesh_info(), moab::WriteUtil::gather_nodes_from_elements(), moab::ReadUtil::gather_related_ents(), gather_related_test(), moab::TempestRemapper::GenerateMeshMetadata(), moab::GeomTopoTool::geometrize_surface_set(), moab::get_adjacencies_union(), moab::MeshTopoUtil::get_bridge_adjacencies(), get_by_all_types_and_tag(), moab::DualTool::get_cell_points(), get_children_by_dimension(), moab::Core::get_connectivity(), moab::ReadDamsel::get_contents(), moab::GeomTopoTool::get_ct_children_by_dimension(), moab::AEntityFactory::get_down_adjacency_elements_poly(), moab::DualTool::get_dual_entities(), moab::ReadABAQUS::get_elements_by_id(), moab::MeshSet::get_entities(), moab::ReorderTool::get_entities(), moab::TypeSequenceManager::get_entities(), moab::MeshSet::get_entities_by_dimension(), moab::MeshSet::get_entities_by_type(), get_ghost_entities(), moab::DualTool::get_graphics_points(), moab::MeshTopoUtil::get_manifold(), moab::ReadABAQUS::get_nodes_by_id(), moab::MeshSet::get_non_set_entities(), moab::ParallelComm::get_pstatus_entities(), moab::DenseTag::get_tagged_entities(), moab::ReadHDF5::get_tagged_entities(), smoab::getAllCells(), moab::TempestRemapper::GetOverlapAugmentedEntities(), smoab::getParents(), moab::IntxUtils::global_gnomonic_projection(), heappermute(), iMesh_createEnt(), iMesh_createStructuredMesh(), iMOAB_DeregisterApplication(), insert(), insert_hint_test(), insert_list(), moab::intersect(), moab::AdaptiveKDTree::intersect_children_with_elems(), moab::Intx2Mesh::intersect_meshes(), intersect_test(), moab::ReadParallel::load_file(), moab::ReadHDF5::load_file_impl(), main(), make_tris_from_quads(), mb_adjacent_vertex_test(), mb_memory_use_test(), mb_mesh_set_appends(), mb_mesh_set_set_replace_test(), mb_poly_test(), mb_range_seq_intersect_test(), mb_root_set_test(), mb_skin_curve_test_common(), mb_skin_full_common(), mb_skin_higher_order_faces_common(), mb_skin_higher_order_pyramids(), mb_skin_higher_order_regions_common(), mb_skin_poly_test(), mb_skin_reversed_common(), mb_skin_subset_common(), mb_skin_verts_common(), mb_skin_volume_test_common(), mb_split_test(), mb_topo_util_test(), mb_type_is_maxtype_test(), mb_vertex_coordinate_test(), mb_write_mesh_test(), merge(), moab::MergeMesh::merge_entities(), moab::MergeMesh::merge_higher_dimensions(), moab::merge_ranged_ids(), merge_test(), moab::DualTool::next_loop_vertex(), moab::HiReconstruction::obtain_nring_ngbvs(), smoab::detail::internal::key_inserter::operator=(), moab::range_inserter::operator=(), parallel_create_mesh(), ZoltanPartitioner::partition_owned_cells(), perform_laplacian_smoothing(), perform_lloyd_relaxation(), moab::LloydSmoother::perform_smooth(), moab::AdaptiveKDTree::print(), print_stats(), moab::print_type_sets(), moab::ReadDamsel::process_ent_info(), process_partition_file(), moab::ReadHDF5::read_dense_tag(), moab::ReadTetGen::read_elem_file(), moab::ReadTemplate::read_elements(), moab::ReadNCDF::read_elements(), moab::ReadHDF5::read_elems(), McnpData::read_mcnpfile(), moab::ReadHDF5::read_node_adj_elems(), moab::ReadTetGen::read_node_file(), moab::ReadNCDF::read_nodes(), moab::ReadHDF5VarLen::read_offsets(), moab::ReadHDF5::read_set_data(), moab::ReadHDF5::read_sparse_tag_indices(), moab::ReadHDF5::read_tag_values_partial(), moab::ReadTemplate::read_vertices(), moab::MeshSetSequence::recursive_get_sets(), regression_insert_set_1(), regression_mmiller_8_2010(), regression_tag_on_nonexistent_entity(), moab::IntxUtils::remove_duplicate_vertices(), remove_entities_from_sets(), moab::WriteHDF5Parallel::remove_remote_entities(), moab::WriteHDF5Parallel::remove_remote_sets(), moab::ParallelComm::resolve_shared_sets(), moab::DualTool::rev_atomic_pillow(), moab::DualTool::rev_face_shrink(), moab::BitPage::search(), moab::GeomTopoTool::separate_by_dimension(), moab::ReadHDF5Dataset::set_all_file_ids(), moab::Core::side_element(), moab::Skinner::skin_box(), moab::split_box(), moab::MeshTopoUtil::split_entities_manifold(), moab::MeshTopoUtil::split_entity_nonmanifold(), moab::FBEngine::split_internal_edge(), moab::ParCommGraph::split_owned_range(), moab::DualTool::split_pair_nonmanifold(), moab::FBEngine::split_surface_with_direction(), moab::MeshTopoUtil::star_next_entity(), moab::ReadHDF5::store_file_ids(), moab::ReadCGM::store_group_content(), moab::ReadHDF5::store_sets_file_ids(), subset_by_dimension(), subset_by_dimension_test(), subset_by_type(), subtract_test(), swap_test(), tag_depth(), moab::ParallelComm::tag_iface_entities(), moab::ScdInterface::tag_shared_vertices(), test_add_entities(), test_bit_tag_big(), test_build_from_pts(), test_build_from_tri(), test_coords_connect_iterate(), test_delete_tag_data(), test_elements_on_several_procs(), test_entities_by_dimension(), test_entities_by_type(), test_filter_pstatus(), test_get_ents_with_default_value(), test_get_set(), test_get_set_variable_length(), test_ghost_elements(), test_ghost_tag_exchange(), test_intersect(), test_iterates(), test_iterators(), test_pack_elements(), test_pack_higher_order(), test_pack_poly(), test_pack_set_contents(), test_pack_set_parent_child(), test_pack_sets_of_sets(), test_pack_sets_simple(), test_packing(), test_remove_entities(), test_shared_sets(), test_subtract(), test_tag_iterate_common(), test_unite(), test_write_unbalanced(), moab::DualTool::traverse_hyperplane(), moab::unite(), moab::UNPACK_RANGE(), moab::ParallelComm::unpack_sets(), moab::ReadNCDF::update(), moab::ReorderTool::update_set_contents(), moab::ReadVtk::vtk_read_polydata(), moab::ReadVtk::vtk_read_rectilinear_grid(), moab::ReadVtk::vtk_read_structured_grid(), moab::ReadVtk::vtk_read_structured_points(), moab::ReadVtk::vtk_read_unstructured_grid(), MetisPartitioner::write_aggregationtag_partition(), moab::WriteCCMIO::write_cells_and_faces(), moab::WriteGmsh::write_file(), MetisPartitioner::write_partition(), ZoltanPartitioner::write_partition(), moab::WriteHDF5::write_set_data(), and moab::IODebugTrack::~IODebugTrack().

{
    // don't allow zero-valued handles in Range
    if( val == 0 ) return end();

    // if this is empty, just add it and return an iterator to it
    if( &mHead == mHead.mNext )
    {
        mHead.mNext = mHead.mPrev = alloc_pair( &mHead, &mHead, val, val );
        return iterator( mHead.mNext, val );
    }

    // find the location in the list where we can safely insert
    // new items and keep it ordered
    PairNode* hter = hint.mNode;
    PairNode* jter = hter->first <= val ? hter : mHead.mNext;
    for( ; ( jter != &mHead ) && ( jter->second < val ); jter = jter->mNext )
        ;
    PairNode* iter = jter;
    jter           = jter->mPrev;

    // if this val is already in the list
    if( ( iter->first <= val && iter->second >= val ) && ( iter != &mHead ) )
    {
        // return an iterator pointing to this location
        return iterator( iter, val );
    }

    // one of a few things can happen at this point
    // 1. this range needs to be backwardly extended
    // 2. the previous range needs to be forwardly extended
    // 3. a new range needs to be added

    // extend this range back a bit
    else if( ( iter->first == ( val + 1 ) ) && ( iter != &mHead ) )
    {
        iter->first = val;
        // see if we need to merge two ranges
        if( ( iter != mHead.mNext ) && ( jter->second == ( val - 1 ) ) )
        {
            jter->second       = iter->second;
            iter->mPrev->mNext = iter->mNext;
            iter->mNext->mPrev = iter->mPrev;
            free_pair( iter );
            return iterator( jter, val );
        }
        else
        {
            return iterator( iter, val );
        }
    }
    // extend the previous range forward a bit
    else if( ( jter->second == ( val - 1 ) ) && ( iter != mHead.mNext ) )
    {
        jter->second = val;
        return iterator( jter, val );
    }
    // make a new range
    else
    {
        PairNode* new_node = alloc_pair( iter, iter->mPrev, val, val );
        iter->mPrev = new_node->mPrev->mNext = new_node;
        return iterator( new_node, val );
    }
}

insert an item into the list and return the iterator for the inserted item

Definition at line 248 of file Range.hpp.

References begin(), and insert().

    {
        return insert( begin(), val );
    }

insert a range of items into this list and return the iterator for the first inserted item

Definition at line 285 of file Range.cpp.

References alloc_pair(), end(), moab::GeomUtil::first(), free_pair(), mHead, moab::Range::PairNode::mNext, moab::Range::const_iterator::mNode, and moab::Range::PairNode::mPrev.

{
    if( val1 == 0 || val1 > val2 ) return end();

    // Empty
    if( mHead.mNext == &mHead )
    {
        assert( prev == end() );
        PairNode* new_node = alloc_pair( &mHead, &mHead, val1, val2 );
        mHead.mNext = mHead.mPrev = new_node;
        return iterator( mHead.mNext, val1 );
    }

    PairNode* iter = prev.mNode;
    // If iterator is at end, set it to last.
    // Thus if the hint was to append, we start searching
    // at the end of the list.
    if( iter == &mHead ) iter = mHead.mPrev;
    // if hint (prev) is past insert position, reset it to the beginning.
    if( iter != &mHead && iter->first > val2 + 1 ) iter = mHead.mNext;

    // If hint is bogus then search backwards
    while( iter != mHead.mNext && iter->mPrev->second >= val1 - 1 )
        iter = iter->mPrev;

    // Input range is before beginning?
    if( iter->mPrev == &mHead && val2 < iter->first - 1 )
    {
        PairNode* new_node = alloc_pair( iter, &mHead, val1, val2 );
        mHead.mNext = iter->mPrev = new_node;
        return iterator( mHead.mNext, val1 );
    }

    // Find first intersecting list entry, or the next entry
    // if none intersects.
    while( iter != &mHead && iter->second + 1 < val1 )
        iter = iter->mNext;

    // Need to insert new pair (don't intersect any existing pair)?
    if( iter == &mHead || iter->first - 1 > val2 )
    {
        PairNode* new_node = alloc_pair( iter, iter->mPrev, val1, val2 );
        iter->mPrev = iter->mPrev->mNext = new_node;
        return iterator( iter->mPrev, val1 );
    }

    // Make the first intersecting pair the union of itself with [val1,val2]
    if( iter->first > val1 ) iter->first = val1;
    if( iter->second >= val2 ) return iterator( iter, val1 );
    iter->second = val2;

    // Merge any remaining pairs that intersect [val1,val2]
    while( iter->mNext != &mHead && iter->mNext->first <= val2 + 1 )
    {
        PairNode* dead     = iter->mNext;
        iter->mNext        = dead->mNext;
        dead->mNext->mPrev = iter;

        if( dead->second > val2 ) iter->second = dead->second;
        free_pair( dead );
    }

    return iterator( iter, val1 );
}
iterator moab::Range::insert ( EntityHandle  val1,
EntityHandle  val2 
) [inline]

insert a range of items into this list and return the iterator for the first inserted item

Definition at line 259 of file Range.hpp.

References begin(), and insert().

    {
        return insert( begin(), val1, val2 );
    }
template<class T >
iterator moab::Range::insert ( typename T::const_iterator  begin_iter,
typename T::const_iterator  end_iter 
) [inline]

Definition at line 268 of file Range.hpp.

References insert_list().

    {
        return insert_list( begin_iter, end_iter );
    }
template<typename T >
iterator moab::Range::insert ( const T begin_iter,
const T end_iter 
) [inline]

Definition at line 274 of file Range.hpp.

References insert_list().

    {
        return insert_list( begin_iter, end_iter );
    }

merges another Range with this one

Definition at line 513 of file Range.cpp.

References insert(), moab::Range::PairNode::mNext, and moab::Range::const_iterator::mNode.

{
    if( begini == endi ) return;

    PairNode* node = begini.mNode;
    if( endi.mNode == node )
    {
        insert( *begini, ( *endi ) - 1 );
        return;
    }

    Range::iterator hint = insert( *begini, node->second );
    node                 = node->mNext;
    while( node != endi.mNode )
    {
        hint = insert( hint, node->first, node->second );
        node = node->mNext;
    }

    if( *endi > node->first )
    {
        if( *endi <= node->second )
            insert( hint, node->first, *(endi)-1 );
        else
            insert( hint, node->first, node->second );
    }
}
template<typename T >
iterator moab::Range::insert_list ( T  begin_iter,
T  end_iter 
)
template<typename Iterator >
Range::iterator moab::Range::insert_list ( Iterator  begin_iter,
Iterator  end_iter 
)

Definition at line 957 of file Range.hpp.

References begin(), insert(), and n.

{
    size_t n             = std::distance( begin_iter, end_iter );
    EntityHandle* sorted = new EntityHandle[n];
    std::copy( begin_iter, end_iter, sorted );
    std::sort( sorted, sorted + n );
    iterator hint = begin();
    size_t i      = 0;
    while( i < n )
    {
        size_t j = i + 1;
        while( j < n && sorted[j] == 1 + sorted[j - 1] )
            ++j;
        hint = insert( hint, sorted[i], sorted[i] + ( ( j - i ) - 1 ) );
        i    = j;
    }
    delete[] sorted;
    return hint;
}

return an iterator to the first value >= val

Definition at line 793 of file Range.cpp.

References moab::Range::PairNode::mNext, and moab::Range::const_iterator::mNode.

Referenced by MetisPartitioner::assemble_taggedsets_graph(), moab::AxisBox::calculate(), moab::OrientedBox::compute_from_vertices(), moab::OrientedBox::covariance_data_from_tris(), moab::ReadHDF5::delete_non_side_elements(), equal_range(), moab::ParallelComm::estimate_ents_buffer_size(), moab::ParallelComm::estimate_sets_buffer_size(), moab::DenseTag::find_entities_with_value(), moab::VarLenDenseTag::find_entities_with_value(), moab::WriteVtk::gather_mesh(), moab::ReadHDF5::get_partition(), moab::ParallelComm::get_shared_entities(), identify_set(), iMesh_createStructuredMesh(), moab::intersect(), moab::AdaptiveKDTree::intersect_children_with_elems(), moab::ReadHDF5::load_file_partial(), moab::WriteGMV::local_write_mesh(), lower_bound(), main(), mb_range_seq_intersect_test(), min_edge_length(), moab::ParallelComm::pack_entities(), moab::ReadHDF5::read_set_ids_recursive(), moab::ReadHDF5::read_tag_values_partial(), moab::WriteHDF5Parallel::remove_remote_entities(), moab::ParallelComm::resolve_shared_ents(), moab::ParallelComm::resolve_shared_sets(), subset_by_dimension(), moab::ParallelMergeMesh::TagSharedElements(), moab::BoundBox::update(), upper_bound(), and TreeValidator::visit().

{
    // Find the first pair whose end is >= val
    PairNode* iter;
    for( iter = first.mNode; iter != last.mNode; iter = iter->mNext )
    {
        if( iter->second >= val )
        {
            // This is the correct pair.  Either 'val' is in the range, or
            // the range starts before 'val' and iter->first IS the lower_bound.
            if( iter->first > val ) return const_iterator( iter, iter->first );
            return const_iterator( iter, val );
        }
    }

    if( iter->first >= val )
        return const_iterator( iter, iter->first );
    else if( *last > val )
        return const_iterator( iter, val );
    else
        return last;
}

Definition at line 304 of file Range.hpp.

References begin(), end(), and lower_bound().

    {
        return lower_bound( begin(), end(), val );
    }
Range::const_iterator moab::Range::lower_bound ( EntityType  type) const

Definition at line 823 of file Range.cpp.

References begin(), moab::CREATE_HANDLE(), end(), and lower_bound().

{
    int err;
    EntityHandle handle = CREATE_HANDLE( type, 0, err );
    return err ? end() : lower_bound( begin(), end(), handle );
}
Range::const_iterator moab::Range::lower_bound ( EntityType  type,
const_iterator  first 
) const

Definition at line 829 of file Range.cpp.

References moab::CREATE_HANDLE(), end(), and lower_bound().

{
    int err;
    EntityHandle handle = CREATE_HANDLE( type, 0, err );
    return err ? end() : lower_bound( first, end(), handle );
}
void moab::Range::merge ( const Range range) [inline]

merges this Range with another range

Examples:
ComputeTriDual.cpp, DeformMeshRemap.cpp, and ReduceExchangeTags.cpp.

Definition at line 344 of file Range.hpp.

References begin(), end(), and insert().

Referenced by moab::DualTool::atomic_pillow(), moab::MeshGeneration::BrickInstance(), moab::AdaptiveKDTree::build_tree(), moab::AxisBox::calculate(), moab::ParallelComm::check_my_shared_handles(), moab::WriteHDF5Parallel::communicate_shared_set_data(), compute_dual_mesh(), moab::DualTool::construct_dual_faces(), moab::TempestRemapper::convert_tempest_mesh_private(), create_int_ents(), moab::NCHelperHOMME::create_mesh(), DeformMeshRemap::deform_master(), do_file(), dot_get_sets(), moab::WriteHDF5Parallel::exchange_file_ids(), moab::ParallelComm::exchange_owned_mesh(), DeformMeshRemap::execute(), FBiGeom_getArrAdj(), moab::Skinner::find_skin(), moab::Skinner::find_skin_scd(), moab::Skinner::find_skin_vertices_3D(), moab::DualTool::foc_delete_dual(), moab::DualTool::foc_get_addl_ents(), moab::WriteHDF5Parallel::gather_interface_meshes(), moab::WriteVtk::gather_mesh(), moab::WriteHDF5::gather_mesh_info(), moab::ReadUtil::gather_related_ents(), moab::MeshTopoUtil::get_bridge_adjacencies(), moab::Core::get_connectivity(), get_entities(), moab::Core::get_entities_by_type_and_tag(), get_ents_from_geometric_sets(), moab::ParallelComm::get_ghosted_entities(), moab::MeshTopoUtil::get_manifold(), moab::ParallelComm::get_part_entities(), moab::ParallelComm::get_sent_ents(), moab::ReadABAQUS::get_set_elements(), moab::ReadABAQUS::get_set_nodes(), moab::ParallelComm::get_shared_entities(), moab::WriteHDF5::get_sparse_tagged_entities(), moab::WriteHDF5::get_tag_data_length(), moab::WriteSTL::get_triangles(), moab::Core::get_vertices(), moab::WriteHDF5::get_write_entities(), moab::FBEngine::getEntities(), moab::TempestRemapper::GetOverlapAugmentedEntities(), identify_set(), iMesh_getEntsByTagsRec(), iMOAB_CreateElements(), iMOAB_CreateVertices(), moab::ReorderTool::int_order_from_sets_and_adj(), moab::intersect(), moab::Intx2Mesh::intersect_meshes(), moab::Intx2Mesh::intersect_meshes_kdtree(), moab::ReadHDF5::load_file_partial(), main(), mb_mesh_set_appends(), mb_skin_poly_test(), merge_duplicate_vertices(), merge_test(), obbvis_create(), pack_unpack_noremoteh(), moab::AdaptiveKDTree::print(), print_stats(), moab::Tqdcfr::read_block(), moab::ReadABAQUS::read_element_set(), DeformMeshRemap::read_file(), moab::ReadABAQUS::read_node_set(), moab::Tqdcfr::read_nodes(), moab::ReadHDF5::read_set_ids_recursive(), moab::ReadHDF5::read_sparse_tag(), moab::ReadHDF5::read_tag_values_partial(), moab::ReadCCMIO::read_vertices(), moab::ParCommGraph::receive_mesh(), regression_insert_set_1(), moab::WriteHDF5Parallel::remove_remote_entities(), report_iface_ents(), moab::GeomTopoTool::resize_rootSets(), moab::ParallelComm::resolve_shared_ents(), moab::ParallelComm::resolve_shared_sets(), moab::ParallelComm::send_entities(), moab::ParCommGraph::send_mesh_parts(), set_intersection_query(), moab::Skinner::skin_box(), skin_common(), moab::MeshTopoUtil::split_entities_manifold(), tag_time(), moab::ParallelMergeMesh::TagSharedElements(), test_boolean(), test_elements_on_several_procs(), test_ghost_elements(), test_pack_sets_simple(), test_valid_tree(), moab::WriteCCMIO::write_cells_and_faces(), moab::WriteVtk::write_elems(), moab::WriteGmsh::write_file(), moab::WriteHDF5::write_sparse_ids(), moab::WriteHDF5::write_tag_values(), moab::WriteVtk::write_tags(), and moab::WriteHDF5::write_var_len_indices().

    {
        insert( range.begin(), range.end() );
    }
void moab::Range::merge ( Range::const_iterator  beginr,
Range::const_iterator  endr 
) [inline]

merge a subset of some other range

Definition at line 350 of file Range.hpp.

References insert().

    {
        insert( beginr, endr );
    }
unsigned moab::Range::num_of_dimension ( int  dim) const
Examples:
HelloParMOAB.cpp.

Definition at line 895 of file Range.cpp.

References const_pair_begin(), const_pair_end(), moab::CREATE_HANDLE(), moab::CN::Dimension(), moab::GeomUtil::first(), MB_END_ID, moab::TYPE_FROM_HANDLE(), and moab::CN::TypeDimensionMap.

Referenced by main().

{
    const_pair_iterator iter = const_pair_begin();
    while( iter != const_pair_end() && CN::Dimension( TYPE_FROM_HANDLE( ( *iter ).second ) ) < dim )
        ++iter;

    int junk;
    unsigned count = 0;
    for( ; iter != const_pair_end(); ++iter )
    {
        int start_dim = CN::Dimension( TYPE_FROM_HANDLE( ( *iter ).first ) );
        int end_dim   = CN::Dimension( TYPE_FROM_HANDLE( ( *iter ).second ) );
        if( start_dim > dim ) break;

        EntityHandle sh = start_dim < dim ? CREATE_HANDLE( CN::TypeDimensionMap[dim].first, 1, junk ) : ( *iter ).first;
        EntityHandle eh =
            end_dim > dim ? CREATE_HANDLE( CN::TypeDimensionMap[dim].second, MB_END_ID, junk ) : ( *iter ).second;
        count += eh - sh + 1;
    }

    return count;
}
unsigned moab::Range::num_of_type ( EntityType  type) const

Definition at line 874 of file Range.cpp.

References const_pair_begin(), const_pair_end(), moab::ID_FROM_HANDLE(), MB_END_ID, and moab::TYPE_FROM_HANDLE().

Referenced by moab::ParallelComm::estimate_ents_buffer_size(), and test_pack_sets_simple().

{
    const_pair_iterator iter = const_pair_begin();
    while( iter != const_pair_end() && TYPE_FROM_HANDLE( ( *iter ).second ) < type )
        ++iter;

    unsigned count = 0;
    for( ; iter != const_pair_end(); ++iter )
    {
        EntityType start_type = TYPE_FROM_HANDLE( ( *iter ).first );
        EntityType end_type   = TYPE_FROM_HANDLE( ( *iter ).second );
        if( start_type > type ) break;

        EntityID sid = start_type < type ? 1 : ID_FROM_HANDLE( ( *iter ).first );
        EntityID eid = end_type > type ? MB_END_ID : ID_FROM_HANDLE( ( *iter ).second );
        count += eid - sid + 1;
    }

    return count;
}
Range & moab::Range::operator-= ( const Range rhs)

just like subtract, but as an operator

Definition at line 717 of file Range.cpp.

References alloc_pair(), begin(), const_pair_begin(), delete_pair_node(), end(), erase(), moab::Range::PairNode::mNext, moab::Range::PairNode::mPrev, moab::Range::pair_iterator::node(), and pair_begin().

{
    const bool braindead = false;

    if( braindead )
    {
        // brain-dead implementation right now
        Range res( *this );
        for( Range::const_iterator rit = range2.begin(); rit != range2.end(); ++rit )
            res.erase( *rit );

        return *this;
    }
    else
    {
        Range::pair_iterator r_it0       = this->pair_begin();
        Range::const_pair_iterator r_it1 = range2.const_pair_begin();

        // terminate the while loop when at least one "start" iterator is at the
        // end of the list
        while( r_it0 != this->end() && r_it1 != range2.end() )
        {
            // case a: pair wholly within subtracted pair
            if( r_it0->first >= r_it1->first && r_it0->second <= r_it1->second )
            {
                Range::PairNode* rtmp = r_it0.node();
                ++r_it0;
                this->delete_pair_node( rtmp );
            }
            // case b: pair overlaps upper part of subtracted pair
            else if( r_it0->first <= r_it1->second && r_it0->first >= r_it1->first )
            {
                r_it0->first = r_it1->second + 1;
                ++r_it1;
            }
            // case c: pair overlaps lower part of subtracted pair
            else if( r_it0->second >= r_it1->first && r_it0->second <= r_it1->second )
            {
                r_it0->second = r_it1->first - 1;
                ++r_it0;
            }
            // case d: pair completely surrounds subtracted pair
            else if( r_it0->first < r_it1->first && r_it0->second > r_it1->second )
            {
                Range::PairNode* new_node =
                    alloc_pair( r_it0.node(), r_it0.node()->mPrev, r_it0->first, r_it1->first - 1 );
                new_node->mPrev->mNext = new_node->mNext->mPrev = new_node;
                r_it0.node()->first                             = r_it1->second + 1;
                ++r_it1;
            }
            else
            {
                while( r_it0->second < r_it1->first && r_it0 != this->end() )
                    ++r_it0;
                if( r_it0 == this->end() ) break;
                while( r_it1->second < r_it0->first && r_it1 != range2.end() )
                    ++r_it1;
            }
        }
        return *this;
    }
}
Range & moab::Range::operator= ( const Range copy)

operator=

Definition at line 200 of file Range.cpp.

References alloc_pair(), clear(), mHead, moab::Range::PairNode::mNext, and moab::Range::PairNode::mPrev.

{
    clear();
    const PairNode* copy_node = copy.mHead.mNext;
    PairNode* new_node        = &mHead;
    for( ; copy_node != &( copy.mHead ); copy_node = copy_node->mNext )
    {
        PairNode* tmp_node     = alloc_pair( new_node->mNext, new_node, copy_node->first, copy_node->second );
        new_node->mNext->mPrev = tmp_node;
        new_node->mNext        = tmp_node;
        new_node               = tmp_node;
    }
    return *this;
}
EntityHandle moab::Range::operator[] ( EntityID  index) const [inline]

Definition at line 927 of file Range.hpp.

References begin().

{
    Range::const_iterator i = begin();
    i += indexp;
    return *i;
}

Definition at line 754 of file Range.hpp.

References mHead, and moab::Range::PairNode::mNext.

    {
        return const_pair_iterator( mHead.mNext );
    }

Definition at line 758 of file Range.hpp.

References mHead.

    {
        return const_pair_iterator( &mHead );
    }

remove last entity from range

Definition at line 484 of file Range.cpp.

References back(), delete_pair_node(), mHead, and moab::Range::PairNode::mPrev.

Referenced by moab::DualTool::delete_dual_entities(), MetisPartitioner::write_aggregationtag_partition(), MetisPartitioner::write_partition(), and ZoltanPartitioner::write_partition().

{
    EntityHandle retval = back();
    if( mHead.mPrev->first == mHead.mPrev->second )  // need to remove pair from range
        delete_pair_node( mHead.mPrev );
    else
        --( mHead.mPrev->second );  // otherwise just adjust end value of pair

    return retval;
}

remove first entity from range

Definition at line 472 of file Range.cpp.

References delete_pair_node(), front(), mHead, and moab::Range::PairNode::mNext.

Referenced by moab::GeomTopoTool::insert_in_tree(), and test_read_nodes_common().

{
    EntityHandle retval = front();
    if( mHead.mNext->first == mHead.mNext->second )  // need to remove pair from range
        delete_pair_node( mHead.mNext );
    else
        ++( mHead.mNext->first );  // otherwise just adjust start value of pair

    return retval;
}
void moab::Range::print ( std::ostream &  s,
const char *  indent_prefix = NULL 
) const

Definition at line 599 of file Range.cpp.

References str_rep().

{
    stream << str_rep( indent_prefix );
}

return the beginning const reverse iterator of this range

Examples:
DeformMeshRemap.cpp.

Definition at line 864 of file Range.hpp.

References mHead, and moab::Range::PairNode::mPrev.

Referenced by moab::SpatialLocator::add_elems(), MetisPartitioner::assemble_taggedsets_graph(), moab::DualTool::atomic_pillow(), moab::ParallelComm::check_clean_iface(), moab::WriteHDF5Parallel::communicate_shared_set_ids(), SphereDecomp::compute_nodes(), moab::ParCommGraph::compute_partition(), moab::DualTool::construct_dual_cells(), moab::DualTool::construct_dual_edges(), moab::DualTool::construct_dual_faces(), moab::DualTool::construct_dual_vertices(), moab::ParallelComm::create_iface_pc_links(), moab::SpatialLocator::create_tree(), moab::DataCoupler::DataCoupler(), moab::Core::delete_entities(), moab::DualTool::delete_whole_dual(), DeformMeshRemap::find_other_sets(), moab::DualTool::foc_get_ents(), get_ents(), index(), moab::OrientedBoxTreeTool::join_trees(), moab::WriteGMV::local_write_mesh(), moab::SpatialLocator::locate_points(), moab::DualTool::next_loop_vertex(), moab::GeomTopoTool::other_entity(), moab::ParallelComm::pack_entities(), ZoltanPartitioner::partition_owned_cells(), moab::LloydSmoother::perform_smooth(), moab::ReadTemplate::read_elements(), DeformMeshRemap::read_file(), moab::Tqdcfr::read_nodes(), moab::ParallelComm::resolve_shared_ents(), moab::DualTool::rev_atomic_pillow(), moab::ParallelComm::set_pstatus_entities(), moab::SpatialLocator::SpatialLocator(), moab::split_box(), moab::MeshTopoUtil::split_entities_manifold(), tag_depth(), moab::ParallelMergeMesh::TagSharedElements(), test_bit_tag_big(), test_filter_pstatus(), test_root_sets_resize(), moab::ParallelComm::unpack_sets(), moab::WriteCCMIO::write_external_faces(), and moab::WriteGmsh::write_file().

{
    return const_reverse_iterator( mHead.mPrev, mHead.mPrev->second );
}
void moab::Range::sanity_check ( ) const

check for internal consistency

Definition at line 544 of file Range.cpp.

References empty(), mHead, moab::Range::PairNode::mNext, and moab::Range::PairNode::mPrev.

{
    if( empty() ) return;

    const PairNode* node = mHead.mNext;
    std::vector< const PairNode* > seen_before;
    bool stop_it = false;

    for( ; stop_it == false; node = node->mNext )
    {
        // have we seen this node before?
        assert( std::find( seen_before.begin(), seen_before.end(), node ) == seen_before.end() );
        seen_before.push_back( node );

        // is the connection correct?
        assert( node->mNext->mPrev == node );

        // are the values right?
        assert( node->first <= node->second );
        if( node != &mHead && node->mPrev != &mHead ) assert( node->mPrev->second < node->first );

        if( node == &mHead ) stop_it = true;
    }
}
size_t moab::Range::size ( ) const

return the number of values this Ranges represents

returns the number of values this list represents

Examples:
addPCdata.cpp, ComputeTriDual.cpp, copyPartition.cpp, DeformMeshRemap.cpp, DirectAccessNoHoles.cpp, DirectAccessWithHoles.cpp, ExtrudePoly.cpp, GenLargeMesh.cpp, HelloMOAB.cpp, LaplacianSmoother.cpp, LloydRelaxation.cpp, LoadPartial.cpp, QuadTriConv.cpp, ReadPartFile.cpp, ReduceExchangeTags.cpp, SetsNTags.cpp, StructuredMeshSimple.cpp, TestExodusII.cpp, and VisTags.cpp.

Definition at line 73 of file Range.cpp.

References mHead, and moab::Range::PairNode::mNext.

Referenced by add_dead_elems_to_impl_compl(), add_field_value(), smoab::detail::LoadPoly::addCoordinates(), smoab::detail::LoadGeometry::addCoordinates(), adj_perf(), ahf_test(), moab::TempestOnlineMap::ApplyWeights(), moab::IntxAreaUtils::area_on_sphere(), MetisPartitioner::assemble_graph(), ZoltanPartitioner::assemble_graph(), MetisPartitioner::assemble_taggedsets_graph(), moab::ParallelComm::assign_global_ids(), moab::TempestRemapper::assign_vertex_element_IDs(), moab::DualTool::atomic_pillow(), moab::ParallelComm::augment_default_sets_with_ghosts(), moab::ReadMCNP5::average_with_existing_tally(), moab::AdaptiveKDTree::best_subdivision_plane(), moab::AdaptiveKDTree::best_subdivision_snap_plane(), moab::AdaptiveKDTree::best_vertex_median_plane(), moab::AdaptiveKDTree::best_vertex_sample_plane(), moab::WriteSTL::binary_write_triangles(), moab::FBEngine::boundary_nodes_on_face(), moab::MeshGeneration::BrickInstance(), moab::BVHTree::build_tree(), moab::OrientedBoxTreeTool::build_tree(), moab::AxisBox::calculate(), check_bit_tag(), check_children(), moab::WriteHDF5::check_dense_format_tag(), moab::DualTool::check_dual_adjs(), moab::DualTool::check_dual_equiv_edges(), moab::AEntityFactory::check_equiv_entities(), moab::NCHelperGCRM::check_existing_mesh(), moab::NCHelperHOMME::check_existing_mesh(), moab::NCHelperMPAS::check_existing_mesh(), check_geometric_set(), check_identical_mesh(), check_mesh_is_tet(), moab::HalfFacetRep::check_mixed_entity_type(), moab::GeomTopoTool::check_model(), check_node_coords(), check_num_verts(), check_order(), check_order_by_sets_and_adj(), moab::ParallelComm::check_sent_ents(), check_shared_ents(), check_tree(), check_varlen_tag(), moab::Skinner::classify_2d_boundary(), moab::FBEngine::clean(), moab::ParallelComm::clean_shared_tags(), closedsurface_uref_hirec_convergence_study(), moab::OrientedBoxTreeTool::closest_to_location(), moab::NCWriteGCRM::collect_mesh_info(), moab::NCWriteHOMME::collect_mesh_info(), moab::NCWriteMPAS::collect_mesh_info(), moab::NCWriteGCRM::collect_variable_data(), moab::NCWriteHOMME::collect_variable_data(), moab::NCWriteMPAS::collect_variable_data(), moab::ParallelComm::collective_sync_partition(), moab::WriteHDF5Parallel::communicate_shared_set_data(), moab::WriteHDF5Parallel::communicate_shared_set_ids(), compactness(), compare(), compare_set_contents(), compare_sets(), compute_dual_mesh(), compute_lagrange_mesh_on_sphere(), compute_normals(), moab::ParCommGraph::compute_partition(), compute_velocity_case1(), moab::TempestRemapper::ComputeGlobalLocalMaps(), moab::TempestOnlineMap::ComputeMetrics(), moab::TempestRemapper::ComputeOverlapMesh(), moab::DualTool::construct_dual(), moab::NestedRefine::construct_hm_1D(), moab::NestedRefine::construct_hm_2D(), moab::DualTool::construct_hp_parent_child(), moab::DualTool::construct_new_hyperplane(), moab::TempestRemapper::ConstructCoveringSet(), moab::TempestRemapper::convert_mesh_to_tempest_private(), moab::Tqdcfr::convert_nodesets_sidesets(), moab::TempestRemapper::convert_overlap_mesh_sorted_by_source(), moab::TempestRemapper::convert_tempest_mesh_private(), moab::SpectralMeshTool::convert_to_coarse(), moab::TempestRemapper::ConvertMeshToTempest(), moab::NestedRefine::copy_vertices_from_prev_level(), count_owned(), count_owned_entities(), moab::HalfFacetRep::count_subentities(), moab::ReadCCMIO::create_cell_from_faces(), create_coarse_mesh(), moab::ReadIDEAS::create_elements(), moab::ReadMCNP5::create_elements(), create_fine_mesh(), moab::NCHelperMPAS::create_gather_set_cells(), moab::ParallelComm::create_iface_pc_links(), moab::ReadABAQUS::create_instance_of_part(), create_int_ents(), moab::NCHelperHOMME::create_mesh(), moab::WriteHDF5Parallel::create_meshset_tables(), moab::FBEngine::create_new_gedge(), moab::WriteHDF5Parallel::create_node_table(), moab::ReadParallel::create_partition_sets(), moab::ScdNCHelper::create_quad_coordinate_tag(), IntxUtilsCSLAM::create_span_quads(), moab::WriteHDF5Parallel::create_tag_tables(), moab::Coupler::create_tuples(), moab::ReadMCNP5::create_vertices(), moab::Intx2Mesh::createTags(), cube_edge_adjacencies_test(), cube_tri_curve_coincidence_test(), cube_tri_vertex_test(), cube_tris_connectivity_test(), moab::IntxUtils::deep_copy_set_with_quads(), moab::TempestOnlineMap::DefineAnalyticalSolution(), DeformMeshRemap::deform_master(), moab::Skinner::deinitialize(), moab::ParallelComm::delete_entities(), moab::ReadHDF5::delete_non_side_elements(), moab::ReadParallel::delete_nonlocal_entities(), moab::GeomTopoTool::delete_obb_tree(), moab::HalfFacetRep::determine_incident_halfedges(), moab::HalfFacetRep::determine_sibling_halfedges(), moab::HalfFacetRep::determine_sibling_halffaces(), moab::HalfFacetRep::determine_sibling_halfverts(), do_file(), do_ray_fire_test(), do_test_mode(), moab::ParCommGraph::dump_comm_information(), moab::GeomTopoTool::duplicate_model(), erase_test(), moab::NestedRefine::estimate_hm_storage(), moab::WriteHDF5Parallel::exchange_file_ids(), moab::ParallelComm::exchange_ghost_cells(), moab::ParallelComm::exchange_owned_mesh(), moab::ParallelComm::exchange_tags(), DeformMeshRemap::execute(), FBiGeom_getArrAdj(), FBiGeom_getEnt2ndAdj(), FBiGeom_getEntAdj(), FBiGeom_getEntities(), FBiGeom_getEntSets(), FBiGeom_getNumEntSets(), smoab::detail::ReadSparseTag::fill(), moab::ParallelComm::filter_pstatus(), moab::Tree::find_all_trees(), moab::ScdInterface::find_boxes(), moab::Skinner::find_geometric_skin(), moab::MergeMesh::find_merged_to(), find_sideset(), moab::Skinner::find_skin_scd(), moab::Skinner::find_skin_vertices(), moab::HalfFacetRep::find_total_edges_2d(), moab::HalfFacetRep::find_total_edges_faces_3d(), smoab::findFaceSets(), fix_surface_senses(), moab::DualTool::foc_get_ents(), moab::DualTool::fs_get_quad_loops(), moab::DualTool::fs_get_quads(), moab::DualTool::fsr_get_fourth_quad(), moab::ParallelComm::gather_data(), moab::WriteSLAC::gather_interior_exterior(), moab::WriteTemplate::gather_mesh_information(), moab::WriteSLAC::gather_mesh_information(), moab::WriteNCDF::gather_mesh_information(), gather_one_cell_var(), moab::ReadUtil::gather_related_ents(), gather_related_test(), generate_random_points(), moab::TempestRemapper::GenerateMeshMetadata(), gentityset_test(), moab::GeomTopoTool::geometrize_surface_set(), geometry_evaluation_test(), moab::ScdBox::get_adj_edge_or_face(), MBMesquite::MsqMOAB::get_adjacent_entities(), moab::MeshTopoUtil::get_average_position(), moab::Core::get_connectivity(), moab::Core::get_connectivity_by_type(), EntityCount::get_counts(), moab::DenseTag::get_data(), moab::SparseTag::get_data(), moab::AEntityFactory::get_down_adjacency_elements_poly(), moab::DualTool::get_dual_entities(), moab::ReadABAQUS::get_elements_by_id(), get_entities(), moab::Core::get_entities_by_handle(), get_expected_ghosts(), get_ghost_entities(), moab::WriteCCMIO::get_gids(), moab::Coupler::get_gl_points_on_elements(), moab::DualTool::get_graphics_points(), get_imesh_mesh(), moab::ParallelComm::get_interface_procs(), moab::ParallelData::get_interface_sets(), get_intersection_weights(), get_linear_reconstruction(), moab::ParallelComm::get_local_handles(), moab::MeshTopoUtil::get_manifold(), moab::Coupler::get_matching_entities(), moab::Tqdcfr::get_mesh_entities(), moab::ReorderTool::get_new_handles(), moab::WriteUtil::get_node_coords(), moab::ReadABAQUS::get_nodes_by_id(), moab::WriteHDF5::get_num_sparse_tagged_entities(), moab::Core::get_number_entities_by_type_and_tag(), moab::DualTool::get_opposite_verts(), moab::ReadHDF5::get_partition(), moab::ParallelComm::get_pstatus_entities(), moab::ParallelComm::get_remote_handles(), moab::ReorderTool::get_reordered_handles(), moab::ReadABAQUS::get_set_elements_by_name(), moab::ReadABAQUS::get_set_nodes(), moab::WriteHDF5::get_tag_data_length(), get_vartag_data(), moab::FBEngine::get_vert_edges(), moab::Core::get_vertex_coordinates(), moab::NestedRefine::get_vertex_duplicates(), moab::FBEngine::getEgVtxSense(), moab::FBEngine::getNumOfType(), moab::TempestRemapper::GetOverlapAugmentedEntities(), moab::FBEngine::getPntRayIntsct(), moab::FBEngine::getVtxCoord(), moab::ReorderTool::handle_order_from_int_tag(), hcFilter(), identify_set(), iMesh_getEntArr2ndAdj(), iMesh_getEntsByTagsRec(), iMesh_getEntSetsByTagsRec(), iMeshP_getAdjEntities(), iMeshP_getNumLocalParts(), iMeshP_getNumOfTopo(), iMeshP_getNumOfType(), iMeshP_getNumPartBdryEnts(), iMOAB_GetBlockID(), iMOAB_GetBlockInfo(), iMOAB_GetDoubleTagStorage(), iMOAB_GetElementConnectivity(), iMOAB_GetElementID(), iMOAB_GetElementOwnership(), iMOAB_GetIntTagStorage(), iMOAB_GetMeshInfo(), iMOAB_GetNeighborElements(), iMOAB_GetPointerToSurfaceBC(), iMOAB_GetPointerToVertexBC(), iMOAB_GetVertexID(), iMOAB_GetVertexOwnership(), iMOAB_GetVisibleVerticesCoordinates(), iMOAB_SetDoubleTagStorage(), iMOAB_SetIntTagStorage(), iMOAB_UpdateMeshInfo(), ZoltanPartitioner::include_closure(), moab::SmoothFace::init_gradient(), moab::HiReconstruction::initialize(), moab::HalfFacetRep::initialize(), moab::LloydSmoother::initialize(), initialize_area_and_tracer(), moab::WriteNCDF::initialize_exodus_file(), moab::WriteSLAC::initialize_file(), moab::FBEngine::initializeSmoothing(), moab::GeomTopoTool::insert_in_tree(), moab::DataCoupler::interpolate(), moab::AdaptiveKDTree::intersect_children_with_elems(), moab::Intx2Mesh::intersect_meshes(), moab::Intx2Mesh::intersect_meshes_kdtree(), intersect_test(), moab::SmoothCurve::is_periodic(), laplacianFilter(), TriStats::leaf(), smoab::detail::LinearCellConnectivity::LinearCellConnectivity(), moab::ReadParallel::load_file(), moab::ReadVtk::load_file(), moab::ReadSms::load_file_impl(), moab::ReadHDF5::load_file_partial(), moab::ReadMCNP5::load_one_file(), moab::WriteGMV::local_write_mesh(), moab::SpatialLocator::locate_points(), moab::Coupler::locate_points(), main(), manufacture_lagrange_mesh_on_sphere(), moab::WriteDamsel::map_sparse_tags(), match_tri_edges_w_curve(), match_vertices_and_elements(), mb_adjacencies_create_delete_test(), mb_bit_tags_test(), mb_common_tag_test(), mb_merge_update_test(), mb_mesh_set_flag_test(), mb_mesh_set_list_replace_test(), mb_mesh_set_set_replace_test(), mb_mesh_sets_test(), mb_poly_test(), mb_root_set_test(), mb_skin_curve_test_common(), mb_skin_fileset_test(), mb_skin_full_common(), mb_skin_higher_order_faces_common(), mb_skin_higher_order_regions_common(), mb_skin_poly_test(), mb_skin_reversed_common(), mb_skin_subset_common(), mb_skin_surface_test_common(), mb_skin_volume_test_common(), mb_split_test(), mb_topo_util_test(), mb_type_is_maxtype_test(), mb_vertex_coordinate_test(), mb_write_mesh_test(), moab::MergeMesh::merge_higher_dimensions(), merge_input_surfs(), merge_test(), moab::MergeMesh::merge_using_integer_tag(), merge_with_tag_test(), smoab::detail::MixedCellConnectivity::MixedCellConnectivity(), multiple_loads_of_same_file(), normals_test(), moab::MeshSetSequence::num_dimension(), moab::MeshSetSequence::num_entities(), moab::GeomTopoTool::num_ents_of_dim(), moab::DenseTag::num_tagged_entities(), moab::MeshSetSequence::num_type(), obbstat_write(), obbvis_create(), moab::HiReconstruction::obtain_nring_ngbvs(), moab::DualTool::order_chord(), orient_faces_outward(), moab::GeomTopoTool::other_entity(), overlap_test_measure_area(), overlap_test_measure_volume(), overlap_test_point_in_volume(), overlap_test_ray_fire(), overlap_test_surface_sense(), overlap_test_tracking(), moab::ParallelComm::pack_entities(), moab::ParallelComm::pack_entity_seq(), moab::ParallelComm::pack_sets(), moab::ParallelComm::pack_tag(), moab::ParallelComm::pack_tags(), pack_unpack_noremoteh(), moab::ParallelComm::packed_tag_size(), parallel_create_mesh(), ZoltanPartitioner::partition_inferred_mesh(), ZoltanPartitioner::partition_mesh_and_geometry(), ZoltanPartitioner::partition_owned_cells(), perform_laplacian_smoothing(), perform_lloyd_relaxation(), moab::LloydSmoother::perform_smooth(), moab::HiReconstruction::polyfit3d_walf_curve_vertex(), moab::HiReconstruction::polyfit3d_walf_surf_vertex(), moab::AdaptiveKDTree::print(), moab::TreeNodePrinter::print_contents(), print_file_stats(), print_partitioned_entities(), moab::print_type_sets(), moab::ReadDamsel::process_ent_info(), moab::ReadDamsel::process_entity_tags(), process_partition_file(), project_exact_torus(), put_random_field(), moab::putElementField(), moab::putSpectralElementField(), moab::putVertexField(), quads_to_tris(), query_elem_to_vert_direct(), query_vert_to_elem_direct(), smoab::RangeToVector(), read_cylcube_curve_senses_test(), read_cylcube_groups_test(), read_cylcube_surf_senses_test(), moab::ReadHDF5VarLen::read_data(), moab::ReadABAQUS::read_element_list(), moab::ReadHDF5::read_elems(), DeformMeshRemap::read_file(), McnpData::read_mcnpfile(), read_mesh_parallel(), moab::ReadABAQUS::read_node_list(), moab::ReadHDF5::read_nodes(), moab::ReadHDF5VarLen::read_offsets(), read_one_cell_var(), moab::ScdNCHelper::read_scd_variables_to_nonset_allocate(), moab::ReadHDF5::read_set_data(), read_sets(), moab::ReadHDF5::read_sets(), moab::ReadHDF5::read_sparse_tag_indices(), moab::ReadHDF5::read_tag_values_partial(), moab::NCHelperGCRM::read_ucd_variables_to_nonset_allocate(), moab::NCHelperHOMME::read_ucd_variables_to_nonset_allocate(), moab::NCHelperMPAS::read_ucd_variables_to_nonset_allocate(), smoab::DataSetConverter::readDenseTags(), moab::ParCommGraph::receive_mesh(), moab::ParCommGraph::receive_tag_values(), recursive_check_tree(), moab::ParallelComm::reduce_tags(), refine_entities(), regression_mmiller_8_2010(), regression_one_entity_by_var_tag(), moab::ReorderTool::reorder_entities(), moab::ReorderTool::reorder_tag_data(), replace_faceted_cgm_surfs(), replace_surface(), report_iface_ents(), report_nsets(), report_sets(), moab::ParallelComm::resolve_shared_ents(), moab::GeomTopoTool::restore_topology_from_adjacency(), moab::GeomTopoTool::restore_topology_from_geometric_inclusion(), moab::DualTool::rev_atomic_pillow(), moab::ParallelComm::send_entities(), moab::ParCommGraph::send_tag_values(), moab::FBEngine::separate(), moab::GeomTopoTool::separate_by_dimension(), moab::WriteHDF5::serial_create_file(), moab::VarLenSparseTag::set_data(), moab::SparseTag::set_data(), moab::VarLenDenseTag::set_data(), set_density(), set_departure_points_position(), moab::ParallelComm::set_pstatus_entities(), moab::ParallelComm::settle_intersection_points(), moab::GeomTopoTool::setup_implicit_complement(), setup_mesh(), skin_common(), moab::FBEngine::smooth_new_intx_points(), moab::FBEngine::split_bedge_at_new_mesh_node(), moab::FBEngine::split_edge_at_mesh_node(), moab::FBEngine::split_internal_edge(), split_quads_test(), moab::FBEngine::split_surface_with_direction(), split_test_across(), moab::MeshTopoUtil::star_next_entity(), moab::NestedRefine::subdivide_cells(), moab::NestedRefine::subdivide_tets(), subset_by_dimension_test(), subtract_test(), swap_test(), tag_depth(), tag_elements(), moab::Core::tag_get_by_ptr(), moab::ParallelComm::tag_iface_entities(), moab::Core::tag_set_by_ptr(), moab::ScdInterface::tag_shared_vertices(), tag_time(), tag_vertices(), test_adjacencies(), test_assign_global_ids(), test_bc_sets(), test_bit_tag_big(), test_blocks(), test_boolean(), test_check_meshsets(), test_closedsurface_mesh(), test_closest_to_location(), test_coords_connect_iterate(), test_delete_entities(), test_delete_tag_data(), test_element(), test_elements(), test_file_set(), test_filter_pstatus(), test_gather_onevar(), test_gather_sets_ranged(), test_geometric_sets(), test_get_by_tag(), test_get_by_tag_value(), test_get_by_tag_value_dense(), test_get_entity_tags(), test_get_ents_with_default_value(), test_get_set(), test_get_set_bit(), test_get_set_variable_length(), test_ghost_elements(), test_ghost_tag_exchange(), test_global_value_common(), test_linear_tet(), test_list_set_with_stale_handles(), test_measure_area(), test_measure_volume(), test_mesh(), test_moab_v3_poly_format(), test_multiple_files(), test_pack_elements(), test_pack_higher_order(), test_pack_poly(), test_pack_set_contents(), test_pack_set_parent_child(), test_pack_sets_of_sets(), test_pack_sets_simple(), test_pack_tag_data_sparse(), test_pack_vertices(), test_point_in_volume(), test_polyhedra(), test_ranged_set_with_stale_handles(), test_ray_fire(), test_read_adjacencies(), test_read_all(), test_read_alternate_coord_format(), test_read_bc_sets(), test_read_conn(), test_read_elements_common(), test_read_eul_onevar(), test_read_fgh(), test_read_fv_onevar(), test_read_geom_set(), test_read_material_on_nodes(), test_read_material_set(), test_read_material_set1(), test_read_material_set2(), test_read_no_edges(), test_read_no_mixed_elements(), test_read_nodes_common(), test_read_nothing_common(), test_read_novars(), test_read_one_set_polyhedra(), test_read_onevar(), test_read_parallel(), test_read_physical_set(), test_read_set_contents(), test_read_set_sets(), test_read_sets_common(), test_read_side(), test_read_sides(), test_read_two_sets_elems(), test_read_vertices(), test_reduce_tag_explicit_dest(), test_reduce_tags(), test_scd_invalid(), test_sequences_after_ghosting(), test_set_flags(), test_sets_fileids(), test_spectral_hex(), test_spectral_quad(), test_subset(), test_surface_sense(), test_tag_iterate_common(), test_tree(), test_tree_readwrite(), test_trivial_partition(), test_var_length_big_data(), test_var_length_handle_tag(), test_vertices(), test_write_dense_tags(), test_write_shared_sets(), test_write_unbalanced(), moab::DualTool::traverse_hyperplane(), umr_perf_test(), moab::ParallelComm::unpack_sets(), moab::ReadNCDF::update(), update_density(), moab::NestedRefine::update_global_ahf_1D(), moab::NestedRefine::update_global_ahf_1D_sub(), moab::NestedRefine::update_global_ahf_2D(), moab::NestedRefine::update_global_ahf_2D_sub(), moab::NestedRefine::update_global_ahf_3D(), moab::ReorderTool::update_set_contents(), moab::Intx2MeshOnSphere::update_tracer_data(), update_tracer_test(), TreeValidator::visit(), moab::RayIntersectSets::visit(), moab::TreeNodePrinter::visit(), volume_test(), moab::ReadVtk::vtk_read_unstructured_grid(), MetisPartitioner::write_aggregationtag_partition(), moab::WriteVtk::write_bit_tag(), moab::WriteCCMIO::write_cells_and_faces(), moab::WriteHDF5::write_dense_tag(), moab::WriteNCDF::write_elementblocks(), moab::WriteVtk::write_elems(), moab::WriteHDF5::write_elems(), moab::WriteDamsel::write_entities(), moab::WriteCCMIO::write_external_faces(), moab::WriteSmf::write_file(), moab::WriteGmsh::write_file(), moab::Core::write_file(), moab::WriteHDF5::write_file_impl(), moab::WriteSLAC::write_matsets(), moab::WriteVtk::write_nodes(), moab::WriteCCMIO::write_nodes(), moab::WriteHDF5::write_nodes(), moab::NCWriteMPAS::write_nonset_variables(), moab::NCWriteGCRM::write_nonset_variables(), moab::NCWriteHOMME::write_nonset_variables(), moab::ScdNCWriteHelper::write_nonset_variables(), MetisPartitioner::write_partition(), ZoltanPartitioner::write_partition(), moab::WriteNCDF::write_poly_faces(), moab::WriteHDF5::write_sets(), moab::WriteHDF5::write_sparse_ids(), moab::WriteHDF5::write_sparse_tag(), moab::WriteVtk::write_tag(), moab::WriteHDF5::write_tag_values(), moab::WriteVtk::write_tags(), DeformMeshRemap::write_to_coords(), write_tree_blocks(), moab::WriteHDF5::write_var_len_indices(), and moab::WriteHDF5::write_var_len_tag().

{
    // go through each pair and add up the number of values
    // we have.
    size_t sz = 0;
    for( PairNode* iter = mHead.mNext; iter != &mHead; iter = iter->mNext )
    {
        sz += ( ( iter->second - iter->first ) + 1 );
    }
    return sz;
}
const std::string moab::Range::str_rep ( const char *  indent_prefix = NULL) const

for debugging

Definition at line 569 of file Range.cpp.

References const_pair_begin(), const_pair_end(), empty(), moab::CN::EntityTypeName(), moab::ID_FROM_HANDLE(), and moab::TYPE_FROM_HANDLE().

Referenced by print().

{
    std::stringstream str_stream;
    std::string indent_prefix_str;
    if( NULL != indent_prefix ) { indent_prefix_str += indent_prefix; }

    if( empty() )
    {
        str_stream << indent_prefix_str << "\tempty" << std::endl;
        return str_stream.str().c_str();
    }

    for( const_pair_iterator i = const_pair_begin(); i != const_pair_end(); ++i )
    {
        EntityType t1 = TYPE_FROM_HANDLE( i->first );
        EntityType t2 = TYPE_FROM_HANDLE( i->second );

        str_stream << indent_prefix_str << "\t" << CN::EntityTypeName( t1 ) << " " << ID_FROM_HANDLE( i->first );
        if( i->first != i->second )
        {
            str_stream << " - ";
            if( t1 != t2 ) str_stream << CN::EntityTypeName( t2 ) << " ";
            str_stream << ID_FROM_HANDLE( i->second );
        }
        str_stream << std::endl;
    }

    return str_stream.str();
}
void moab::Range::swap ( Range range)

swap the contents of this range with another one

swap the contents of this range with another one THIS FUNCTION MUST NOT BE INLINED, THAT WILL ELIMINATE RANGE_EMPTY AND THIS_EMPTY BY SUBSTITUTION AND THE FUNCTION WON'T WORK RIGHT!

Definition at line 921 of file Range.cpp.

References mHead, moab::Range::PairNode::mNext, and moab::Range::PairNode::mPrev.

Referenced by moab::AdaptiveKDTree::best_subdivision_plane(), moab::AdaptiveKDTree::best_subdivision_snap_plane(), moab::AdaptiveKDTree::best_vertex_median_plane(), moab::AdaptiveKDTree::best_vertex_sample_plane(), moab::OrientedBoxTreeTool::build_tree(), moab::ReadParallel::delete_nonlocal_entities(), dot_nodes(), moab::MeshTopoUtil::equivalent_entities(), moab::ParallelComm::filter_pstatus(), moab::Skinner::find_skin(), moab::Core::get_entities_by_type_and_tag(), moab::ReadHDF5::get_subset_ids(), moab::Core::get_vertices(), moab::DualTool::next_loop_vertex(), print_partitioned_entities(), moab::WriteHDF5Parallel::remove_remote_entities(), moab::WriteHDF5Parallel::remove_remote_sets(), moab::ParallelComm::resolve_shared_sets(), swap_test(), test_ghost_elements(), MetisPartitioner::write_aggregationtag_partition(), MetisPartitioner::write_partition(), and ZoltanPartitioner::write_partition().

{
    // update next/prev nodes of head of both ranges
    bool range_empty = ( range.mHead.mNext == &( range.mHead ) );
    bool this_empty  = ( mHead.mNext == &mHead );

    range.mHead.mNext->mPrev = ( range_empty ? &( range.mHead ) : &mHead );
    range.mHead.mPrev->mNext = ( range_empty ? &( range.mHead ) : &mHead );
    mHead.mNext->mPrev       = ( this_empty ? &mHead : &( range.mHead ) );
    mHead.mPrev->mNext       = ( this_empty ? &mHead : &( range.mHead ) );

    // switch data in head nodes of both ranges
    PairNode *range_next = range.mHead.mNext, *range_prev = range.mHead.mPrev;
    range.mHead.mNext = ( this_empty ? &( range.mHead ) : mHead.mNext );
    range.mHead.mPrev = ( this_empty ? &( range.mHead ) : mHead.mPrev );
    mHead.mNext       = ( range_empty ? &mHead : range_next );
    mHead.mPrev       = ( range_empty ? &mHead : range_prev );
}

Definition at line 308 of file Range.hpp.

References begin(), end(), and upper_bound().

    {
        return upper_bound( begin(), end(), val );
    }
Range::const_iterator moab::Range::upper_bound ( EntityType  type) const

Definition at line 836 of file Range.cpp.

References begin(), moab::CREATE_HANDLE(), end(), and lower_bound().

{
    // if (type+1) overflows, err will be true and we return end().
    int err;
    EntityHandle handle = CREATE_HANDLE( type + 1, 0, err );
    return err ? end() : lower_bound( begin(), end(), handle );
}
Range::const_iterator moab::Range::upper_bound ( EntityType  type,
const_iterator  first 
) const

Definition at line 843 of file Range.cpp.

References moab::CREATE_HANDLE(), end(), and lower_bound().

{
    // if (type+1) overflows, err will be true and we return end().
    int err;
    EntityHandle handle = CREATE_HANDLE( type + 1, 0, err );
    return err ? end() : lower_bound( first, end(), handle );
}

Friends And Related Function Documentation

Range intersect ( const Range range1,
const Range range2 
) [friend]

intersect two ranges, placing the results in the return range

Range subtract ( const Range from,
const Range range2 
) [friend]

subtract range2 from this, placing the results in the return range


Member Data Documentation

the head of the list that contains pairs that represent the ranges this list is sorted and unique at all times

Definition at line 390 of file Range.hpp.

Referenced by back(), begin(), clear(), const_pair_begin(), const_pair_end(), contains(), delete_pair_node(), empty(), end(), erase(), find(), front(), get_memory_use(), insert(), operator=(), pair_begin(), pair_end(), pop_back(), pop_front(), Range(), rbegin(), rend(), sanity_check(), size(), and swap().

List of all members.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines