 |
PK_TOPOL_categorise_geom |
|
PK_ERROR_code_t PK_TOPOL_categorise_geom
(
--- received arguments ---
PK_TOPOL_t topology, --- a topology
const PK_TOPOL_categorise_geom_o_t *options, --- option structure
--- returned arguments ---
PK_GEOM_category_t *const overall_geom_category, ---category of the
---geometry of
---topology
PK_GEOM_category_t *const direct_geom_category, ---category of the
---geometry attached
---directly to
---the topology
int *const n_related_topols, ---number of related
---topologies
PK_TOPOL_t **const related_topols, ---related
---topologies
PK_GEOM_category_t **const related_geom_categories---categorisation of
---the geometries of
---the related
---topologies
)
This function determines what category of geometry is attached to 'topology'.
Specific Errors:
PK_ERROR_wrong_entity The topology is not among the supported
types.
(MILD)
This function will also optionally return all the related topologies that
contributed to the overall geometry classification of 'topology', along with
their (overall) geometry categorisation.
When determining the 'overall_geom_category' attached to 'topology', the
function examines all related topologies and their geometries. When determining
the 'direct_geom_category' the function only examines the geometry which is
directly attached to the topology. Note that the overall categorisation is
evaluated on a case by case basis - it is not always equal to the combination
of the direct geometry and related topology categorisations.
The directly attached geometry, the related topologies and the geometry
considered for the overall categorisations are defined to be:
------------------------------------------------------------------------------
| 'topology' | Direct geometry | 'related_topols' | Overall geometry |
| | categorisation | | categorisation |
|----------------------------------------------------------------------------|
|PK_ASSEMBLY_t | The construction | The unique top | The construction and |
| | geometry attached | level component | boundary geometry |
| | to the assembly | parts belonging | attached to the |
| | | to the assembly | assembly and its |
| | | | component parts |
|----------------------------------------------------------------------------|
|PK_BODY_t | The construction | The child bodies | The construction and |
|(compound) | geometry attached | belonging to the | boundary geometry |
| | to the body | compound body | attached to the body |
|----------------------------------------------------------------------------|
|PK_BODY_t | The construction | The faces, | The construction and |
| | geometry attached | wireframe edges | boundary geometry |
| | to the body | and acorn | attached to the body |
| | | vertices of the | (for child bodies, |
| | | body | the edge and face |
| | | | geometry is used) |
|----------------------------------------------------------------------------|
|PK_FACE_t | The surface | The edges of the | The surface attached |
| | attached to the | face | to the face, and the |
| | face | | geometry associated |
| | | | with its fins [1] |
|----------------------------------------------------------------------------|
|PK_FIN_t | The curve | The face of the | The geometry |
| | attached to the | fin | associated with the |
| | fin [2] | | fin [1], and the |
| | | | surface attached to |
| | | | its face |
|----------------------------------------------------------------------------|
|PK_EDGE_t | The curve | The fins of the | The curve attached |
| | attached to the | edge | to the edge [3] and |
| | edge [3] | | the curves attached |
| | | | to its fins [2] |
| | | | |
|----------------------------------------------------------------------------|
|PK_VERTEX_t | The point | The edges of the | The point attached |
| | attached to the | vertex | to the vertex and |
| | vertex | | the geometry |
| | | | associated with its |
| | | | edges [4] |
------------------------------------------------------------------------------
[1] as returned by PK_FIN_ask_geometry
[2] as returned by PK_FIN_ask_curve
[3] as returned by PK_EDGE_ask_curve_nmnl
[4] as used in the overall categorisation of the edge, above
The function does not support topologies of types other than the ones listed in
the table.