PK_MESH_imprint_vectors_o_t   

struct PK_MESH_imprint_vectors_o_s
    {
    int                  o_t_version;      --- version number of
                                           --- option structure
    PK_ITEM_t            destination;      --- destination for 'resultant_mesh'
                                           --- (PK_ITEM_null)
    PK_LOGICAL_t         want_mvertices;   --- whether to return 'mvertices'
                                           --- (PK_LOGICAL_false)
    PK_MFACET_map_t      map_mfacets;      --- enable or disable
                                           --- mapping of mfacets
                                           --- (PK_MFACET_map_no_c)
    PK_MTOPOL_map_cb_f_t map_cb;           --- callback function
                                           --- (NULL)
    PK_POINTER_t         map_data;         --- context data for the mapping
                                           --- callback function (NULL)
    int                  n_max_cb_mtopols; --- maximum number of mtopols
                                           --- passed per call to 'map_cb'
                                           --- (500)
    int                  n_mtopols;        --- number of 'mtopols' (0)
    PK_MTOPOL_t         *mtopols;          --- mtopol containing each vector
                                           --- (NULL)
    int                  n_parameters;     --- number of 'parameters' (0)
    PK_UV_t             *parameters;       --- UV parameter of vectors on the
                                           --- mesh (NULL)
  };
typedef struct PK_MESH_imprint_vectors_o_s PK_MESH_imprint_vectors_o_t;



This structure contains optional controls for PK_MESH_imprint_vectors.


Specific Errors:
    PK_ERROR_bad_item               (MILD)     The destination is not a part
                                               or a partition.
    PK_ERROR_bad_combination        (MILD)     One of the following:
                                               o The 'map_mfacets' field
                                               is set to PK_MFACET_map_yes_c
                                               and the 'map_cb' field is NULL.
                                               o One of 'n_parameters',
                                               'n_mtopols' is neither equal to
                                               zero or 'n_vectors'.
                                               o 'n_parameters' and
                                               'n_mtopols' are both non zero.
    PK_ERROR_callback_failed        (MILD)     The callback function failed.


Used in:

PK_MESH_imprint_vectors


'destination'            Destination for the 'resultant_mesh' (see below)

'want_mvertices'         If set to PK_LOGICAL_true, an array of mvertices will
                         be returned, where the ith mvertex corresponds to the
                         ith input vector.

'map_mfacets'            This determines if mfacets in the original mesh are
                         to be mapped to mfacets in the resultant mesh. If
                         'map_cb' is null this option must be set to
                         PK_MFACET_map_no_c.

'map_cb'                 This callback function of type PK_MTOPOL_map_cb_f_t
                         is used to return mapping information. If 'map_cb' is
                         set to null, then no mapping information will be
                         returned. The mtopols that are mapped are determined
                         by the 'map_mfacets' option.

'map_data'               This is a pointer to application data that may be
                         used to communicate information between the
                         application and its callback function 'map_cb'.

'n_max_cb_mtopols'       This determines the maximum number of mtopols that
                         will be returned per call to 'map_cb'.

'n_mtopols'              The number of 'mtopols'. This must be either 0 or
                         equal to the 'n_vectors' argument in
                         PK_MESH_imprint_vectors. If 'n_parameters' is not
                         equal to 0 then 'n_mtopols' must be 0.

'mtopols'                This an array of type PK_MTOPOL_t where the ith input
                         vector lies on the ith mtopol. Supplying 'mtopols' may
                         improve performance. Each vector must be within
                         session precision of its corresponding mtopol. If an
                         array of 'mtopols' is given, 'parameters' must be
                         NULL.

'n_parameters'           The number of 'parameters'. This must be either 0 or
                         equal to the 'n_vectors' argument in
                         PK_MESH_imprint_vectors. If 'n_mtopols' is not
                         equal to 0 then 'n_parameters' must be 0.

'parameters'             This is an array of type PK_UV_t, corresponding
                         to the array of 'vectors'. Supplying 'parameters' may
                         improve performance. Each vector must be within
                         session precision of the vector evaluated at the
                         corresponding parameter (if they differ but are
                         within session precision then the vector evaluated at
                         the parameter is imprinted). If an array of
                         'parameters' is given, 'mtopols' must be NULL.

destination:
------------
'destination' can take a partition, PK_PARTITION_t, or a part, PK_PART_t, but
no other PK_ITEM_t.

If a partition is supplied through 'destination' then the 'resultant_mesh' will
be orphan geometry in the supplied partition.

If a part is supplied through 'destination' then the 'resultant_mesh' will be
construction geometry in the supplied part.

If 'destination' is set to PK_ITEM_null then

    if the original mesh was orphan geometry, the 'resultant_mesh' will be
    orphan geometry in the original's partition.

    if the original mesh was construction or principal geometry, the
    'resultant_mesh' will be construction geometry in the original's part.


The behaviour is summarised in the following table:

-------------------------------------------------------------------------------
Type of input |                       'destination'                           |
    mesh      |    PK_ITEM_null     |    PK_PART_t    |    PK_PARTITION_t     |
-------------------------------------------------------------------------------
Principal     |  Construction in    | Construction in | Orphan in supplied    |
geometry      |  original part      | supplied part   | partition             |
-------------------------------------------------------------------------------
Construction  |  Construction in    | Construction in | Orphan in supplied    |
geometry      |  original part      | supplied part   | partition             |
-------------------------------------------------------------------------------
Orphan        |  Orphan in original | Construction in | Orphan in supplied    |
geometry      |  partition          | supplied part   | partition             |
-------------------------------------------------------------------------------