Mesh Oriented datABase  (version 5.4.1)
Array-based unstructured mesh datastructure
Tags
+ Collaboration diagram for Tags:

Functions

void iMesh_createTag (iMesh_Instance instance, const char *tag_name, const int tag_size, const int tag_type, iBase_TagHandle *tag_handle, int *err, const int tag_name_len)
 Create a tag with specified name, size, and type.
void iMesh_destroyTag (iMesh_Instance instance, iBase_TagHandle tag_handle, const int forced, int *err)
 Destroy a tag.
void iMesh_getTagName (iMesh_Instance instance, const iBase_TagHandle tag_handle, char *name, int *err, int name_len)
 Get the name for a given tag handle.
void iMesh_getTagSizeValues (iMesh_Instance instance, const iBase_TagHandle tag_handle, int *tag_size, int *err)
 Get size of a tag in units of numbers of tag data type.
void iMesh_getTagSizeBytes (iMesh_Instance instance, const iBase_TagHandle tag_handle, int *tag_size, int *err)
 Get size of a tag in units of bytes.
void iMesh_getTagHandle (iMesh_Instance instance, const char *tag_name, iBase_TagHandle *tag_handle, int *err, int tag_name_len)
 Get a the handle of an existing tag with the specified name.
void iMesh_getTagType (iMesh_Instance instance, const iBase_TagHandle tag_handle, int *tag_type, int *err)
 Get the data type of the specified tag handle.
void iMesh_getAllEntSetTags (iMesh_Instance instance, const iBase_EntitySetHandle entity_set_handle, iBase_TagHandle **tag_handles, int *tag_handles_allocated, int *tag_handles_size, int *err)
 Get all the tags associated with a specified entity set.
void iMesh_rmvEntSetTag (iMesh_Instance instance, iBase_EntitySetHandle entity_set_handle, const iBase_TagHandle tag_handle, int *err)
 Remove a tag value from an entity set.
void iMesh_rmvArrTag (iMesh_Instance instance, const iBase_EntityHandle *entity_handles, const int entity_handles_size, const iBase_TagHandle tag_handle, int *err)
 Remove a tag value from an array of entities.
void iMesh_getAllTags (iMesh_Instance instance, const iBase_EntityHandle entity_handle, iBase_TagHandle **tag_handles, int *tag_handles_allocated, int *tag_handles_size, int *err)
 Get all the tags associated with a specified entity handle.
void iMesh_rmvTag (iMesh_Instance instance, iBase_EntityHandle entity_handle, const iBase_TagHandle tag_handle, int *err)
 Remove a tag value from an entity.
void iMesh_getAllIfaceTags (iMesh_Instance instance, iBase_TagHandle **tag_handles, int *tag_handles_allocated, int *tag_handles_size, int *err)
 Get all the tags associated with the entire interface.
void iMesh_createTagWithOptions (iMesh_Instance instance, const char *tag_name, const char *tmp_tag_options, const int tag_size, const int tag_type, iBase_TagHandle *tag_handle, int *err, const int tag_name_len, const int tag_options_len)
 Create a tag with options.

Function Documentation

void iMesh_createTag ( iMesh_Instance  instance,
const char *  tag_name,
const int  tag_size,
const int  tag_type,
iBase_TagHandle tag_handle,
int *  err,
const int  tag_name_len 
)

Create a tag with specified name, size, and type.

Create a tag with specified name, size, and type. Tag size is in units of size of tag_type data types. Value input for tag type must be value in iBase_TagType enumeration.

Parameters:
[in]instanceiMesh instance handle
[in]tag_nameCharacter string indicating tag name
[in]tag_sizeSize of each tag value, in units of number of tag_type datums.
[in]tag_typeData type for data stored in this tag
[out]tag_handlePointer to tag handle returned from function
[out]errReturned Error status (see iBase_ErrorType)
[in]tag_name_lenLength of tag name string (String Length Arguments)

Definition at line 1483 of file iMesh_MOAB.cpp.

References iMesh_createTagWithOptions.

{
    iMesh_createTagWithOptions( instance, tag_name, NULL, tag_size, tag_type, tag_handle, err, tag_name_size, 0 );
}
void iMesh_createTagWithOptions ( iMesh_Instance  instance,
const char *  tag_name,
const char *  tmp_tag_options,
const int  tag_size,
const int  tag_type,
iBase_TagHandle tag_handle,
int *  err,
const int  tag_name_len,
const int  tag_options_len 
)

Create a tag with options.

Create a tag with options; allows creation of Dense and Bit tags through iMesh Allowable options are: TAG_STORAGE_TYPE={DENSE | SPARSE | BIT | MESH} TAG_DEFAULT_VALUE=

(data type of value should match tag data type) [in] length of options string

Parameters:
[in]instanceiMesh instance handle
[in]tag_nametag name
[in]tmp_tag_optionsoptions string
[in]tag_sizetag size, in number of values
[in]tag_typetag data type (int, double, etc.)
[out]tag_handlehandle of new tag
[out]errerror
[in]tag_name_lenlength of tag name string

Definition at line 3042 of file iMesh_MOAB.cpp.

References CHKENUM, eatwhitespace(), ERROR, ErrorCode, filter_options(), iBase_BYTES, iBase_DOUBLE, iBase_ENTITY_HANDLE, iBase_ENTITY_SET_HANDLE, iBase_INTEGER, iBase_INVALID_ARGUMENT, iBase_SUCCESS, MB_ALREADY_ALLOCATED, mb_data_type_table, MB_SUCCESS, MB_TAG_BIT, MB_TAG_DENSE, MB_TAG_EXCL, MB_TAG_MESH, MB_TAG_SPARSE, MBIMESHI, MOABI, RETURN, and TagType.

{
    if( tag_size < 0 ) ERROR( iBase_INVALID_ARGUMENT, "iMesh_createTag: invalid tag size" );
    CHKENUM( tag_type, iBase_TagValueType, iBase_INVALID_ARGUMENT );

    std::string tmp_tagname( tag_name, tag_name_len );
    eatwhitespace( tmp_tagname );

    moab::TagType storage = MB_TAG_SPARSE;
    ErrorCode result;

    // declared here 'cuz might have to hold destination of a default value ptr
    std::string storage_type;
    const void* def_val = NULL;
    std::vector< int > def_int;
    std::vector< double > def_dbl;
    std::vector< moab::EntityHandle > def_handles;
    int dum_int;
    double dum_dbl;

    if( 0 != tag_options_len )
    {
        std::string tag_options = filter_options( tmp_tag_options, tmp_tag_options + tag_options_len );
        FileOptions opts( tag_options.c_str() );
        const char* option_vals[]       = { "SPARSE", "DENSE", "BIT", "MESH" };
        const moab::TagType opt_types[] = { moab::MB_TAG_SPARSE, moab::MB_TAG_DENSE, moab::MB_TAG_BIT,
                                            moab::MB_TAG_MESH };
        int opt_num                     = -1;
        result                          = opts.match_option( "TAG_STORAGE_TYPE", option_vals, opt_num );
        if( MB_FAILURE == result )
            ERROR( result, "iMesh_createTagWithOptions: option string not recognized." );
        else if( MB_SUCCESS == result )
        {
            assert( opt_num >= 0 && opt_num <= 3 );
            storage = opt_types[opt_num];
        }

        // now look for default value option; reuse storage_type
        storage_type.clear();
        result = opts.get_option( "TAG_DEFAULT_VALUE", storage_type );
        if( MB_SUCCESS == result )
        {
            // ok, need to parse the string into a proper default value
            switch( tag_type )
            {
                case iBase_INTEGER:
                    result = opts.get_int_option( "TAG_DEFAULT_VALUE", dum_int );
                    def_int.resize( tag_size );
                    std::fill( def_int.begin(), def_int.end(), dum_int );
                    def_val = &def_int[0];
                    break;
                case iBase_DOUBLE:
                    result = opts.get_real_option( "TAG_DEFAULT_VALUE", dum_dbl );
                    def_dbl.resize( tag_size );
                    std::fill( def_dbl.begin(), def_dbl.end(), dum_dbl );
                    def_val = &def_dbl[0];
                    break;
                case iBase_ENTITY_HANDLE:
                    // for default handle, will have to use int
                    result = opts.get_int_option( "TAG_DEFAULT_VALUE", dum_int );
                    if( 0 > dum_int )
                        ERROR( result, "iMesh_createTagWithOptions: for default handle-type tag, "
                                       "must use non-negative int on input." );
                    def_handles.resize( tag_size );
                    std::fill( def_handles.begin(), def_handles.end(), (moab::EntityHandle)dum_int );
                    def_val = &def_handles[0];
                    break;
                case iBase_BYTES:
                    if( (int)storage_type.length() < tag_size )
                        ERROR( result, "iMesh_createTagWithOptions: default value for byte-type "
                                       "tag must be large enough to store tag value." );
                    def_val = storage_type.c_str();
                    break;
            }
        }
    }

    moab::Tag new_tag;
    result = MOABI->tag_get_handle( tmp_tagname.c_str(), tag_size, mb_data_type_table[tag_type], new_tag,
                                    storage | MB_TAG_EXCL, def_val );

    if( MB_SUCCESS != result )
    {
        std::string msg( "iMesh_createTag: " );
        if( MB_ALREADY_ALLOCATED == result )
        {
            msg += "Tag already exists with name: \"";
            *tag_handle = (iBase_TagHandle)new_tag;
        }
        else
            msg += "Failed to create tag with name: \"";
        msg += tag_name;
        msg += "\".";
        ERROR( result, msg.c_str() );
    }

    if( tag_type == iBase_ENTITY_HANDLE )
        MBIMESHI->note_ent_handle_tag( new_tag );
    else if( tag_type == iBase_ENTITY_SET_HANDLE )
        MBIMESHI->note_set_handle_tag( new_tag );

    *tag_handle = (iBase_TagHandle)new_tag;

    RETURN( iBase_SUCCESS );

    /* old implementation:
       Tag new_tag;
       int this_size = tag_size;

       ErrorCode result = MOABI->tag_get_handle(tmp_tagname.c_str(),
       this_size,
       mb_data_type_table[tag_type],
       new_tag,
       MB_TAG_SPARSE|MB_TAG_EXCL);

       if (MB_SUCCESS != result) {
       std::string msg("iMesh_createTag: ");
       if (MB_ALREADY_ALLOCATED == result) {
       msg += "Tag already exists with name: \"";
       *tag_handle = (iBase_TagHandle) new_tag;
       }
       else
       msg += "Failed to create tag with name: \"";
       msg += tag_name;
       msg += "\".";
       ERROR(result,msg.c_str());
       }

       if (tag_type == iBase_ENTITY_HANDLE)
       MBIMESHI->note_ent_handle_tag( new_tag );
       else if (tag_type == iBase_ENTITY_SET_HANDLE)
       MBIMESHI->note_set_handle_tag( new_tag );

       *tag_handle = (iBase_TagHandle) new_tag;
       */
}
void iMesh_destroyTag ( iMesh_Instance  instance,
iBase_TagHandle  tag_handle,
const int  forced,
int *  err 
)

Destroy a tag.

Destroy a tag. If forced is non-zero and entities still have values set for this tag, tag is deleted anyway and those values disappear, otherwise tag is not deleted.

Parameters:
[in]instanceiMesh instance handle
[in]tag_handleHandle of tag to be deleted
[in]forcedIf non-zero, delete the tag even if entities have values set for the tag.
[out]errReturned Error status (see iBase_ErrorType)

Definition at line 1494 of file iMesh_MOAB.cpp.

References CHKERR, moab::Range::empty(), ERROR, ErrorCode, iBase_ERROR_MAP, iBase_TAG_IN_USE, MB_SUCCESS, MB_TAG_NOT_FOUND, MBIMESHI, MBMAXTYPE, MBVERTEX, MOABI, RETURN, TAG_HANDLE, and smoab::UNION.

{
    // might need to check if it's used first
    if( false == forced )
    {
        Range ents;
        ErrorCode result;
        Tag this_tag = TAG_HANDLE( tag_handle );
        for( EntityType this_type = MBVERTEX; this_type != MBMAXTYPE; this_type++ )
        {
            result = MOABI->get_entities_by_type_and_tag( 0, this_type, &this_tag, NULL, 1, ents, Interface::UNION );CHKERR( result, "iMesh_destroyTag: problem finding tag." );
            if( !ents.empty() )
            {
                ERROR( iBase_TAG_IN_USE, "iMesh_destroyTag: forced=false and entities"
                                         " are still assigned this tag." );
            }
        }
        // check if tag value is set on mesh
        const void* data_ptr;
        EntityHandle root = 0;
        result            = MOABI->tag_get_by_ptr( this_tag, &root, 1, &data_ptr );
        if( MB_SUCCESS == result )
            ERROR( iBase_TAG_IN_USE, "iMesh_destroyTag: forced=false and mesh"
                                     " is still assigned this tag." );
    }

    // ok, good to go - either forced or no entities with this tag
    ErrorCode result = MOABI->tag_delete( TAG_HANDLE( tag_handle ) );
    if( MB_SUCCESS != result && MB_TAG_NOT_FOUND != result ) ERROR( result, "iMesh_destroyTag: problem deleting tag." );

    if( MB_SUCCESS == result ) MBIMESHI->note_tag_destroyed( TAG_HANDLE( tag_handle ) );

    RETURN( iBase_ERROR_MAP[result] );
}
void iMesh_getAllEntSetTags ( iMesh_Instance  instance,
const iBase_EntitySetHandle  entity_set_handle,
iBase_TagHandle **  tag_handles,
int *  tag_handles_allocated,
int *  tag_handles_size,
int *  err 
)

Get all the tags associated with a specified entity set.

Get all the tags associated with a specified entity set

Parameters:
[in]instanceiMesh instance handle
[in]entity_set_handleEntity being queried
[in,out]tag_handlesPointer to array of tag_handles returned from Array pointer, allocated and occupied sizes argument trio)
[in,out]tag_handles_allocatedPointer to allocated size of tag_handles
[out]tag_handles_sizePointer to occupied size of tag_handles array
[out]errReturned Error status (see iBase_ErrorType)

Definition at line 1765 of file iMesh_MOAB.cpp.

References ALLOC_CHECK_ARRAY_NOFAIL, CHKERR, ENTITY_HANDLE, ErrorCode, iBase_SUCCESS, MOABI, remove_var_len_tags(), and RETURN.

{
    EntityHandle eh = ENTITY_HANDLE( entity_set_handle );
    std::vector< Tag > all_tags;

    ErrorCode result = MOABI->tag_get_tags_on_entity( eh, all_tags );CHKERR( result, "iMesh_entitysetGetAllTagHandles failed." );

    remove_var_len_tags( MOABI, all_tags );

    // now put those tag handles into sidl array
    ALLOC_CHECK_ARRAY_NOFAIL( tag_handles, all_tags.size() );
    memcpy( *tag_handles, &all_tags[0], all_tags.size() * sizeof( Tag ) );

    *tag_handles_size = (int)all_tags.size();
    RETURN( iBase_SUCCESS );
}
void iMesh_getAllIfaceTags ( iMesh_Instance  instance,
iBase_TagHandle **  tag_handles,
int *  tag_handles_allocated,
int *  tag_handles_size,
int *  err 
)

Get all the tags associated with the entire interface.

Get all the tags associated with the entire interface

Definition at line 1617 of file iMesh_MOAB.cpp.

References ALLOC_CHECK_ARRAY_NOFAIL, CHKERR, ErrorCode, iBase_SUCCESS, MOABI, remove_var_len_tags(), and RETURN.

{
    std::vector< Tag > all_tags;

    ErrorCode result = MOABI->tag_get_tags( all_tags );CHKERR( result, "iMesh_getAllIfaceTags failed." );

    remove_var_len_tags( MOABI, all_tags );

    // now put those tag handles into sidl array
    ALLOC_CHECK_ARRAY_NOFAIL( tag_handles, all_tags.size() );
    memcpy( *tag_handles, &all_tags[0], all_tags.size() * sizeof( Tag ) );
    *tag_handles_size = all_tags.size();

    RETURN( iBase_SUCCESS );
}
void iMesh_getAllTags ( iMesh_Instance  instance,
const iBase_EntityHandle  entity_handle,
iBase_TagHandle **  tag_handles,
int *  tag_handles_allocated,
int *  tag_handles_size,
int *  err 
)

Get all the tags associated with a specified entity handle.

Get all the tags associated with a specified entity handle

Parameters:
[in]instanceiMesh instance handle
[in]entity_handleEntity being queried
[in,out]tag_handlesPointer to array of tag_handles returned from Array pointer, allocated and occupied sizes argument trio)
[in,out]tag_handles_allocatedPointer to allocated size of tag_handles
[out]tag_handles_sizePointer to occupied size of tag_handles array
[out]errReturned Error status (see iBase_ErrorType)

Definition at line 2218 of file iMesh_MOAB.cpp.

References ALLOC_CHECK_ARRAY_NOFAIL, CHKERR, ENTITY_HANDLE, ErrorCode, iBase_SUCCESS, MOABI, remove_var_len_tags(), and RETURN.

{
    std::vector< Tag > all_tags;

    ErrorCode result = MOABI->tag_get_tags_on_entity( ENTITY_HANDLE( entity_handle ), all_tags );CHKERR( result, "iMesh_getAllTags failed." );

    remove_var_len_tags( MOABI, all_tags );

    // now put those tag handles into sidl array
    ALLOC_CHECK_ARRAY_NOFAIL( tag_handles, all_tags.size() );
    memcpy( *tag_handles, &all_tags[0], all_tags.size() * sizeof( Tag ) );
    *tag_handles_size = all_tags.size();

    RETURN( iBase_SUCCESS );
}
void iMesh_getTagHandle ( iMesh_Instance  instance,
const char *  tag_name,
iBase_TagHandle tag_handle,
int *  err,
int  tag_name_len 
)

Get a the handle of an existing tag with the specified name.

Get a the handle of an existing tag with the specified name

Parameters:
[in]instanceiMesh instance handle
[in]tag_nameName of tag being queried
[out]tag_handlePointer to tag handle returned from function
[out]errReturned Error status (see iBase_ErrorType)
[in]tag_name_lenLength of tag name string (String Length Arguments)

Definition at line 1591 of file iMesh_MOAB.cpp.

References eatwhitespace(), ERROR, ErrorCode, iBase_SUCCESS, iBase_TAG_NOT_FOUND, MB_SUCCESS, MB_TAG_ANY, MB_TYPE_OPAQUE, MOABI, RETURN, size, and TAG_HANDLE.

{
    std::string tmp_tagname( tag_name, tag_name_len );
    eatwhitespace( tmp_tagname );

    ErrorCode result = MOABI->tag_get_handle( tmp_tagname.c_str(), 0, MB_TYPE_OPAQUE, (Tag&)*tag_handle, MB_TAG_ANY );

    if( MB_SUCCESS != result )
    {
        std::string msg( "iMesh_getTagHandle: problem getting handle for tag named '" );
        msg += std::string( tag_name ) + std::string( "'" );
        *tag_handle = 0;
        ERROR( result, msg.c_str() );
    }

    // do not return variable-length tags through ITAPS API
    int size;
    if( MB_SUCCESS != MOABI->tag_get_length( TAG_HANDLE( *tag_handle ), size ) ) RETURN( iBase_TAG_NOT_FOUND );

    RETURN( iBase_SUCCESS );
}
void iMesh_getTagName ( iMesh_Instance  instance,
const iBase_TagHandle  tag_handle,
char *  name,
int *  err,
int  name_len 
)

Get the name for a given tag handle.

Get the name for a given tag handle

Parameters:
[in]instanceiMesh instance handle
[in]tag_handleTag handle being queried
[in,out]namePointer to character string to store name returned from
[out]errReturned Error status (see iBase_ErrorType)
[in]name_lenLength of character string input to function (String Length Arguments)

Definition at line 1532 of file iMesh_MOAB.cpp.

References CHKERR, ErrorCode, iBase_SUCCESS, MOABI, RETURN, and TAG_HANDLE.

{
    static ::std::string name;
    ErrorCode result = MOABI->tag_get_name( TAG_HANDLE( tag_handle ), name );CHKERR( result, "iMesh_getTagName: problem getting name." );

    strncpy( out_data, name.c_str(), out_data_len );
    RETURN( iBase_SUCCESS );
}
void iMesh_getTagSizeBytes ( iMesh_Instance  instance,
const iBase_TagHandle  tag_handle,
int *  tag_size,
int *  err 
)

Get size of a tag in units of bytes.

Get size of a tag in units of bytes

Parameters:
[in]instanceiMesh instance handle
[in]tag_handleHandle of tag being queried
[out]tag_sizePointer to tag size returned from function
[out]errReturned Error status (see iBase_ErrorType)

Definition at line 1581 of file iMesh_MOAB.cpp.

References CHKERR, ErrorCode, iBase_SUCCESS, MOABI, RETURN, and TAG_HANDLE.

{
    ErrorCode result = MOABI->tag_get_bytes( TAG_HANDLE( tag_handle ), *tag_size_bytes );CHKERR( result, "iMesh_getTagSize: problem getting size." );

    RETURN( iBase_SUCCESS );
}
void iMesh_getTagSizeValues ( iMesh_Instance  instance,
const iBase_TagHandle  tag_handle,
int *  tag_size,
int *  err 
)

Get size of a tag in units of numbers of tag data type.

Get size of a tag in units of numbers of tag data type

Parameters:
[in]instanceiMesh instance handle
[in]tag_handleHandle of tag being queried
[out]tag_sizePointer to tag size returned from function
[out]errReturned Error status (see iBase_ErrorType)

Definition at line 1571 of file iMesh_MOAB.cpp.

References CHKERR, ErrorCode, iBase_SUCCESS, MOABI, RETURN, and TAG_HANDLE.

{
    ErrorCode result = MOABI->tag_get_length( TAG_HANDLE( tag_handle ), *tag_size_val );CHKERR( result, "iMesh_getTagSize: problem getting size." );

    RETURN( iBase_SUCCESS );
}
void iMesh_getTagType ( iMesh_Instance  instance,
const iBase_TagHandle  tag_handle,
int *  tag_type,
int *  err 
)

Get the data type of the specified tag handle.

Get the data type of the specified tag handle. Tag type is a value in the iBase_TagType enumeration.

Parameters:
[in]instanceiMesh instance handle
[in]tag_handleHandle for the tag being queried
[out]tag_typePointer to tag type returned from function
[out]errReturned Error status (see iBase_ErrorType)

Definition at line 1545 of file iMesh_MOAB.cpp.

References check_handle_tag_type(), CHKERR, ErrorCode, iBase_ENTITY_HANDLE, iBase_ENTITY_SET_HANDLE, iBase_SUCCESS, MB_TYPE_HANDLE, MBIMESHI, MOABI, RETURN, TAG_HANDLE, and tstt_data_type_table.

{
    DataType this_type;
    ErrorCode result = MOABI->tag_get_data_type( TAG_HANDLE( tag_handle ), this_type );CHKERR( result, "iMesh_getTagType: problem getting type." );

    if( this_type != MB_TYPE_HANDLE )
        *value_type = tstt_data_type_table[this_type];
    else if( MBIMESHI->is_set_handle_tag( TAG_HANDLE( tag_handle ) ) )
        *value_type = iBase_ENTITY_SET_HANDLE;
    else if( MBIMESHI->is_ent_handle_tag( TAG_HANDLE( tag_handle ) ) )
        *value_type = iBase_ENTITY_HANDLE;
    else
    {
        result = check_handle_tag_type( TAG_HANDLE( tag_handle ), MBIMESHI );CHKERR( result, "iMesh_getTagType: problem guessing handle tag subtype" );
        if( MBIMESHI->is_set_handle_tag( TAG_HANDLE( tag_handle ) ) )
            *value_type = iBase_ENTITY_SET_HANDLE;
        else
            *value_type = iBase_ENTITY_HANDLE;
    }

    RETURN( iBase_SUCCESS );
}
void iMesh_rmvArrTag ( iMesh_Instance  instance,
const iBase_EntityHandle entity_handles,
const int  entity_handles_size,
const iBase_TagHandle  tag_handle,
int *  err 
)

Remove a tag value from an array of entities.

Remove a tag value from an array of entities

Parameters:
[in]instanceiMesh instance handle
[in]entity_handlesEntity from which tag is being removed
[in]entity_handles_sizeNumber of entities in entity array
[in]tag_handleTag handle of tag being removed
[out]errReturned Error status (see iBase_ErrorType)

Definition at line 2085 of file iMesh_MOAB.cpp.

References CHKNONEMPTY, CONST_HANDLE_ARRAY_PTR, ErrorCode, iBase_ERROR_MAP, iBase_SUCCESS, MB_TAG_NOT_FOUND, MOABI, RETURN, and TAG_HANDLE.

{
    if( 0 == entity_handles_size ) RETURN( iBase_SUCCESS );
    CHKNONEMPTY();

    ErrorCode result = MOABI->tag_delete_data( TAG_HANDLE( tag_handle ), CONST_HANDLE_ARRAY_PTR( entity_handles ),
                                               entity_handles_size );

    // don't return an error if the tag simply wasn't set on the entities
    if( MB_TAG_NOT_FOUND == result )
        RETURN( iBase_SUCCESS );
    else
        RETURN( iBase_ERROR_MAP[result] );
}
void iMesh_rmvEntSetTag ( iMesh_Instance  instance,
iBase_EntitySetHandle  entity_set_handle,
const iBase_TagHandle  tag_handle,
int *  err 
)

Remove a tag value from an entity set.

Remove a tag value from an entity set

Parameters:
[in]instanceiMesh instance handle
[in]entity_set_handleEntity set from which tag is being removed
[in]tag_handleTag handle of tag being removed
[out]errReturned Error status (see iBase_ErrorType)

Definition at line 1787 of file iMesh_MOAB.cpp.

References ENTITY_HANDLE, ErrorCode, iBase_ERROR_MAP, iBase_SUCCESS, MB_TAG_NOT_FOUND, MOABI, RETURN, and TAG_HANDLE.

{
    EntityHandle set = ENTITY_HANDLE( entity_set_handle );
    ErrorCode result = MOABI->tag_delete_data( TAG_HANDLE( tag_handle ), &set, 1 );

    // don't return an error if the tag simply wasn't set on the ent set
    if( MB_TAG_NOT_FOUND == result )
        RETURN( iBase_SUCCESS );
    else
        RETURN( iBase_ERROR_MAP[result] );
}
void iMesh_rmvTag ( iMesh_Instance  instance,
iBase_EntityHandle  entity_handle,
const iBase_TagHandle  tag_handle,
int *  err 
)

Remove a tag value from an entity.

Remove a tag value from an entity

Parameters:
[in]instanceiMesh instance handle
[in]entity_handleEntity from which tag is being removed
[in]tag_handleTag handle of tag being removed
[out]errReturned Error status (see iBase_ErrorType)

Definition at line 2239 of file iMesh_MOAB.cpp.

References iMesh_rmvArrTag.

{
    iMesh_rmvArrTag( instance, &entity_handle, 1, tag_handle, err );
}
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines