Main Page | File List | Globals

The ITAPS Relations Interface iRel

Each ITAPS interface encapsulates functionality that "belongs" together, for example mesh or geometric model functionality. In some cases, however, data in several of these interfaces need to be related together. For example, a collection of mesh faces should be related to the geometric model face which they discretize. The ITAPS Relations interface accomplishes this in a way which allows the lower-level interfaces to remain independent.

iRel defines relations as pairwise associations between entities or entity sets. Related entities can be in the same or different interfaces. A given relation is created for a given pair of interfaces and returned in the form of a Relation Handle. After a specific relation pair has been created, concrete relations for that pair can be assigned and retrieved for specific entities using set and get functions on the iRel interface. A given interface instance can appear in one or many relation pairs, each identified by the relation handle.


Relations are also distinguished by a pair of relation types. For each interface in a relation pair, a corresponding type indicates whether the relation applies to entities, entity sets, or both entities and sets in the corresponding interface in the pair. If one of the interfaces in a given pair has a 'both'-type, that means both entities and entity sets in that interface are related to either entities or sets in the other interface in the pair. Only one of the interfaces in a given relation pair can have the 'both' type.


Many functions in the iRel interface take as input two entities, or two lists of entities, along with a relation handle. For these functions, the entities or lists are assumed to be in the same order as the interfaces used to create that relation pair. For example, if a relation pair is created by calling:
 iRel_createAssociation(instance, iface1, ent_or_set1, type1, 
                        iface2, ent_or_set2, type2,
                        &relation_handle, &ierr)
and relations set by calling
 iRel_setEntEntAssociation(instance, relation_handle,
                           ent1, is_set1, ent2, is_set2, &ierr)
it is assumed that ent1 is contained in iface1 and ent2 in iface2.

For functions taking only one entity or list as input, and returning an entity or list, an additional argument indicates whether the input entity or list belongs to the first or second interface in that relation pair.

Arguments for 'both'-Type Relations

'both'-type relations can be assigned and retrieved on entities or sets. For these functions, an additional input parameter specifies whether the input entity is an entity or an entity set.


Several functions in iRel pertain specifically to geometry-mesh relations. These functions assume that the relation pair handle input is a relation between an iGeom and iMesh instance, and that the relation pair was created with the interfaces in that order.
Generated on Tue Jun 26 11:09:21 2007 for iRel by doxygen 1.3.5