 |
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 |
-------------------------------------------------------------------------------