PK_ENTITY_range_end_t   

struct PK_ENTITY_range_end_s
    {
    int            index;         --- argument index (0)
    PK_ENTITY_t    entity;        --- entity at end of separation
                                  --- (PK_ENTITY_null)
    PK_ENTITY_t    sub_entity;    --- sub entity at end of separation
                                  --- (PK_ENTITY_null)
    PK_VECTOR_t    vector;        --- end position              (0.0, 0.0, 0.0)
    double         parameters[2]; --- parameter(s) at end position   (0.0, 0.0)
    PK_enclosure_t inside;        --- whether other end is inside body
                                  --- (PK_enclosure_unset_c)
    };
typedef struct PK_ENTITY_range_end_s PK_ENTITY_range_end_t;




This structure records one end of a line of separation.

Used in:

PK_ENTITY_range_r_t
PK_ENTITY_range_vector_r_t



'index'            : this represents the position of the 'entity' in the
                     input array.

'entity'           : the entity supplied in the input array.

'sub_entity'       : the topology of the lowest dimensionality which contains
                     the end position.  e.g if a body is passed as an input
                     entity and the end position is found on a vertex
                     then 'entity' will return the body and 'sub_entity' will
                     return the vertex. If 'sub_entity' would be the same as
                     'entity' then no 'sub_entity' will be returned.

'vector'           : the end position on 'entity'.

'parameters'       : an array of two parameters of the end position holding
                     curve or surface parameter(s). Which parameterisation is
                     used is firstly dependent upon the geometry of the entity
                     returned and secondly upon the geometry of the sub_entity
                     (if identified).
                     If curve parameterisation is used the 2nd parameter should
                     be ignored.
                     The table below indicates which parameterisation is used
                     and when:

                     +-----------+--------------+----------------------------+
                     |  Entity   |  Identified  |     Geometry used for      |
                     |           |  Sub-Entity  | solution parameterisation  |
                     +-----------+--------------+----------------------------+
                     |           |              |                            |
                     |  vertex   |     none     |           none             |
                     |           |              |                            |
                     |   edge    |     none     |     curve of the edge      |
                     |   edge    |    vertex    |     curve of the edge      |
                     |  *edge    |     fin      |     curve of the fin       |
                     |  *edge    |    vertex    |           none             |
                     |           |              |                            |
                     |   fin     |    none      |     curve of the fin       |
                     |   fin     |    vertex    |     curve of the fin       |
                     |  *fin     |    vertex    |           none             |
                     |           |              |                            |
                     |   face    |     none     |    surface of the face     |
                     |   face    |     edge     |    surface of the face     |
                     |   face    |    vertex    |    surface of the face     |
                     |  *face    |     edge     |     curve of the edge      |
                     |  *face    |     fin      |     curve of the fin       |
                     |  *face    |    vertex    |            none            |
                     |           |              |                            |
                     |   body    |     face     |    surface of the face     |
                     |   body    |     edge     |     curve of the edge      |
                     |  *body    |     fin      |     curve of the fin       |
                     |   body    |    vertex    |          none              |
                     |           |              |                            |
                     +-----------+--------------+----------------------------+
                     |   point   |     none     |          none              |
                     |           |              |                            |
                     |   curve   |     none     |          curve             |
                     |           |              |                            |
                     |  surface  |     none     |         surface            |
                     +-----------+--------------+----------------------------+
                     Note: *indicates optional behaviour controlled by the
                     option 'param_entity' when available.

                     The curve and surface parameter values returned
                     will be the same as would be returned by the
                     parameterisation functions PK_CURVE_parameterise_vector
                     and PK_SURF_parameterise_vector.

'inside'          : this states whether the point at the other end of the
                    separation lies inside the body this end lies on, i.e.
                    whether the line of separation points into and ends
                    within this body. Only manifold solid bodies are supported
                    otherwise PK_enclosure_unset_c will be returned.
                    If the point at the other end of the separation lies inside
                    the body PK_enclosure_inside_c returned. If the point at
                    the other end of the separation lies on the body or outside
                    of the body PK_enclosure_outside_c returned.