 |
PK_LATTICE_create_by_graph_o_t |
|
struct PK_LATTICE_create_by_graph_o_s
{
int o_t_version; --- version number of options
--- structure
int lballs_estimate; --- An estimate for the
--- total number of lballs
--- returned by all calls to
--- 'graph_reader'. (0)
int lrods_estimate; --- An estimate for the
--- total number of lrods
--- returned by all calls to
--- 'graph_reader'. (0)
PK_LATTICE_graph_f graph_free; --- Function provided by the
--- application to free data
--- returned by 'graph_reader'.
--- (NULL)
PK_LOGICAL_t thread_safe; --- Whether the 'graph_reader'
--- and the 'graph_free'
--- callbacks are thread safe.
--- (PK_LOGICAL_false)
double lball_radius; --- The radius of the lballs in
--- the lattice. (0)
PK_LBALL_min_radius_t lball_min_radius; --- Controls the behaviour when
--- a supplied lball radius is
--- too small.
--- (PK_LBALL_min_radius_fail_c)
PK_LBALL_blend_t lball_blend_type; --- Whether the lattice is
--- blended and how to convert
--- 'lball_blend_size' to a blend
--- radius.
--- (PK_LBALL_blend_none_c)
double lball_blend_size; --- The size of the blends in the
--- lattice. (0)
PK_LROD_shape_opts_t lrod_shape_opts; --- Control on the shape of the
--- lrods in the lattice.
PK_LOGICAL_t have_snap_tolerance;
--- Whether a snapping tolerance
--- value is provided.
--- (PK_LOGICAL_false)
double snap_tolerance; --- The tolerance used for lball
--- snapping.
};
typedef struct PK_LATTICE_create_by_graph_o_s PK_LATTICE_create_by_graph_o_t;
This structure contains optional controls for PK_LATTICE_create_by_graph.
Used in:
PK_LATTICE_create_by_graph
The options provided are:
'lballs_estimate' When positive, an estimate for the total
number of lballs that will be returned
by all calls to 'graph_reader'.
'lrods_estimate' When positive, an estimate for the total
number of lrods that will be returned by
all calls to 'graph_reader'.
'graph_free' When not NULL, is a function provided by
the application that will free the data
returned by 'graph_reader'. 'graph_free'
is called as soon as the application data
has been copied into Parasolid's memory,
before the next call to 'graph_reader'.
When 'graph_free' is NULL, Parasolid will
not attempt to free the memory allocated
by the application for the graph blocks.
'thread_safe' Indicates whether the 'graph_reader' callback
and the 'graph_free' callback (if supplied) are
thread safe.
'lball_radius' The radius of the lballs in the lattice. If no
value is provided, the 'graph_reader' expects to
receive the radius of each lball.
'lball_min_radius' Controls the behaviour when a supplied lball radius
is not as large as the radius of its largest
incident lrod.
'lball_blend_type' If not PK_LBALL_blend_none_c, the lattice is
blended with blend radii determined by the value of
this option, together with either the value of
'lball_blend_size' if provided, or the values of
'lball_blend_sizes' received by 'graph_reader'.
'lball_blend_size' The size of the lball blends in the lattice. If no
value is provided and 'lball_blend_type' is not
PK_LBALL_blend_none_c, the 'graph_reader' expects
to receive the blend size of each lball.
'lrod_shape_opts' Optional controls on the shape of the lrods of the
lattice.
'have_snap_tolerance' Whether a snapping tolerance value is provided. If
this is PK_LOGICAL_true, then 'snap_tolerance' sets
the maximum distance between lball positions,
variation in lball radii, and variation in
lball_lrod_radii at which multiple lballs can be
snapped together into a single, combined lball. If
this is PK_LOGICAL_false, then 'snap_tolerance' is
ignored and snapping will be performed to session
precision.
'snap_tolerance' The tolerance used for lball snapping.
When supplying 'lballs_estimate' or 'lrods_estimate', it is recommended
that applications moderately overestimate (by ~20%) the number of lballs
and lrods they will need, as the overhead of allocating additional memory
following an underestimate is more significant than the wasted memory of
an overestimate.