struct PK_SURF_trim_data_s
{
int n_spcurves; --- number of spcurves
PK_SPCURVE_t *spcurves; --- spcurves
PK_INTERVAL_t *intervals; --- spcurve intervals
int *trim_loop; --- which trim loop
int *trim_set; --- which trim set
};
typedef struct PK_SURF_trim_data_s PK_SURF_trim_data_t;
This structure records surface trimming data
Trim data for a surface consists of zero or more trim loops making up zero
or more trim sets. Each trim set represents a connected piece of trimmed
surface. Each trim loop is made up of trimmed SP-curves. Each trimmed
SP-curve is represented by an SP-curve and a parametric interval.
spcurves consists of an array of SP-curves which describe the boundary
loops of the trimmed surface. More information on spcurves is
provided in the documentation of PK_FACE_output_surf_trimmed
and PK_SURF_make_sheet_trimmed.
intervals is an array of each SP-curve's bounding interval.
Trim sets and trim loops are identified by integers. When a
PK_SURF_trim_data_t is returned from PK_FACE_output_surf_trimmed, then trim
sets and trim loops will each be allocated identifiers commencing from 0 and
increasing by one. When a PK_SURF_trim_data_t is input to
PK_SURF_make_sheet_trimmed, there are no limitations on trim loop
identifiers.
As an example, if there are two trim_sets and the first has 2 trim_loops, then
the fields may be as follows:
spcurves trim_loop trim_set
1 0 0
2 0 0
3 0 0
4 0 0
5 1 0
6 1 0
7 1 0
8 2 1
9 2 1
10 2 1
11 2 1
trim_set 0 has trim_loops 0 and 1. trim_loop 0 has spcurves 1 to 4 and
trim_loop 1 has spcurves 5 to 7.
trim_set 1 has trim_loop 2 which has spcurves 8 to 11.