OUTBUB ( empty, nwtags, chtags, dltags, nwtyps, chtyps, dltyps, nwufds,
========================================================================
chufds, dlufds, ifail )
=======================
Output rudimentary bulletin board information
Receives:
KI_cod_logical *empty --- true if bulletin board is to
--- be emptied after being output
Returns:
KI_tag_list_tag *nwtags --- tags of new entities
KI_tag_list_tag *chtags --- tags of changed entities
KI_tag_list_tag *dltags --- tags of deleted entities
KI_tag_list_int *nwtyps --- types of new entities
KI_tag_list_int *chtyps --- types of changed entities
KI_tag_list_int *dltyps --- types of deleted entities
<KI_tag_list_int> *nwufds --- user fields of new entities
<KI_tag_list_int> *chufds --- user fields of changed entities
<KI_tag_list_int> *dlufds --- user fields of deleted entities
KI_cod_error *ifail --- error code
Specific errors:
KI_bad_entity_event_comb bulletin board has bad entity/event combination
KI_bulletinb_is_off bulletin board is not active
Description:
Outputs bulletin board information on entities created, deleted or
changed since the bulletin board was last emptied. Depending on the value
of 'empty', optionally empties the bulletin board after reading it.
Faces, edges and vertices are bulletined when they are created, deleted
and when their topology or geometry is changed (event types BBEVCR, BBEVDE
and BBEVCH, respectively). Assemblies and bodies are bulletined only when
created and deleted (types BBEVCR and BBEVDE). This routine cannot be used
to output the bulletin board if the entity event combinations are not
precisely this (see SEBBCO for details). If the event entity combination is
invalid KI_bad_entity_event_comb will be returned in ifail.
Three categories of data are returned, relating to created, changed and
deleted entities. For each category, three lists are returned giving
the tag, type and (optionally) the user field for each entity. No entity
will be returned in more than one category, nor will it be repeated within
the same list. The order of entities within a list is arbitrary, except
that the order is the same for the tag, type and user field lists within
a given category.
When an entry is made in the bulletin board, a check is made to see if the
same entity is already recorded, and the two records are merged as follows:
| Second record
First record | Created Changed Deleted
-------------+--------------------------------
|
Created | (1) Created (2)
|
Changed | (1) Changed Deleted
|
Deleted | (1) (1) (1)
|
where:
(1) this case cannot occur.
(2) the entity will be removed from the bulletin board
entirely.
All entries made since the bulletin board was last emptied will be checked
in this way.
The type lists contain tokens from the range TYTO00.
User-field data is returned in the three integer lists, such that for entry
number "n" in the corresponding tag list, the user field is to be found in
entries "(n-1)*ufd_size+1" to "n*ufd_size" inclusive, where "ufd_size"
is the user-field size as set by STAMOD.
Whether user-field data is returned depends on the setting of the SLIPBB
interface parameter (see SEINTP for details) - when user-field data is
not returned, the three integer lists are returned as the NULTAG.
This is the only situation when NULTAG will be returned; in all other cases,
lists will be returned, even if they are empty.