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.