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