 |
PK_TOPOL_fctab_facet_fin_t |
|
struct PK_TOPOL_fcstr_facet_fin_s
{
int facet;
int fin;
};
typedef struct PK_TOPOL_fcstr_facet_fin_s
PK_TOPOL_fcstr_facet_fin_t;
struct PK_TOPOL_fctab_facet_fin_s
{
PK_TOPOL_fcstr_facet_fin_t *data;
int length;
};
typedef struct PK_TOPOL_fctab_facet_fin_s
PK_TOPOL_fctab_facet_fin_t;
Used in:
PK_TOPOL_facet_r_t
PK_TOPOL_facet_table_t
This is a support structure for PK_TOPOL_facet_r_t and PK_TOPOL_facet_2_r_t.
It is a lookup table which 'groups' sets of fins owned by the same facet
together.
The outside of a facet is represented by an ordered sequence of 3 or more fins.
The fin sequence follows an anti-clockwise order when viewed down the facet
normal (i.e. from 'above' the facet).
The anti-clockwise ordering of fins and connected vertex entities is described
later as their 'conventional order'. The following diagram illustrates the
ordering of fins, viewed from above a quadrilateral facet mesh.
^ | ^ |
F | | F | | F
| v | v
---------> ------------> --------> ---------------
V V | Key |
<--------- <------------ <------- | ------------- |
^ | ^ | | |
F | | F | | F | F facet |
| | | | | V vertex |
| v | v | --> fin |
---------> ------------> -------> | |
V V ---------------
<--------- <------------ <------
^ | ^ |
F | | F | | F
| v | v
If a facet contains holes (having been created with the 'shape' mesh option
set to PK_facet_shape_any_c), it is represented by an ordered sequence of
exterior fins, followed by one or more sequences of interior fins,
representing holes in the facet. The exterior and interior sub-sequences of
fins are separated from each other by a 'null fin' value of -1.
The fin sequence of each interior hole in a face follows a clockwise order
when viewed from above the facet. The relative ordering of each interior fin
sub-sequence is arbitrary (other than following the exterior sequence).
Example
f1
v1---<--------------------------------------------------------------v4
| v5 v8 v11 |
| f5/ \ f8/ \ f11/ \ ^ f4
| / \ / \ / \ |
| / \f6 / \f9 / \f12 |
f2 v -<---- -<---- -<---- |
| v7 f7 v6 v10 f10 v9 v13 f13 v12 |
v2--------------------------------------------------------------->---v3
f3
This facet may be represented by the sequence
f1 f2 f3 f4 -1 f5 f6 f7 -1 f8 f9 f10 -1 f11 f12 f13
\__exterior__/ ^ \_interior_/ ^ \_interior_/ ^ \_interior_/
| | |
separator separator separator
The relative ordering of the interior sub-sequences "f5 f6 f7", "f8 f9 f10"
and "f11 f12 f13" is arbitrary.
Facets will not contain holes (and fin sequences will not contain 'null fin'
separators) if the 'shape' option has been set to PK_facet_shape_cut_c or
PK_facet_shape_convex_c.
Each facet is assigned an integer value from 0 to ('number_of_facets' - 1).