PK_ENTITY_range_vector_o_t   

struct PK_ENTITY_range_vector_o_s
    {
    int                     o_t_version;   --- version number of option struct
    PK_range_bound_t        bound;         --- bounds on min/max separation
    PK_range_param_entity_t param_entity;  --- option to return a vector and
                                           --- parameter on the sub-entity
                                           --- (if applicable). Also controls
                                           --- whether a fin can be returned
                                           --- as the sub_entity.
                                           --- (PK_range_param_entity_topol_c)
    int                     n_guesses;     --- number of guesses. (0)
    const PK_range_guess_t *guesses;       --- guesses for end on 'entities'
                                           --- (NULL) [NF]
    };

typedef struct PK_ENTITY_range_vector_o_s PK_ENTITY_range_vector_o_t;



Holds optional controls for finding the global minimum/maximum separation
between two arrays of entities.

Used in:

PK_ENTITY_range_vector


'bound'            : structure consisting of:
                     'have_upper_bound': whether an upper bound is supplied.
                     'upper_bound'     : an upper bound on the minimum/maximum
                                         distance to be computed.
                                         If supplied, when finding the minimum
                                         distance, the minimum distance
                                         achieved will only be returned if
                                         it is less than the upper bound.
                                         If supplied, when finding the maximum
                                         distance, the maximum distance
                                         achieved will only be returned if it
                                         is less than or equal to the upper
                                         bound.
                     'have_lower_bound': whether a lower bound is supplied.
                     'lower_bound'     : a lower bound on the minimum/maximum
                                         distance to be computed.
                                         If supplied, when finding the minimum
                                         distance, the minimum distance
                                         achieved will only be returned if it
                                         is greater than or equal to the lower
                                         bound.
                                         If supplied, when finding the maximum
                                         distance, the maximum distance
                                         achieved will only be returned if it
                                         is greater than the lower bound.

'param_entity'     : option to return a vector and parameter on the sub-entity
                     if applicable. This will always be the case for bodies.
                     Additionally, this option controls whether a fin can be
                     returned as the 'sub_entity'
                     (PK_range_param_entity_topol_c)

                     The following entity/sub-entity cases are affected.

                     When 'param_entity' is set to
                     PK_range_param_entity_topol_c:

                     +-----+-------------------------------------------+
                     |  #  | Entity  | Identified  | Geometry used for |
                     |     |         | Sub-Entity  | parameterisation  |
                     +-----+---------+-------------+-------------------+
                     |     |         |             |                   |
                     | (1) |   fin   |   vertex    | curve of the fin  |
                     |     |         |             |                   |
                     | (2) |  edge   |    none     | curve of the edge |
                     | (3) |  edge   |   vertex    | curve of the edge |
                     |     |         |             |                   |
                     | (4) |  face   |  acc edge   | surf of the face  |
                     | (5) |  face   |  tol edge   | surf of the face  |
                     | (6) |  face   |   vertex    | surf of the face  |
                     |     |         |             |                   |
                     | (7) |  body   |  tol edge   | curve of the edge |
                     |     |         |             |                   |
                     +-----+---------+-------------+-------------------+

                     Curve of the edge defined by PK_EDGE_ask_geometry.

                     When 'param_entity' is set to
                     PK_range_param_entity_sub_c:

                     +-----+-------------------------------------------+
                     |  #  | Entity  | Identified  | Geometry used for |
                     |     |         | Sub-Entity  | parameterisation  |
                     +-----+---------+-------------+-------------------+
                     |     |         |             |                   |
                     | (1) |   fin   |   vertex    |       none        |
                     |     |         |             |                   |
                     | (2) |  edge*  |    fin**    | curve of the fin  |
                     | (3) |  edge   |   vertex    |       none        |
                     |     |         |             |                   |
                     | (4) |  face   |  acc edge   | curve of the edge |
                     | (5) |  face   | fin in face | curve of the fin  |
                     | (6) |  face   |   vertex    |       none        |
                     |     |         |             |                   |
                     | (7) |  body   |   fin**     | curve of the fin  |
                     |     |         |             |                   |
                     +-----+---------+-------------+-------------------+
                       * tolerant edge without nominal geometry
                      ** primary fin (defined by PK_EDGE_ask_first_fin)

                     Curve of the edge defined by PK_EDGE_ask_geometry_nmnl.

'n_guesses'        : value indicating the length of the array estimate
                     structures. If the length is non-zero, it must take the
                     value of 'n_vectors'.

'guesses'          : an array of estimate structures, for the end of the
                     separation, of the form:

                     'type'        form of guess, either:
                                   PK_range_guess_no_c     : no guess
                                   PK_range_guess_param_c  : parametric guess
                                   PK_range_guess_vector_c : position guess.
                     'parameters'  an array of up to 2 parameters.
                     'vector'      end position vector.

                     Guesses are only allowed for entity arrays of length 1.
                     For a curve, a curve parameter estimate may be supplied.
                     For a surface, surface parameter estimates may be
                     supplied.
                     For a curve or surface, a position vector estimate
                     may be supplied. Such an estimate is expected to
                     be on or close to the entity.
                     Note that either a position vector estimate or a parameter
                     estimate may be specified, but not both.

                     The array contains the estimates of the closest points
                     for the positions provided in 'vectors'.
                     If no estimate is supplied the 'guesses' can be NULL
                     otherwise it must have length 'n_vectors'.

                     Currently, it is not possible to provide estimates for a
                     subset of the positions.