![]() |
CREATT |
Equivalent PK functions: |
PK_ATTRIB_create_empty PK_ATTRIB_set_axes PK_ATTRIB_set_doubles PK_ATTRIB_set_ints PK_ATTRIB_set_string PK_ATTRIB_set_vectors |
CREATT ( owners, type, nints, ivals, nreals, rvals, nstrng, slens, nchars, =========================================================================== chars, ifail ) ============== Create an attribute. Receives: KI_tag_list_entity *owners --- entity or list of entities to --- which the attribute is to be --- attached KI_tag_attrib_def *type --- type of attribute <KI_int_nitems> *nints --- number of integer values int ivals[nints] --- array of integer values <KI_int_nitems> *nreals --- number of real values double rvals[nreals] --- array of real values <KI_int_nitems> *nstrng --- number of strings <KI_int_nitems> slens[nstrng] --- array of string lengths <KI_int_nitems> *nchars --- number of characters KI_chr_string chars[nchars] --- array of data for string fields Returns: KI_cod_error *ifail --- error code Specific errors: KI_wrong_entity_in_list entity in list cannot own given attribute KI_system_error no attribute KI_attr_type_not_defined not a valid attribute definition KI_attr_mismatch insufficient data for an attribute of this type KI_buffer_overflow array 'chars' is too small Description: An attribute of the given type is created, loaded with the given data and attached to each entity in the list 'owners'. The entities in 'owners' must be of types specified as legal owners for attributes of the given 'type'. The legal owners of a type can be determined by calling OUATDF. The values to go into the fields are supplied in three arrays. Each field is filled in turn by taking the next value from the array of the appropriate type. Thus the number of real values supplied, 'nreals', is the number of real fields plus three times the number of direction, vector and co-ordinate fields plus six times the number of axis fields. If there are any character string fields in the attribute their values are supplied, concatenated, in the array ('chars'). The number of strings is passed in 'nstrng' and the array 'slens' contains the string lengths. If 'nchars' is not greater than or equal to the sum of the values in the array 'slens', KI_buffer_overflow is returned in 'ifail' and no attributes are created. If an attribute of the given type is already attached to an entity in 'owners', the old attribute is replaced by one containing the given data, for attributes of classes RQAC01 to RQAC05. For attributes of class RQAC06 and RQAC07, the list of attribute values is extended to contain the new value.