MOAB: Mesh Oriented datABase
(version 5.4.1)
|
#include "iRel_Lasso.hpp"
#include "Lasso.hpp"
#include "AssocPair.hpp"
#include "ArrayManager.hpp"
#include <algorithm>
#include <cmath>
#include <cstdio>
#include <iostream>
#include <map>
#include <vector>
Go to the source code of this file.
Functions | |
void | iRel_getErrorType (iRel_Instance instance, int *error_type) |
Get the error type returned from the last iRel function. | |
void | iRel_getDescription (iRel_Instance instance, char *descr, int descr_len) |
Get a description of the error returned from the last iRel function. | |
void | iRel_create (const char *, iRel_Instance *instance, int *err, const int options_len) |
Create a new iRel instance. | |
void | iRel_destroy (iRel_Instance instance, int *err) |
Destroy the interface object. | |
void | iRel_createPair (iRel_Instance instance, iBase_Instance iface1, const int ent_or_set1, const int iface_type1, const int irel_status1, iBase_Instance iface2, const int ent_or_set2, const int iface_type2, const int irel_status2, iRel_PairHandle *pair, int *err) |
Create a relation pair between two interfaces. | |
void | iRel_getPairInfo (iRel_Instance instance, iRel_PairHandle pair, iBase_Instance *iface1, int *ent_or_set1, int *iface_type1, int *irel_status1, iBase_Instance *iface2, int *ent_or_set2, int *iface_type2, int *irel_status2, int *err) |
Get information for this relation handle. | |
void | iRel_changePairType (iRel_Instance instance, iRel_PairHandle pair, int ent_or_set1, int ent_or_set2, int *err) |
Change the relation type. | |
void | iRel_changePairStatus (iRel_Instance instance, iRel_PairHandle pair, int irel_status1, int irel_status2, int *err) |
Change the relation status. | |
void | iRel_destroyPair (iRel_Instance instance, iRel_PairHandle pair, int *err) |
Destroy a relation pair. | |
void | iRel_findPairs (iRel_Instance instance, iBase_Instance iface, iRel_PairHandle **pairs, int *pairs_allocated, int *pairs_size, int *err) |
Get relations containing specified interface. | |
void | iRel_setEntEntRelation (iRel_Instance instance, iRel_PairHandle pair, iBase_EntityHandle ent1, iBase_EntityHandle ent2, int *err) |
Set a relation between two entities. | |
void | iRel_setEntSetRelation (iRel_Instance instance, iRel_PairHandle pair, iBase_EntityHandle ent1, iBase_EntitySetHandle set2, int *err) |
Set a relation between an entity and an entity set. | |
void | iRel_setSetEntRelation (iRel_Instance instance, iRel_PairHandle pair, iBase_EntitySetHandle set1, iBase_EntityHandle ent2, int *err) |
Set a relation between an entity set an an entity. | |
void | iRel_setSetSetRelation (iRel_Instance instance, iRel_PairHandle pair, iBase_EntitySetHandle set1, iBase_EntitySetHandle set2, int *err) |
Set a relation between two entity sets. | |
void | iRel_setEntArrEntArrRelation (iRel_Instance instance, iRel_PairHandle pair, iBase_EntityHandle *ent_array_1, int num_entities1, iBase_EntityHandle *ent_array_2, int num_entities2, int *err) |
Set relations between arrays of entities pairwise, ent_array_1[i]<->ent_array_2[i]. | |
void | iRel_setEntArrSetArrRelation (iRel_Instance instance, iRel_PairHandle pair, iBase_EntityHandle *ent_array_1, int num_entities1, iBase_EntitySetHandle *set_array_2, int num_sets2, int *err) |
Set relations between arrays of entities and entity sets. | |
void | iRel_setSetArrEntArrRelation (iRel_Instance instance, iRel_PairHandle pair, iBase_EntitySetHandle *set_array_1, int num_sets1, iBase_EntityHandle *ent_array_2, int num_entities2, int *err) |
Set relations between arrays of entity sets and entities. | |
void | iRel_setSetArrSetArrRelation (iRel_Instance instance, iRel_PairHandle pair, iBase_EntitySetHandle *set_array_1, int num_sets1, iBase_EntitySetHandle *set_array_2, int num_sets2, int *err) |
Set relations between arrays of entity sets pairwise, ent_array_1[i]<->ent_array_2[i]. | |
void | iRel_getEntEntRelation (iRel_Instance instance, iRel_PairHandle pair, iBase_EntityHandle ent1, int switch_order, iBase_EntityHandle *ent2, int *err) |
Get entity related to specified entity and relation handle. | |
void | iRel_getEntSetRelation (iRel_Instance instance, iRel_PairHandle pair, iBase_EntityHandle ent1, int switch_order, iBase_EntitySetHandle *set2, int *err) |
Get entity set related to specified entity and relation handle. | |
void | iRel_getSetEntRelation (iRel_Instance instance, iRel_PairHandle pair, iBase_EntitySetHandle set1, int switch_order, iBase_EntityHandle *ent2, int *err) |
Get entity related to specified entity set and relation handle. | |
void | iRel_getSetSetRelation (iRel_Instance instance, iRel_PairHandle pair, iBase_EntitySetHandle set1, int switch_order, iBase_EntitySetHandle *set2, int *err) |
Get entity set related to specified entity set and relation handle. | |
void | iRel_getEntSetIterRelation (iRel_Instance instance, iRel_PairHandle pair, iBase_EntityHandle ent1, int switch_order, iBase_EntityIterator *entset2, int *err) |
Get entity iterator related to specified entity set and relation handle. | |
void | iRel_getEntArrEntArrRelation (iRel_Instance instance, iRel_PairHandle pair, iBase_EntityHandle *ent_array_1, int ent_array_1_size, int switch_order, iBase_EntityHandle **ent_array_2, int *ent_array_2_allocated, int *ent_array_2_size, int *err) |
Get entities related to those in specified array and relation, pairwise. | |
void | iRel_getEntArrSetArrRelation (iRel_Instance instance, iRel_PairHandle pair, iBase_EntityHandle *ent_array_1, int ent_array_1_size, int switch_order, iBase_EntitySetHandle **set_array_2, int *set_array_2_allocated, int *set_array_2_size, int *err) |
Get entity sets related to entities in specified array and relation, pairwise. | |
void | iRel_getSetArrEntArrRelation (iRel_Instance instance, iRel_PairHandle pair, iBase_EntitySetHandle *set_array_1, int set_array_1_size, int switch_order, iBase_EntityHandle **ent_array_2, int *ent_array_2_allocated, int *ent_array_2_size, int *err) |
Get entities related to entity sets in specified array and relation, pairwise. | |
void | iRel_getSetArrSetArrRelation (iRel_Instance instance, iRel_PairHandle pair, iBase_EntitySetHandle *set_array_1, int set_array_1_size, int switch_order, iBase_EntitySetHandle **set_array_2, int *set_array_2_allocated, int *set_array_2_size, int *err) |
Get entity sets related to entity sets in specified array and relation, pairwise. | |
void | iRel_getEntArrSetIterArrRelation (iRel_Instance instance, iRel_PairHandle pair, iBase_EntityHandle *ent_array_1, int ent_array_1_size, int switch_order, iBase_EntityIterator **entiter, int *entiter_allocated, int *entiter_size, int *err) |
Get entity iterators related to entity sets in specified array and relation. | |
void | iRel_rmvEntRelation (iRel_Instance instance, iRel_PairHandle pair, iBase_EntityHandle ent, int switch_order, int *err) |
Remove a relation from an entity. | |
void | iRel_rmvSetRelation (iRel_Instance instance, iRel_PairHandle pair, iBase_EntitySetHandle entset, int switch_order, int *err) |
Remove a relation from an entity set. | |
void | iRel_rmvEntArrRelation (iRel_Instance instance, iRel_PairHandle pair, iBase_EntityHandle *ent_array, int num_ent, int switch_order, int *err) |
Remove a relation from an array of entities. | |
void | iRel_rmvSetArrRelation (iRel_Instance instance, iRel_PairHandle pair, iBase_EntitySetHandle *entset_array, int num_ent, int switch_order, int *err) |
Remove a relation from an array of entity sets. | |
static int | get_gids_and_dims (iRel_PairHandle pair, int iface_no, iBase_EntityHandle *ents, int ents_size, int ent_or_set, std::vector< int > &ents_gids, std::vector< int > &ents_dims) |
static void | iRel_inferArrArrRelations (iRel_Instance instance, iRel_PairHandle pair, iBase_EntityHandle *ents1, const int ents1_size, int ent_or_set1, iBase_EntityHandle *ents2, const int ents2_size, int ent_or_set2, int *err) |
void | iRel_inferEntArrEntArrRelations (iRel_Instance instance, iRel_PairHandle pair, iBase_EntityHandle *ents1, const int ents1_size, iBase_EntityHandle *ents2, const int ents2_size, int *err) |
void | iRel_inferEntArrSetArrRelations (iRel_Instance instance, iRel_PairHandle pair, iBase_EntityHandle *ents1, const int ents1_size, iBase_EntitySetHandle *ents2, const int ents2_size, int *err) |
void | iRel_inferSetArrEntArrRelations (iRel_Instance instance, iRel_PairHandle pair, iBase_EntitySetHandle *ents1, const int ents1_size, iBase_EntityHandle *ents2, const int ents2_size, int *err) |
void | iRel_inferSetArrSetArrRelations (iRel_Instance instance, iRel_PairHandle pair, iBase_EntitySetHandle *ents1, const int ents1_size, int, iBase_EntitySetHandle *ents2, const int ents2_size, int, int *err) |
void | iRel_inferAllRelations (iRel_Instance instance, iRel_PairHandle pair, int *err) |
Infer relations between entities in specified pair of interfaces. | |
void | iRel_inferAllRelationsAndType (iRel_Instance instance, iRel_PairHandle *, int *err) |
Infer relations and relation type between entities in specified pair of interfaces. | |
void | iRel_inferEntRelations (iRel_Instance instance, iRel_PairHandle pair, iBase_EntityHandle entity, int iface_no, int *err) |
Infer relations corresponding to specified entity and relation pair. | |
void | iRel_inferSetRelations (iRel_Instance instance, iRel_PairHandle pair, iBase_EntitySetHandle entity, int iface_no, int *err) |
Brief unavailable. | |
static void | iRel_inferArrRelations (iRel_Instance instance, iRel_PairHandle pair, iBase_EntityHandle *entities, int entities_size, bool is_set, int iface_no, int *err) |
void | iRel_inferEntArrRelations (iRel_Instance instance, iRel_PairHandle pair, iBase_EntityHandle *entities, int entities_size, int iface_no, int *err) |
Infer relations corresponding to specified entities and relation pair. | |
void | iRel_inferSetArrRelations (iRel_Instance instance, iRel_PairHandle pair, iBase_EntitySetHandle *entities, int entities_size, int iface_no, int *err) |
Brief unavailable. | |
Variables | |
const bool | debug = false |
static int get_gids_and_dims | ( | iRel_PairHandle | pair, |
int | iface_no, | ||
iBase_EntityHandle * | ents, | ||
int | ents_size, | ||
int | ent_or_set, | ||
std::vector< int > & | ents_gids, | ||
std::vector< int > & | ents_dims | ||
) | [static] |
Definition at line 513 of file iRel_Lasso.cpp.
References ASSOCPAIRI, iBase_SUCCESS, iBase_TAG_NOT_FOUND, and iRel_ENTITY.
Referenced by iRel_inferArrArrRelations().
{ int result; iBase_EntitySetHandle* sets = reinterpret_cast< iBase_EntitySetHandle* >( ents ); ents_gids.resize( ents_size ); if( ent_or_set == iRel_ENTITY ) result = ASSOCPAIRI->get_gids( iface_no, ents, ents_size, &ents_gids[0] ); else result = ASSOCPAIRI->get_gids( iface_no, sets, ents_size, &ents_gids[0] ); if( iBase_SUCCESS != result && iBase_TAG_NOT_FOUND != result ) return result; ents_dims.resize( ents_size, -1 ); if( ent_or_set == iRel_ENTITY ) { int* ents_dims_ptr = &ents_dims[0]; int ents_dims_alloc = ents_dims.size(), ents_dims_size; result = ASSOCPAIRI->get_ents_dims( iface_no, ents, ents_size, &ents_dims_ptr, &ents_dims_alloc, &ents_dims_size ); } else { result = ASSOCPAIRI->get_dims( iface_no, sets, ents_size, &ents_dims[0] ); } if( iBase_SUCCESS != result && iBase_TAG_NOT_FOUND != result ) return result; return iBase_SUCCESS; }
void iRel_changePairStatus | ( | iRel_Instance | instance, |
iRel_PairHandle | pair, | ||
int | irel_status1, | ||
int | irel_status2, | ||
int * | err | ||
) |
Change the relation status.
Change the status of one or both sides of a relation. It is an error to change the status of both sides to iRel_NOTEXIST. If a side is changed to iRel_NOTEXIST, it will no longer be changeable back to iRel_ACTIVE or iRel_INACTIVE. Changing a side from iRel_INACTIVE to iRel_ACTIVE implies a traversal of all related entities on the other side, to recover the relations on the side being changed. Changing both sides from iRel_ACTIVE to something else is an error, since in that case neither will be able to be updated to iRel_ACTIVE.
[in] | instance | iRel instance handle |
[in] | pair | Relation pair handle being changed |
[in] | irel_status1 | The new status of side 1 of this relation pair |
[in] | irel_status2 | The new status of side 2 of this relation pair |
[out] | err | Returned Error status (see iBase_ErrorType) |
Definition at line 122 of file iRel_Lasso.cpp.
References ASSOCPAIRI, CHK_ERROR, and CHK_PAIR.
{ CHK_PAIR(); CHK_ERROR( ASSOCPAIRI->change_status( 0, static_cast< iRel_RelationStatus >( irel_status1 ) ) );CHK_ERROR( ASSOCPAIRI->change_status( 1, static_cast< iRel_RelationStatus >( irel_status2 ) ) ); }
void iRel_changePairType | ( | iRel_Instance | instance, |
iRel_PairHandle | pair, | ||
int | ent_or_set1, | ||
int | ent_or_set2, | ||
int * | err | ||
) |
Change the relation type.
Change the type of one or both sides of a relation. Only changes that result in no lost information are allowed, e.g. changing a type from SET to BOTH or vice versa.
[in] | instance | iRel instance handle |
[in] | pair | Relation pair handle being changed |
[in] | ent_or_set1 | The new type of side 1 of this relation pair |
[in] | ent_or_set2 | The new type of side 2 of this relation pair |
[out] | err | Returned Error status (see iBase_ErrorType) |
Definition at line 115 of file iRel_Lasso.cpp.
References ASSOCPAIRI, CHK_ERROR, and CHK_PAIR.
{ CHK_PAIR(); CHK_ERROR( ASSOCPAIRI->change_type( 0, static_cast< iRel_RelationType >( ent_or_set1 ) ) );CHK_ERROR( ASSOCPAIRI->change_type( 1, static_cast< iRel_RelationType >( ent_or_set2 ) ) ); }
void iRel_create | ( | const char * | options, |
iRel_Instance * | instance, | ||
int * | err, | ||
const int | options_len | ||
) |
Create a new iRel instance.
Create a new iRel instance. Currently no options are implemented.
[in] | instance | iRel instance handle |
[out] | err | Returned Error status (see iBase_ErrorType) |
[in] | options_len | Length of options string |
Definition at line 49 of file iRel_Lasso.cpp.
References iBase_NOT_SUPPORTED, and iBase_SUCCESS.
{ if( 0 != options_len ) { *instance = NULL; *err = iBase_NOT_SUPPORTED; } *instance = new Lasso(); *err = iBase_SUCCESS; }
void iRel_createPair | ( | iRel_Instance | instance, |
iBase_Instance | iface1, | ||
const int | ent_or_set1, | ||
const int | iface_type1, | ||
const int | irel_status1, | ||
iBase_Instance | iface2, | ||
const int | ent_or_set2, | ||
const int | iface_type2, | ||
const int | irel_status2, | ||
iRel_PairHandle * | pair, | ||
int * | err | ||
) |
Create a relation pair between two interfaces.
Creates a relation pair between two interfaces, passing back a handle to the pair. It is an error to create a relation pair having both sides iRel_NOTEXIST. If a relation pair has a side with status iRel_NOTEXIST, the relation for that side is never stored, and the status cannot change over the life of the relation pair.
[in] | instance | iRel instance handle |
[in] | iface1 | 1st interface object in the relation pair |
[in] | ent_or_set1 | This relation relates entities, sets, or both from 1st interface object |
[in] | iface_type1 | Type of 1st interface |
[in] | irel_status1 | The status of 1st side |
[in] | iface2 | 2nd interface object in the relation pair |
[in] | ent_or_set2 | This relation relates entities, sets, or both from 2nd interface object |
[in] | iface_type2 | Type of 2nd interface |
[in] | irel_status2 | The status of 2nd side |
[out] | pair | Pointer to relation pair handle, returned from function |
[out] | err | Returned Error status (see iBase_ErrorType) |
Definition at line 67 of file iRel_Lasso.cpp.
References iBase_SUCCESS, LASSOI, and RETURN.
{ AssocPair* assoc_pair = new AssocPair( instance, iface1, static_cast< iRel_RelationType >( ent_or_set1 ), static_cast< iRel_IfaceType >( iface_type1 ), static_cast< iRel_RelationStatus >( irel_status1 ), iface2, static_cast< iRel_RelationType >( ent_or_set2 ), static_cast< iRel_IfaceType >( iface_type2 ), static_cast< iRel_RelationStatus >( irel_status2 ) ); LASSOI->insert_pair( assoc_pair ); *pair = reinterpret_cast< iRel_PairHandle >( assoc_pair ); RETURN( iBase_SUCCESS ); }
void iRel_destroy | ( | iRel_Instance | instance, |
int * | err | ||
) |
Destroy the interface object.
Calls destructor on interface object
[in] | instance | iRel instance handle |
[out] | err | Returned Error status (see iBase_ErrorType) |
Definition at line 61 of file iRel_Lasso.cpp.
References iBase_SUCCESS, and LASSOI.
{ delete LASSOI; *err = iBase_SUCCESS; }
void iRel_destroyPair | ( | iRel_Instance | instance, |
iRel_PairHandle | pair, | ||
int * | err | ||
) |
Destroy a relation pair.
Destroy the relation pair corresponding to the handle input
[in] | instance | iRel instance handle |
[in] | pair | Handle of relation pair to destroy |
[out] | err | Returned Error status (see iBase_ErrorType) |
Definition at line 129 of file iRel_Lasso.cpp.
References ASSOCPAIRI, CHK_ERROR, CHK_PAIR, and LASSOI.
{ CHK_PAIR(); CHK_ERROR( LASSOI->erase_pair( ASSOCPAIRI ) ); }
void iRel_findPairs | ( | iRel_Instance | instance, |
iBase_Instance | iface, | ||
iRel_PairHandle ** | pairs, | ||
int * | pairs_allocated, | ||
int * | pairs_size, | ||
int * | err | ||
) |
Get relations containing specified interface.
Get relations containing the specified interface
[in] | instance | iRel instance handle |
[in] | iface | Specified interface |
[in,out] | pairs | Pointer to array holding returned relation pairs containing specified interface |
[in,out] | pairs_allocated | Pointer to allocated size of relation pairs list |
[out] | pairs_size | Pointer to occupied size of relation pairs list |
[out] | err | Returned Error status (see iBase_ErrorType) |
Definition at line 136 of file iRel_Lasso.cpp.
References ALLOC_CHECK_ARRAY_NOFAIL, iBase_SUCCESS, LASSOI, and RETURN.
{ std::vector< AssocPair* > tmp_pairs; LASSOI->find_pairs( iface, tmp_pairs ); ALLOC_CHECK_ARRAY_NOFAIL( pairs, tmp_pairs.size() ); for( size_t i = 0; i < tmp_pairs.size(); ++i ) { ( *pairs )[i] = reinterpret_cast< iRel_PairHandle >( tmp_pairs[i] ); } RETURN( iBase_SUCCESS ); }
void iRel_getDescription | ( | iRel_Instance | instance, |
char * | descr, | ||
int | descr_len | ||
) |
Get a description of the error returned from the last iRel function.
Get a description of the error returned from the last iRel function
[in] | instance | iRel instance handle |
[in,out] | descr | Pointer to a character string to be filled with a description of the error from the last iRel function |
[in] | descr_len | Length of the character string pointed to by descr |
Definition at line 35 of file iRel_Lasso.cpp.
References LASSOI.
void iRel_getEntArrEntArrRelation | ( | iRel_Instance | instance, |
iRel_PairHandle | pair, | ||
iBase_EntityHandle * | ent_array_1, | ||
int | ent_array_1_size, | ||
int | switch_order, | ||
iBase_EntityHandle ** | ent_array_2, | ||
int * | ent_array_2_allocated, | ||
int * | ent_array_2_size, | ||
int * | err | ||
) |
Get entities related to those in specified array and relation, pairwise.
Get entities related to those in specified array and relation, pairwise. Returns sets or entities, depending on relation type and entities in ent_array_1. It is an error to get a relation for a side with status iRel_NOTEXIST.
[in] | instance | iRel instance handle |
[in] | pair | Relation pair handle being queried |
[in] | ent_array_1 | Array of entities whose relations are being queried |
[in] | ent_array_1_size | Number of entities in ent_array_1 |
[in] | switch_order | Entities in ent_array_1 are related with 1st (=0) or 2nd (=1) interface of this relation pair |
[in,out] | ent_array_2 | Pointer to array of entity handles returned from function |
[in,out] | ent_array_2_allocated | Pointer to allocated size of ent_array_2 |
[out] | ent_array_2_size | Pointer to occupied size of ent_array_2 |
[out] | err | Returned Error status (see iBase_ErrorType) |
Definition at line 371 of file iRel_Lasso.cpp.
References ALLOC_CHECK_ARRAY, ASSOCPAIRI, CHK_ERROR, CHK_PAIR, iBase_SUCCESS, KEEP_ARRAY, and RETURN.
{ CHK_PAIR(); int iface_no = ( switch_order ? 1 : 0 ); ALLOC_CHECK_ARRAY( ent_array_2, ent_array_1_size );CHK_ERROR( ASSOCPAIRI->get_relation( iface_no, ent_array_1, ent_array_1_size, *ent_array_2 ) ); KEEP_ARRAY( ent_array_2 ); RETURN( iBase_SUCCESS ); }
void iRel_getEntArrSetArrRelation | ( | iRel_Instance | instance, |
iRel_PairHandle | pair, | ||
iBase_EntityHandle * | ent_array_1, | ||
int | ent_array_1_size, | ||
int | switch_order, | ||
iBase_EntitySetHandle ** | entset_array_2, | ||
int * | entset_array_2_allocated, | ||
int * | entset_array_2_size, | ||
int * | err | ||
) |
Get entity sets related to entities in specified array and relation, pairwise.
Description unavailable.
[in] | instance | iRel instance handle |
[in] | pair | Relation pair handle being queried |
[in] | ent_array_1 | Array of entities whose relations are being queried |
[in] | ent_array_1_size | Number of entities in ent_array_1 |
[in] | switch_order | Entities in ent_array_1 are related with 1st (=0) or 2nd (=1) interface of this relation pair |
[in,out] | set_array_2 | Pointer to array of entity set handles returned from function |
[in,out] | set_array_2_allocated | Pointer to allocated size of entset_array_2 |
[out] | set_array_2_size | Pointer to occupied size of entset_array_2 |
[out] | err | Returned Error status (see iBase_ErrorType) |
Definition at line 390 of file iRel_Lasso.cpp.
References ALLOC_CHECK_ARRAY, ASSOCPAIRI, CHK_ERROR, CHK_PAIR, iBase_SUCCESS, KEEP_ARRAY, and RETURN.
{ CHK_PAIR(); int iface_no = ( switch_order ? 1 : 0 ); ALLOC_CHECK_ARRAY( set_array_2, ent_array_1_size );CHK_ERROR( ASSOCPAIRI->get_relation( iface_no, ent_array_1, ent_array_1_size, *set_array_2 ) ); KEEP_ARRAY( set_array_2 ); RETURN( iBase_SUCCESS ); }
void iRel_getEntArrSetIterArrRelation | ( | iRel_Instance | instance, |
iRel_PairHandle | pair, | ||
iBase_EntityHandle * | ent_array_1, | ||
int | ent_array_1_size, | ||
int | switch_order, | ||
iBase_EntityIterator ** | entiter, | ||
int * | entiter_allocated, | ||
int * | entiter_size, | ||
int * | err | ||
) |
Get entity iterators related to entity sets in specified array and relation.
Description unavailable.
[in] | instance | iRel instance handle |
[in] | pair | Relation pair handle being queried |
[in] | ent_array_1 | Array of entities whose relations are being queried |
[in] | ent_array_1_size | Number of entities in ent_array_1 |
[in] | switch_order | Entities in ent_array_1 are related with 1st (=0) or 2nd (=1) interface of this relation pair |
[in,out] | entiter | Pointer to array of entity iterator handles returned from function |
[in,out] | entiter_allocated | Pointer to allocated size of entiter |
[out] | entiter_size | Pointer to occupied size of entiter |
[out] | err | Returned Error status (see iBase_ErrorType) |
Definition at line 447 of file iRel_Lasso.cpp.
References ALLOC_CHECK_ARRAY, ASSOCPAIRI, CHK_ERROR, CHK_PAIR, iBase_SUCCESS, KEEP_ARRAY, and RETURN.
{ CHK_PAIR(); int iface_no = ( switch_order ? 1 : 0 ); ; ALLOC_CHECK_ARRAY( entiter, ent_array_1_size );CHK_ERROR( ASSOCPAIRI->get_relation( iface_no, ent_array_1, ent_array_1_size, *entiter ) ); KEEP_ARRAY( entiter ); RETURN( iBase_SUCCESS ); }
void iRel_getEntEntRelation | ( | iRel_Instance | instance, |
iRel_PairHandle | pair, | ||
iBase_EntityHandle | ent1, | ||
int | switch_order, | ||
iBase_EntityHandle * | ent2, | ||
int * | err | ||
) |
Get entity related to specified entity and relation handle.
Get entity related to specified entity and relation handle. Also returns whether the related entity is an entity or a set. It is an error to get a relation for a side with status iRel_NOTEXIST.
[in] | instance | iRel instance handle |
[in] | pair | Relation pair handle being queried |
[in] | ent1 | 1st entity of relation being queried |
[in] | switch_order | 1st entity is related to 1st interface (=0) or 2nd interface (=1) of relation pair |
[out] | ent2 | Pointer to entity related to ent1 |
[out] | err | Returned Error status (see iBase_ErrorType) |
Definition at line 311 of file iRel_Lasso.cpp.
References ASSOCPAIRI, CHK_ERROR, and CHK_PAIR.
{ CHK_PAIR(); int iface_no = ( switch_order ? 1 : 0 );CHK_ERROR( ASSOCPAIRI->get_relation( iface_no, &ent1, 1, ent2 ) ); }
void iRel_getEntSetIterRelation | ( | iRel_Instance | instance, |
iRel_PairHandle | pair, | ||
iBase_EntityHandle | ent1, | ||
int | switch_order, | ||
iBase_EntityIterator * | entIter, | ||
int * | err | ||
) |
Get entity iterator related to specified entity set and relation handle.
Description unavailable.
[in] | instance | iRel instance handle |
[in] | pair | Relation pair handle being queried |
[in] | ent1 | ent1 1st entity set of relation being queried |
[in] | switch_order | 1st entity is related to 1st interface (=0) or 2nd interface (=1) of relation pair |
[out] | entset2 | Returned entity iterator |
[out] | err | Returned Error status (see iBase_ErrorType) |
Definition at line 359 of file iRel_Lasso.cpp.
References ASSOCPAIRI, CHK_ERROR, and CHK_PAIR.
{ CHK_PAIR(); int iface_no = ( switch_order ? 1 : 0 );CHK_ERROR( ASSOCPAIRI->get_relation( iface_no, &ent1, 1, entset2 ) ); }
void iRel_getEntSetRelation | ( | iRel_Instance | instance, |
iRel_PairHandle | pair, | ||
iBase_EntityHandle | ent1, | ||
int | switch_order, | ||
iBase_EntitySetHandle * | entset2, | ||
int * | err | ||
) |
Get entity set related to specified entity and relation handle.
Description unavailable.
[in] | instance | iRel instance handle |
[in] | pair | Relation pair handle being queried |
[in] | ent1 | entity of relation being queried |
[in] | switch_order | 1st entity is related to 1st interface (=0) or 2nd interface (=1) of relation pair |
[out] | set2 | Pointer to entity set related to ent1 |
[out] | err | Returned Error status (see iBase_ErrorType) |
Definition at line 323 of file iRel_Lasso.cpp.
References ASSOCPAIRI, CHK_ERROR, and CHK_PAIR.
{ CHK_PAIR(); int iface_no = ( switch_order ? 1 : 0 );CHK_ERROR( ASSOCPAIRI->get_relation( iface_no, &ent1, 1, set2 ) ); }
void iRel_getErrorType | ( | iRel_Instance | instance, |
int * | error_type | ||
) |
Get the error type returned from the last iRel function.
Get the error type returned from the last iRel function. Value returned is a member of the iBase_ErrorType enumeration.
[in] | instance | iRel instance handle |
[out] | error_type | Error type returned from last iRel function |
Definition at line 27 of file iRel_Lasso.cpp.
References iBase_FAILURE, and LASSOI.
{ if( instance == NULL ) *error_type = iBase_FAILURE; else *error_type = LASSOI->lastErrorType; }
void iRel_getPairInfo | ( | iRel_Instance | instance, |
iRel_PairHandle | pair, | ||
iBase_Instance * | iface1, | ||
int * | ent_or_set1, | ||
int * | iface_type1, | ||
int * | irel_status1, | ||
iBase_Instance * | iface2, | ||
int * | ent_or_set2, | ||
int * | iface_type2, | ||
int * | irel_status2, | ||
int * | err | ||
) |
Get information for this relation handle.
Get information about the interfaces and relation type for this relation. Relation type for each side is passed back as integers, but values will be from RelationType enumeration.
[in] | instance | iRel instance handle |
[in] | pair | handle of relation pair being queried |
[out] | iface1 | Side 1 instance for this relation |
[out] | ent_or_set1 | relation type for side 1 of this relation |
[out] | iface_type1 | Interface type for side 1 of this relation |
[out] | irel_status1 | The status of the first side of this relation |
[out] | iface2 | Side 2 instance for this relation |
[out] | ent_or_set2 | Relation type for side 2 of this relation |
[out] | iface_type2 | Interface type for side 2 of this relation |
[out] | irel_status2 | Status of the 2nd side of this relation |
[out] | err | Returned Error status (see iBase_ErrorType) |
Definition at line 89 of file iRel_Lasso.cpp.
References ASSOCPAIRI, CHK_PAIR, iBase_SUCCESS, and RETURN.
{ CHK_PAIR(); *iface1 = ASSOCPAIRI->iface_instance( 0 ); *ent_or_set1 = ASSOCPAIRI->relation_type( 0 ); *iface_type1 = ASSOCPAIRI->iface_type( 0 ); *irel_status1 = ASSOCPAIRI->relation_status( 0 ); *iface2 = ASSOCPAIRI->iface_instance( 1 ); *iface_type2 = ASSOCPAIRI->iface_type( 1 ); *ent_or_set2 = ASSOCPAIRI->relation_type( 1 ); *irel_status2 = ASSOCPAIRI->relation_status( 1 ); RETURN( iBase_SUCCESS ); }
void iRel_getSetArrEntArrRelation | ( | iRel_Instance | instance, |
iRel_PairHandle | pair, | ||
iBase_EntitySetHandle * | entset_array_1, | ||
int | entset_array_1_size, | ||
int | switch_order, | ||
iBase_EntityHandle ** | ent_array_2, | ||
int * | ent_array_2_allocated, | ||
int * | ent_array_2_size, | ||
int * | err | ||
) |
Get entities related to entity sets in specified array and relation, pairwise.
Description unavailable.
[in] | instance | iRel instance handle |
[in] | pair | Relation pair handle being queried |
[in] | set_array_1 | Array of entity sets whose relations are being queried |
[in] | set_array_1_size | Number of entity sets in entset_array_1 |
[in] | switch_order | Entities in ent_array_1 are related with 1st (=0) or 2nd (=1) interface of this relation pair |
[in,out] | ent_array_2 | Pointer to array of entity handles returned from function |
[in,out] | ent_array_2_allocated | Pointer to allocated size of ent_array_2 |
[out] | ent_array_2_size | Pointer to occupied size of ent_array_2 |
[out] | err | Returned Error status (see iBase_ErrorType) |
Definition at line 409 of file iRel_Lasso.cpp.
References ALLOC_CHECK_ARRAY, ASSOCPAIRI, CHK_ERROR, CHK_PAIR, iBase_SUCCESS, KEEP_ARRAY, and RETURN.
{ CHK_PAIR(); int iface_no = ( switch_order ? 1 : 0 ); ALLOC_CHECK_ARRAY( ent_array_2, set_array_1_size );CHK_ERROR( ASSOCPAIRI->get_relation( iface_no, set_array_1, set_array_1_size, *ent_array_2 ) ); KEEP_ARRAY( ent_array_2 ); RETURN( iBase_SUCCESS ); }
void iRel_getSetArrSetArrRelation | ( | iRel_Instance | instance, |
iRel_PairHandle | pair, | ||
iBase_EntitySetHandle * | entset_array_1, | ||
int | entset_array_1_size, | ||
int | switch_order, | ||
iBase_EntitySetHandle ** | entset_array_2, | ||
int * | entset_array_2_allocated, | ||
int * | entset_array_2_size, | ||
int * | err | ||
) |
Get entity sets related to entity sets in specified array and relation, pairwise.
Description unavailable.
[in] | instance | iRel instance handle |
[in] | pair | Relation pair handle being queried |
[in] | set_array_1 | Array of entity sets whose relations are being queried |
[in] | set_array_1_size | Number of entity sets in entset_array_1 |
[in] | switch_order | Entities in ent_array_1 are related with 1st (=0) or 2nd (=1) interface of this relation pair |
[in,out] | set_array_2 | Pointer to array of entity handles returned from function |
[in,out] | set_array_2_allocated | Pointer to allocated size of entset_array_2 |
[out] | set_array_2_size | Pointer to occupied size of entset_array_2 |
[out] | err | Returned Error status (see iBase_ErrorType) |
Definition at line 428 of file iRel_Lasso.cpp.
References ALLOC_CHECK_ARRAY, ASSOCPAIRI, CHK_ERROR, CHK_PAIR, iBase_SUCCESS, KEEP_ARRAY, and RETURN.
{ CHK_PAIR(); int iface_no = ( switch_order ? 1 : 0 ); ALLOC_CHECK_ARRAY( set_array_2, set_array_1_size );CHK_ERROR( ASSOCPAIRI->get_relation( iface_no, set_array_1, set_array_1_size, *set_array_2 ) ); KEEP_ARRAY( set_array_2 ); RETURN( iBase_SUCCESS ); }
void iRel_getSetEntRelation | ( | iRel_Instance | instance, |
iRel_PairHandle | pair, | ||
iBase_EntitySetHandle | entset1, | ||
int | switch_order, | ||
iBase_EntityHandle * | ent2, | ||
int * | err | ||
) |
Get entity related to specified entity set and relation handle.
Description unavailable.
[in] | instance | iRel instance handle |
[in] | pair | Relation pair handle being queried |
[in] | set1 | entity set of relation being queried |
[in] | switch_order | 1st entity is related to 1st interface (=0) or 2nd interface (=1) of relation pair |
[out] | ent2 | Pointer to entity related to entset1 |
[out] | err | Returned Error status (see iBase_ErrorType) |
Definition at line 335 of file iRel_Lasso.cpp.
References ASSOCPAIRI, CHK_ERROR, and CHK_PAIR.
{ CHK_PAIR(); int iface_no = ( switch_order ? 1 : 0 );CHK_ERROR( ASSOCPAIRI->get_relation( iface_no, &set1, 1, ent2 ) ); }
void iRel_getSetSetRelation | ( | iRel_Instance | instance, |
iRel_PairHandle | pair, | ||
iBase_EntitySetHandle | entset1, | ||
int | switch_order, | ||
iBase_EntitySetHandle * | entset2, | ||
int * | err | ||
) |
Get entity set related to specified entity set and relation handle.
Description unavailable.
[in] | instance | iRel instance handle |
[in] | pair | Relation pair handle being queried |
[in] | set1 | 1st entity set of relation being queried |
[in] | switch_order | 1st entity is related to 1st interface (=0) or 2nd interface (=1) of relation pair |
[out] | set2 | Pointer to entity set related to entset1 |
[out] | err | Returned Error status (see iBase_ErrorType) |
Definition at line 347 of file iRel_Lasso.cpp.
References ASSOCPAIRI, CHK_ERROR, and CHK_PAIR.
{ CHK_PAIR(); int iface_no = ( switch_order ? 1 : 0 );CHK_ERROR( ASSOCPAIRI->get_relation( iface_no, &set1, 1, set2 ) ); }
void iRel_inferAllRelations | ( | iRel_Instance | instance, |
iRel_PairHandle | pair, | ||
int * | err | ||
) |
Infer relations between entities in specified pair of interfaces.
Infer relations between entities in specified pair of interfaces. The criteria used to infer these relations depends on the interfaces in the pair, the iRel implementation, and the source of the data in those interfaces.
[in] | instance | iRel instance handle |
[in] | pair | Relation pair handle being queried |
[out] | err | Returned Error status (see iBase_ErrorType) |
Definition at line 660 of file iRel_Lasso.cpp.
References ASSOCPAIRI, CHK_ERROR, CHK_PAIR, iRel_ENTITY, and iRel_inferArrArrRelations().
{ CHK_PAIR(); // get all entities in those interfaces int result; iBase_EntityHandle* ents1 = NULL; int ents1_alloc = 0, ents1_size; if( ASSOCPAIRI->relation_type( 0 ) != iRel_ENTITY ) result = ASSOCPAIRI->get_all_sets( 0, (iBase_EntitySetHandle**)&ents1, &ents1_alloc, &ents1_size ); else result = ASSOCPAIRI->get_all_entities( 0, -1, &ents1, &ents1_alloc, &ents1_size );CHK_ERROR( result ); iBase_EntityHandle* ents2 = NULL; int ents2_alloc = 0, ents2_size; if( ASSOCPAIRI->relation_type( 1 ) != iRel_ENTITY ) result = ASSOCPAIRI->get_all_sets( 1, (iBase_EntitySetHandle**)&ents2, &ents2_alloc, &ents2_size ); else result = ASSOCPAIRI->get_all_entities( 1, -1, &ents2, &ents2_alloc, &ents2_size );CHK_ERROR( result ); iRel_inferArrArrRelations( instance, pair, ents1, ents1_size, ASSOCPAIRI->relation_type( 0 ), ents2, ents2_size, ASSOCPAIRI->relation_type( 1 ), &result ); free( ents1 ); free( ents2 );CHK_ERROR( result ); }
void iRel_inferAllRelationsAndType | ( | iRel_Instance | instance, |
iRel_PairHandle * | pair, | ||
int * | err | ||
) |
Infer relations and relation type between entities in specified pair of interfaces.
Infer relations between entities in specified pair of interfaces, and the relation type used by this iRel implementation. The criteria used to infer these relations depends on the interfaces in the pair, the iRel implementation, and the source of the data in those interfaces.
[in] | instance | iRel instance handle |
[out] | err | Returned Error status (see iBase_ErrorType) |
Definition at line 688 of file iRel_Lasso.cpp.
References ERROR, and iBase_NOT_SUPPORTED.
{ ERROR( iBase_NOT_SUPPORTED, "Not currently supported." ); }
static void iRel_inferArrArrRelations | ( | iRel_Instance | instance, |
iRel_PairHandle | pair, | ||
iBase_EntityHandle * | ents1, | ||
const int | ents1_size, | ||
int | ent_or_set1, | ||
iBase_EntityHandle * | ents2, | ||
const int | ents2_size, | ||
int | ent_or_set2, | ||
int * | err | ||
) | [static] |
Definition at line 550 of file iRel_Lasso.cpp.
References ASSOCPAIRI, CHK_ERROR, dim, get_gids_and_dims(), iBase_SUCCESS, iRel_ENTITY, and RETURN.
Referenced by iRel_inferAllRelations(), iRel_inferArrRelations(), iRel_inferEntArrEntArrRelations(), iRel_inferEntArrSetArrRelations(), iRel_inferSetArrEntArrRelations(), and iRel_inferSetArrSetArrRelations().
{ int result; std::vector< int > ents_gids, ents_dims; std::map< const int, iBase_EntityHandle > ents_gid_map[4]; get_gids_and_dims( pair, 0, ents1, ents1_size, ent_or_set1, ents_gids, ents_dims ); for( int i = 0; i < ents1_size; i++ ) { int dim = ents_dims[i]; if( 0 <= dim && 3 >= dim ) ents_gid_map[dim][ents_gids[i]] = ents1[i]; } get_gids_and_dims( pair, 1, ents2, ents2_size, ent_or_set2, ents_gids, ents_dims ); for( int i = 0; i < ents2_size; i++ ) { int dim = ents_dims[i]; // only check entities for which the dimension entry is in a reasonable // range if( 0 > dim || 3 < dim ) continue; // there's a match if there's an entity with that dimension with matching id std::map< const int, iBase_EntityHandle >::iterator iter = ents_gid_map[dim].find( ents_gids[i] ); // if it matches, set the relation tags for those entities if( iter != ents_gid_map[dim].end() ) { if( ent_or_set1 == iRel_ENTITY && ent_or_set2 == iRel_ENTITY ) { result = ASSOCPAIRI->set_relation( ( *iter ).second, ents2[i] ); } else if( ent_or_set1 != iRel_ENTITY && ent_or_set2 == iRel_ENTITY ) { result = ASSOCPAIRI->set_relation( (iBase_EntitySetHandle)( *iter ).second, ents2[i] ); } else if( ent_or_set1 == iRel_ENTITY && ent_or_set2 != iRel_ENTITY ) { result = ASSOCPAIRI->set_relation( ( *iter ).second, (iBase_EntitySetHandle)ents2[i] ); } else { // ent_or_set1 != iRel_ENTITY && ent_or_set2 != iRel_ENTITY result = ASSOCPAIRI->set_relation( (iBase_EntitySetHandle)( *iter ).second, (iBase_EntitySetHandle)ents2[i] ); } CHK_ERROR( result ); } } RETURN( iBase_SUCCESS ); }
static void iRel_inferArrRelations | ( | iRel_Instance | instance, |
iRel_PairHandle | pair, | ||
iBase_EntityHandle * | entities, | ||
int | entities_size, | ||
bool | is_set, | ||
int | iface_no, | ||
int * | err | ||
) | [static] |
Definition at line 711 of file iRel_Lasso.cpp.
References ASSOCPAIRI, CHK_ERROR, CHK_PAIR, entities, ERROR, iBase_INVALID_ARGUMENT, iRel_ENTITY, iRel_inferArrArrRelations(), and swap().
Referenced by iRel_inferEntArrRelations(), and iRel_inferSetArrRelations().
{ CHK_PAIR(); if( 0 > iface_no || 1 < iface_no ) { ERROR( iBase_INVALID_ARGUMENT, "Interface number must be 0 or 1" ); } else if( ( is_set && ASSOCPAIRI->relation_type( iface_no ) == iRel_ENTITY ) || ( !is_set && ASSOCPAIRI->relation_type( iface_no ) != iRel_ENTITY ) ) { ERROR( iBase_INVALID_ARGUMENT, "is_set must match entOrSet in call to " "inferArrRelations" ); } // get all entities in iface2 int result; iBase_EntityHandle* ents1 = entities; int ents1_size = entities_size; iBase_EntityHandle* ents2 = NULL; int ents2_alloc = 0, ents2_size; if( ASSOCPAIRI->relation_type( 1 - iface_no ) != iRel_ENTITY ) result = ASSOCPAIRI->get_all_sets( !iface_no, (iBase_EntitySetHandle**)&ents2, &ents2_alloc, &ents2_size ); else result = ASSOCPAIRI->get_all_entities( !iface_no, -1, &ents2, &ents2_alloc, &ents2_size );CHK_ERROR( result ); // switch so that entity lists always go into inferArrArrRelations in // forward order wrt pair if( 1 == iface_no ) { std::swap( ents1, ents2 ); std::swap( ents1_size, ents2_size ); } iRel_inferArrArrRelations( instance, pair, ents1, ents1_size, ASSOCPAIRI->relation_type( 0 ), ents2, ents2_size, ASSOCPAIRI->relation_type( 1 ), &result ); free( 1 == iface_no ? ents1 : ents2 ); CHK_ERROR( result ); }
void iRel_inferEntArrEntArrRelations | ( | iRel_Instance | instance, |
iRel_PairHandle | pair, | ||
iBase_EntityHandle * | ents1, | ||
const int | ents1_size, | ||
iBase_EntityHandle * | ents2, | ||
const int | ents2_size, | ||
int * | err | ||
) |
Definition at line 612 of file iRel_Lasso.cpp.
References iRel_inferArrArrRelations().
{ iRel_inferArrArrRelations( instance, pair, ents1, ents1_size, 0, ents2, ents2_size, 0, err ); }
void iRel_inferEntArrRelations | ( | iRel_Instance | instance, |
iRel_PairHandle | pair, | ||
iBase_EntityHandle * | entities, | ||
int | entities_size, | ||
int | iface_no, | ||
int * | err | ||
) |
Infer relations corresponding to specified entities and relation pair.
Infer relations corresponding to specified entities and relation pair. The criteria used to infer these relations depends on the interfaces in the pair, the iRel implementation, and the source of the data in those interfaces.
[in] | instance | iRel instance handle |
[in] | pair | Relation pair handle being queried |
[in] | entities | Array of entities whose relation are being inferred |
[in] | entities_size | Number of entities in array |
[in] | iface_no | Entities correspond to 1st (=0) or 2nd (=1) interface in relation pair |
[out] | err | Returned Error status (see iBase_ErrorType) |
Definition at line 759 of file iRel_Lasso.cpp.
References iRel_inferArrRelations().
{ iRel_inferArrRelations( instance, pair, entities, entities_size, false, iface_no, err ); }
void iRel_inferEntArrSetArrRelations | ( | iRel_Instance | instance, |
iRel_PairHandle | pair, | ||
iBase_EntityHandle * | ents1, | ||
const int | ents1_size, | ||
iBase_EntitySetHandle * | ents2, | ||
const int | ents2_size, | ||
int * | err | ||
) |
Definition at line 623 of file iRel_Lasso.cpp.
References iRel_inferArrArrRelations().
{ iRel_inferArrArrRelations( instance, pair, ents1, ents1_size, 0, (iBase_EntityHandle*)ents2, ents2_size, 1, err ); }
void iRel_inferEntRelations | ( | iRel_Instance | instance, |
iRel_PairHandle | pair, | ||
iBase_EntityHandle | entity, | ||
int | iface_no, | ||
int * | err | ||
) |
Infer relations corresponding to specified entity and relation pair.
Infer relations corresponding to specified entity and relation pair. The criteria used to infer these relations depends on the interfaces in the pair, the iRel implementation, and the source of the data in those interfaces.
[in] | instance | iRel instance handle |
[in] | pair | Relation pair handle being queried |
[in] | entity | Entity whose relations are being inferred |
[in] | iface_no | Entity corresponds to 1st (=0) or 2nd (=1) interface in relation pair |
[out] | err | Returned Error status (see iBase_ErrorType) |
Definition at line 693 of file iRel_Lasso.cpp.
References iRel_inferEntArrRelations.
{ iRel_inferEntArrRelations( instance, pair, &entity, 1, iface_no, err ); }
void iRel_inferSetArrEntArrRelations | ( | iRel_Instance | instance, |
iRel_PairHandle | pair, | ||
iBase_EntitySetHandle * | ents1, | ||
const int | ents1_size, | ||
iBase_EntityHandle * | ents2, | ||
const int | ents2_size, | ||
int * | err | ||
) |
Definition at line 634 of file iRel_Lasso.cpp.
References iRel_inferArrArrRelations().
{ iRel_inferArrArrRelations( instance, pair, (iBase_EntityHandle*)ents1, ents1_size, 1, ents2, ents2_size, 0, err ); }
void iRel_inferSetArrRelations | ( | iRel_Instance | instance, |
iRel_PairHandle | pair, | ||
iBase_EntitySetHandle * | entity_sets, | ||
int | entities_size, | ||
int | iface_no, | ||
int * | err | ||
) |
Brief unavailable.
Description unavailable
[in] | instance | iRel instance handle |
[in] | pair | description unknown |
[in] | entities | description unknown |
[in] | entities_size | description unknown |
[in] | iface_no | description unknown |
[out] | err | Returned Error status (see iBase_ErrorType) |
Definition at line 769 of file iRel_Lasso.cpp.
References iRel_inferArrRelations().
{ iRel_inferArrRelations( instance, pair, (iBase_EntityHandle*)entities, entities_size, true, iface_no, err ); }
void iRel_inferSetArrSetArrRelations | ( | iRel_Instance | instance, |
iRel_PairHandle | pair, | ||
iBase_EntitySetHandle * | ents1, | ||
const int | ents1_size, | ||
int | , | ||
iBase_EntitySetHandle * | ents2, | ||
const int | ents2_size, | ||
int | , | ||
int * | err | ||
) |
Definition at line 645 of file iRel_Lasso.cpp.
References iRel_inferArrArrRelations().
{ iRel_inferArrArrRelations( instance, pair, (iBase_EntityHandle*)ents1, ents1_size, 1, (iBase_EntityHandle*)ents2, ents2_size, 1, err ); }
void iRel_inferSetRelations | ( | iRel_Instance | instance, |
iRel_PairHandle | pair, | ||
iBase_EntitySetHandle | entity_set, | ||
int | iface_no, | ||
int * | err | ||
) |
Brief unavailable.
Description unavailable
[in] | instance | iRel instance handle |
[in] | pair | description unknown |
[in] | entity | description unknown |
[in] | iface_no | description unknown |
[out] | err | Returned Error status (see iBase_ErrorType) |
Definition at line 702 of file iRel_Lasso.cpp.
References iRel_inferSetArrRelations.
{ iRel_inferSetArrRelations( instance, pair, &entity, 1, iface_no, err ); }
void iRel_rmvEntArrRelation | ( | iRel_Instance | instance, |
iRel_PairHandle | pair, | ||
iBase_EntityHandle * | ent_array_1, | ||
int | num_ent1, | ||
int | switch_order, | ||
int * | err | ||
) |
Remove a relation from an array of entities.
Remove a relation from an array of entities
[in] | instance | iRel instance handle |
[in] | pair | Relation pair handle being queried |
[in] | ent_array | Array of entities of relation being removed |
[in] | num_ent | Number of entities in array |
[in] | switch_order | entities are related to 1st interface (=0) or 2nd interface (=1) of relation pair |
[out] | err | Returned Error status (see iBase_ErrorType) |
Definition at line 489 of file iRel_Lasso.cpp.
References ASSOCPAIRI, CHK_ERROR, and CHK_PAIR.
{ CHK_PAIR(); int iface_no = ( switch_order ? 1 : 0 );CHK_ERROR( ASSOCPAIRI->rmv_relation( iface_no, ent_array, num_ent ) ); }
void iRel_rmvEntRelation | ( | iRel_Instance | instance, |
iRel_PairHandle | pair, | ||
iBase_EntityHandle | ent, | ||
int | switch_order, | ||
int * | err | ||
) |
Remove a relation from an entity.
Remove a relation from an entity
[in] | instance | iRel instance handle |
[in] | pair | Relation pair handle being queried |
[in] | ent | entity of relation being removed |
[in] | switch_order | entity is related to 1st interface (=0) or 2nd interface (=1) of relation pair |
[out] | err | Returned Error status (see iBase_ErrorType) |
Definition at line 467 of file iRel_Lasso.cpp.
References ASSOCPAIRI, CHK_ERROR, and CHK_PAIR.
{ CHK_PAIR(); int iface_no = ( switch_order ? 1 : 0 );CHK_ERROR( ASSOCPAIRI->rmv_relation( iface_no, &ent, 1 ) ); }
void iRel_rmvSetArrRelation | ( | iRel_Instance | instance, |
iRel_PairHandle | pair, | ||
iBase_EntitySetHandle * | entset_array_1, | ||
int | num_entset1, | ||
int | switch_order, | ||
int * | err | ||
) |
Remove a relation from an array of entity sets.
Remove a relation from an array of entity sets
[in] | instance | iRel instance handle |
[in] | pair | Relation pair handle being queried |
[in] | entset_array | Array of entity sets of relation being removed |
[in] | num_ent | Number of entity sets in array |
[in] | switch_order | entity sets are related to 1st interface (=0) or 2nd interface (=1) of relation pair |
[out] | err | Returned Error status (see iBase_ErrorType) |
Definition at line 501 of file iRel_Lasso.cpp.
References ASSOCPAIRI, CHK_ERROR, and CHK_PAIR.
{ CHK_PAIR(); int iface_no = ( switch_order ? 1 : 0 );CHK_ERROR( ASSOCPAIRI->rmv_relation( iface_no, entset_array, num_ent ) ); }
void iRel_rmvSetRelation | ( | iRel_Instance | instance, |
iRel_PairHandle | pair, | ||
iBase_EntitySetHandle | set, | ||
int | switch_order, | ||
int * | err | ||
) |
Remove a relation from an entity set.
Remove a relation from an entity set
[in] | instance | iRel instance handle |
[in] | pair | Relation pair handle being queried |
[in] | entset | entity set of relation being removed |
[in] | switch_order | entity set is related to 1st interface (=0) or 2nd interface (=1) of relation pair |
[out] | err | Returned Error status (see iBase_ErrorType) |
Definition at line 478 of file iRel_Lasso.cpp.
References ASSOCPAIRI, CHK_ERROR, and CHK_PAIR.
{ CHK_PAIR(); int iface_no = ( switch_order ? 1 : 0 );CHK_ERROR( ASSOCPAIRI->rmv_relation( iface_no, &entset, 1 ) ); }
void iRel_setEntArrEntArrRelation | ( | iRel_Instance | instance, |
iRel_PairHandle | pair, | ||
iBase_EntityHandle * | ent_array_1, | ||
int | num_ent1, | ||
iBase_EntityHandle * | ent_array_2, | ||
int | num_ent2, | ||
int * | err | ||
) |
Set relations between arrays of entities pairwise, ent_array_1[i]<->ent_array_2[i].
Set relations between arrays of entities pairwise, ent_array_1[i]<->ent_array_2[i]. If either array contains sets and that side of the relation is 'both'-type, set relations for individual entities in those sets too. It is an error to set a relation on a pair with both sides not iRel_ACTIVE.
[in] | instance | iRel instance handle |
[in] | pair | Relation pair handle being queried |
[in] | ent_array_1 | 1st array of entities of relation being set |
[in] | num_entities1 | Number of entities in 1st array |
[in] | ent_array_2 | 2nd array of entities of relation being set |
[in] | num_entities2 | Number of entities in 2nd array |
[out] | err | Returned Error status (see iBase_ErrorType) |
Definition at line 191 of file iRel_Lasso.cpp.
References ASSOCPAIRI, CHK_PAIR, ERROR, iBase_INVALID_ENTITY_COUNT, iBase_SUCCESS, iRel_getDescription, and RETURN.
{ CHK_PAIR(); if( num_entities1 != num_entities2 ) ERROR( iBase_INVALID_ENTITY_COUNT, "setEntArrEntArrRelation doesn't support " "different #'s of entities." ); int result = iBase_SUCCESS; char descr[200]; for( int i = 0; i < num_entities1; i++ ) { int tmp_result = ASSOCPAIRI->set_relation( ent_array_1[i], ent_array_2[i] ); if( result == iBase_SUCCESS && tmp_result != iBase_SUCCESS ) { result = tmp_result; iRel_getDescription( instance, descr, sizeof( descr ) ); } } if( result != iBase_SUCCESS ) ERROR( result, descr ); RETURN( iBase_SUCCESS ); }
void iRel_setEntArrSetArrRelation | ( | iRel_Instance | instance, |
iRel_PairHandle | pair, | ||
iBase_EntityHandle * | ent_array_1, | ||
int | num_ent1, | ||
iBase_EntitySetHandle * | entset_array_2, | ||
int | num_set2, | ||
int * | err | ||
) |
Set relations between arrays of entities and entity sets.
Description unavailable.
[in] | instance | iRel instance handle |
[in] | pair | Relation pair handle being queried |
[in] | ent_array_1 | 1st array of entities of relation being set |
[in] | num_entities1 | Number of entities in 1st array |
[in] | set_array_2 | 2nd array of entities of relation being set |
[in] | num_sets2 | Number of entity sets in 2nd array |
[out] | err | Returned Error status (see iBase_ErrorType) |
Definition at line 221 of file iRel_Lasso.cpp.
References ASSOCPAIRI, CHK_PAIR, ERROR, iBase_INVALID_ENTITY_COUNT, iBase_SUCCESS, iRel_getDescription, and RETURN.
{ CHK_PAIR(); if( num_entities1 != num_sets2 ) ERROR( iBase_INVALID_ENTITY_COUNT, "setEntArrSetArrRelation doesn't support " "different #'s of entities." ); int result = iBase_SUCCESS; char descr[200]; for( int i = 0; i < num_entities1; i++ ) { int tmp_result = ASSOCPAIRI->set_relation( ent_array_1[i], set_array_2[i] ); if( result == iBase_SUCCESS && tmp_result != iBase_SUCCESS ) { result = tmp_result; iRel_getDescription( instance, descr, sizeof( descr ) ); } } if( result != iBase_SUCCESS ) ERROR( result, descr ); RETURN( iBase_SUCCESS ); }
void iRel_setEntEntRelation | ( | iRel_Instance | instance, |
iRel_PairHandle | pair, | ||
iBase_EntityHandle | ent1, | ||
iBase_EntityHandle | ent2, | ||
int * | err | ||
) |
Set a relation between two entities.
Set a relation between an entity and several entities. It is an error to set a relation on a pair with both sides not iRel_ACTIVE.
[in] | instance | iRel instance handle |
[in] | pair | Relation pair handle being queried |
[in] | ent1 | 1st entity of relation being set |
[in] | ent2 | 2nd entity of relation being set |
[out] | err | Returned Error status (see iBase_ErrorType) |
Definition at line 155 of file iRel_Lasso.cpp.
References ASSOCPAIRI, CHK_ERROR, and CHK_PAIR.
{ CHK_PAIR();CHK_ERROR( ASSOCPAIRI->set_relation( ent1, ent2 ) ); }
void iRel_setEntSetRelation | ( | iRel_Instance | instance, |
iRel_PairHandle | pair, | ||
iBase_EntityHandle | ent1, | ||
iBase_EntitySetHandle | entset2, | ||
int * | err | ||
) |
Set a relation between an entity and an entity set.
Description unavailable.
[in] | instance | iRel instance handle |
[in] | pair | Relation pair handle being queried |
[in] | ent1 | entity of relation being set |
[in] | set2 | entity set of relation being set |
[out] | err | Returned Error status (see iBase_ErrorType) |
Definition at line 164 of file iRel_Lasso.cpp.
References ASSOCPAIRI, CHK_ERROR, and CHK_PAIR.
{ CHK_PAIR();CHK_ERROR( ASSOCPAIRI->set_relation( ent1, set2 ) ); }
void iRel_setSetArrEntArrRelation | ( | iRel_Instance | instance, |
iRel_PairHandle | pair, | ||
iBase_EntitySetHandle * | entset_array_1, | ||
int | num_set1, | ||
iBase_EntityHandle * | ent_array_2, | ||
int | num_ent2, | ||
int * | err | ||
) |
Set relations between arrays of entity sets and entities.
Description unavailable.
[in] | instance | iRel instance handle |
[in] | pair | Relation pair handle being queried |
[in] | set_array_1 | 1st array of entities of relation being set |
[in] | num_sets1 | Number of entity sets in 1st array |
[in] | ent_array_2 | 2nd array of entities of relation being set |
[in] | num_entities2 | Number of entities in 2nd array |
[out] | err | Returned Error status (see iBase_ErrorType) |
Definition at line 251 of file iRel_Lasso.cpp.
References ASSOCPAIRI, CHK_PAIR, ERROR, iBase_INVALID_ENTITY_COUNT, iBase_SUCCESS, iRel_getDescription, and RETURN.
{ CHK_PAIR(); if( num_sets1 != num_entities2 ) ERROR( iBase_INVALID_ENTITY_COUNT, "setSetArrEntArrRelation doesn't support " "different #'s of entities." ); int result = iBase_SUCCESS; char descr[200]; for( int i = 0; i < num_sets1; i++ ) { int tmp_result = ASSOCPAIRI->set_relation( set_array_1[i], ent_array_2[i] ); if( result == iBase_SUCCESS && tmp_result != iBase_SUCCESS ) { result = tmp_result; iRel_getDescription( instance, descr, sizeof( descr ) ); } } if( result != iBase_SUCCESS ) ERROR( result, descr ); RETURN( iBase_SUCCESS ); }
void iRel_setSetArrSetArrRelation | ( | iRel_Instance | instance, |
iRel_PairHandle | pair, | ||
iBase_EntitySetHandle * | entset_array_1, | ||
int | num_set1, | ||
iBase_EntitySetHandle * | entset_array_2, | ||
int | num_set2, | ||
int * | err | ||
) |
Set relations between arrays of entity sets pairwise, ent_array_1[i]<->ent_array_2[i].
Set relations between arrays of entities pairwise, ent_array_1[i]<->ent_array_2[i]. If either array contains sets and that side of the relation is 'both'-type, set relations for individual entities in those sets too. It is an error to set a relation on a pair with both sides not iRel_ACTIVE.
[in] | instance | iRel instance handle |
[in] | pair | Relation pair handle being queried |
[in] | set_array_1 | 1st array of entities of relation being set |
[in] | num_sets1 | Number of entities in 1st array |
[in] | set_array_2 | 2nd array of entities of relation being set |
[in] | num_sets2 | Number of entities in 2nd array |
[out] | err | Returned Error status (see iBase_ErrorType) |
Definition at line 281 of file iRel_Lasso.cpp.
References ASSOCPAIRI, CHK_PAIR, ERROR, iBase_INVALID_ENTITY_COUNT, iBase_SUCCESS, iRel_getDescription, and RETURN.
{ CHK_PAIR(); if( num_sets1 != num_sets2 ) ERROR( iBase_INVALID_ENTITY_COUNT, "setSetArrSetArrRelation doesn't support " "different #'s of entities." ); int result = iBase_SUCCESS; char descr[200]; for( int i = 0; i < num_sets1; i++ ) { int tmp_result = ASSOCPAIRI->set_relation( set_array_1[i], set_array_2[i] ); if( result == iBase_SUCCESS && tmp_result != iBase_SUCCESS ) { result = tmp_result; iRel_getDescription( instance, descr, sizeof( descr ) ); } } if( result != iBase_SUCCESS ) ERROR( result, descr ); RETURN( iBase_SUCCESS ); }
void iRel_setSetEntRelation | ( | iRel_Instance | instance, |
iRel_PairHandle | pair, | ||
iBase_EntitySetHandle | entset1, | ||
iBase_EntityHandle | ent2, | ||
int * | err | ||
) |
Set a relation between an entity set an an entity.
Description unavailable.
[in] | instance | iRel instance handle |
[in] | pair | Relation pair handle being queried |
[in] | set1 | entity set of relation being set |
[in] | ent2 | entity of relation being set |
[out] | err | Returned Error status (see iBase_ErrorType) |
Definition at line 173 of file iRel_Lasso.cpp.
References ASSOCPAIRI, CHK_ERROR, and CHK_PAIR.
{ CHK_PAIR();CHK_ERROR( ASSOCPAIRI->set_relation( set1, ent2 ) ); }
void iRel_setSetSetRelation | ( | iRel_Instance | instance, |
iRel_PairHandle | pair, | ||
iBase_EntitySetHandle | entset1, | ||
iBase_EntitySetHandle | entset2, | ||
int * | err | ||
) |
Set a relation between two entity sets.
Description unavailable. Set a relation between an entity and several entities. It is an error to set a relation on a pair with both sides not iRel_ACTIVE.
[in] | instance | iRel instance handle |
[in] | pair | Relation pair handle being queried |
[in] | set1 | 1st entity set of relation being set |
[in] | set2 | 2nd entity set of relation being set |
[out] | err | Returned Error status (see iBase_ErrorType) |
Definition at line 182 of file iRel_Lasso.cpp.
References ASSOCPAIRI, CHK_ERROR, and CHK_PAIR.
{ CHK_PAIR();CHK_ERROR( ASSOCPAIRI->set_relation( set1, set2 ) ); }
const bool debug = false |
Copyright 2006 Sandia Corporation. Under the terms of Contract DE-AC04-94AL85000 with Sandia Coroporation, the U.S. Government retains certain rights in this software.
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.
Definition at line 25 of file iRel_Lasso.cpp.