![]() |
PK_PART_receive_o_t |
struct PK_PART_receive_o_s
{
int o_t_version;
--- version number
PK_transmit_format_t transmit_format;
--- (PK_transmit_format_neutral_c)
PK_LOGICAL_t receive_user_fields;
--- (PK_LOGICAL_false)
PK_ATTDEF_mismatch_t attdef_mismatch;
--- (PK_ATTDEF_mismatch_fail_c)
int part_index;
--- (0)
int n_part_indices;
--- (0)
const int *part_indices;
--- (NULL)
int n_identifiers;
--- (0)
const int *identifiers;
--- (NULL)
PK_POINTER_t receive_indexed_context;
--- (NULL)
PK_LOGICAL_t key_is_partition;
--- (PK_LOGICAL_false)
PK_receive_compound_t receive_compound;
--- (PK_receive_compound_split_c)
PK_receive_using_seek_t receive_using_seek;
--- (PK_receive_using_seek_no_c)
PK_receive_mixed_t receive_mixed;
--- (PK_receive_mixed_fail_c)
};
typedef struct PK_PART_receive_o_s PK_PART_receive_o_t;
This option structure contains options pertinent to receiving parts.
PK_DEBUG_receive
PK_PART_receive
PK_PART_receive_b
PK_PART_receive_u
Description of fields:
'transmit_format' Format of the XT data. Permitted values are:
PK_transmit_format_text_c
PK_transmit_format_binary_c
PK_transmit_format_typed_binary_c
PK_transmit_format_neutral_c
PK_transmit_format_indexio_c
PK_transmit_format_applio_c
'receive_user_fields' PK_LOGICAL_true if user fields are to be received.
'attdef_mismatch' If this option is PK_ATTDEF_mismatch_ignore_c then
parts containing mismatched attribute definitions
will be received, but without the mismatched
attribute definitions and their associated
attributes. See here for more
information.
'part_index' For XT files containing multiple bodies, when
'transmit_format' is PK_transmit_format_indexio_c,
this is the index of the required body from the
array passed by the application to part transmit.
This option is ignored if 'n_part_indices' > 0.
'part_indices' An array of length 'n_part_indices' selecting
the indices of the required bodies from the array
passed by the application to part transmit.
If 'n_part_indices' is 1, all 'identifiers' are
from the single part index, otherwise
'n_part_indices' must equal 'n_identifiers' and
each identifier is from the corresponding part
index. The indices must be in a monotonically
non-decreasing order.
'identifiers' An array of length 'n_identifiers' used to select
a subset of a part to receive. If 'transmit_format'
is PK_transmit_format_indexio_c then this should
be an identifier of a single face and only the
face in this array will be received. Otherwise,
if 'n_part_indices' is > 0 then this should be
identifiers of child bodies and only the child
bodies in this array will be received.
'receive_indexed_context' Application specific storage when 'transmit_format'
is PK_transmit_format_indexio_c.
'key_is_partition' Setting this option to PK_LOGICAL_true when
'transmit_format' is PK_transmit_format_indexio_c,
enables XT data representing an indexed partition
to be received. The XT data will be opened with
guise FFCXMP rather than FFCXMT, and the XT data
must represent an indexed partition. The ordering
of bodies used to define their indices is that of
PK_PARTITION_ask_bodies.
'receive_compound' Controls receiving transmit files containing
compound bodies. Allowed values are:
PK_receive_compound_split_c:
split any compound bodies into individual bodies
PK_receive_compound_keep_c:
receive compound bodies as they are
PK_receive_compound_fail_c:
fail with PK_ERROR_compound_body if the file
contains compound bodies
If any compound bodies have been split then a
report will be returned via the Parasolid Report
mechanism containing a record of 'type'
PK_REPORT_record_type_3_c.
This record will have a 'status' of
PK_REPORT_3_compound_split_c and will contain
information on the compound bodies that were
split when the file was received:
- 'n_int_arrays' and 'n_item_arrays'
the number of parts received from the transmit
file.
- 'int_arrays'
for each part received from the transmit file,
an array of child body identifiers if the part
was a compound body, otherwise an empty array.
- 'item_arrays'
for each part received from the transmit file,
an array of split bodies if the part was a
compound body, otherwise an array containing
just that part.
'receive_using_seek' How any delayed-load model data in the parts
are handled if they are not immediately needed.
If this option is PK_receive_using_seek_no_c then
delayed-load model data in the file will all
be read sequentially in the same Parasolid call.
If this option is PK_receive_using_seek_yes_c
then only data needed for individual pieces of the
model will be received, which will be faster in
many scenarios and avoids unneeded model data
taking up internal memory.
To support PK_receive_using_seek_yes_c for mesh
data, the part file must have been transmitted
with the option 'transmit_meshes' set to
PK_transmit_meshes_embedded_c and the Frustrum
seek function 'ffskxt' must be registered using
PK_SESSION_register_fru_2. If the part file was
transmitted with PK_transmit_meshes_separate_c
then this option is ignored for mesh data.
If the part is received or copied to a partition
that allows partial pmarks, the application is
responsible for maintaining their source copy of
the delayed-load information as it may need to
be loaded more than once.
Transmitting a part with delayed-load model data
that is still outstanding will load the missing
data as part of the part transmit.
This option is ignored for PK_PART_receive_b.
'receive_mixed' Controls receiving transmitted files that contain
parts with both facet and classic geometry.
If this option is set to the default
PK_receive_mixed_fail_c and the file contains
mixed parts, then receive will fail with
PK_ERROR_mixed_geometry.
To allow receiving mixed parts, this option
should be set to PK_receive_mixed_allow_c.
PK_receive_mixed_make_facet_c is for future
enhancement and will return
PK_ERROR_not_implemented.