 |
PK_FACE_change_deform_o_t |
|
struct PK_FACE_change_deform_o_s
{
int o_t_version; --- version number of option structure
int n_matched_edges; --- number of matched edges (0)
const PK_EDGE_t *matched_edges; --- matched edges (NULL)
PK_deform_uv_t deform_uv; --- control evaluation range of deform
--- (PK_deform_uv_face_box_c) [NF]
PK_LOGICAL_t thread_safe; --- whether the external evaluator
--- function is thread-safe
--- (PK_LOGICAL_false)
PK_EXPR_sf_t eval_expr; --- An expression evaluator to use
--- instead of a callback function.
};
typedef struct PK_FACE_change_deform_o_s PK_FACE_change_deform_o_t;
This structure contains deform-specific optional controls for PK_FACE_change.
Specific Errors:
PK_ERROR_not_implemented (MILD) PK_deform_uv_on_face_c is not a
supported value for 'deform_uv'.
PK_ERROR_bad_combination (MILD) An expression is supplied (via the
'root_expr' field of 'eval_expr'),
and either:
- 'thread_safe' is set to
PK_LOGICAL_true,
- 'eval_fn' in the deform parameters
is non-NULL.
Used in:
PK_FACE_change_opts_t
Description of fields:
'n_matched_edges' The number of matched edges.
'matched_edges' An array of length 'n_matched_edges'. An edge should be
supplied in this array if the deform operation is such
that the edge will move identically with the operation on
the adjacent face, or in the case of no operation, that
the edge will not be moved.
The edges must be non-laminar edges belonging to a face
being deformed by this operation.
'deform_uv' Specifies the method for determining the range of the
original surface that the deformation is evaluated on,
and whether any geometry may be shared.
'thread_safe' Specifies whether the external evaluator function may be
called from more than one thread simultaneously. If set to
PK_LOGICAL_true, and SMP is enabled within Parasolid, then
the evaluator function may be called from multiple
threads, and it is the application's responsiblity to
ensure that the function is thread-safe. If set to
PK_LOGICAL_false, then Parasolid will ensure that the
evaluator function is not called from multiple threads,
even when SMP is switched on in Parasolid.
'eval_expr' If an expression is supplied (by setting a non-NULL
'root_expr' field), then the expression will define the
evaluator function for this deform operation (as an
alternative to supplying a PK_FACE_change_deform_eval_f_t
callback function in 'eval_fn'), to describe how the
original face should be deformed.
The expression has the following variables available:
'position' (vector) - An input position located on the
surface of the original 'face'.
'face' (PK_FACE_t) - The face for the evaluation.
The expression should evaluate to the corresponding
deformed position (vector).
An example of an expression which translates the face 0.1
units along the x-axis is to supply the 'root_expr'
string:
position + vector(0.1, 0.0, 0.0)
If an expression is supplied, then:
'thread_safe' must be set to PK_LOGICAL_false.
'eval_fn' in the deform parameters must be set to
NULL.
Generated on: Fri, 04 Oct 2024 12:18:52 GMT