struct PK_BODY_sweep_law_discrete_s { int n_vertices; PK_VERTEX_t *vertices; double *values; }; typedef struct PK_BODY_sweep_law_discrete_s PK_BODY_sweep_law_discrete_t; This structure holds a discrete description of a scalar law curve for twist or scale in sweeping as a set or vertex/value pairs. The law description structure has the following fields : n_vertices The number of vertices with specified law values vertices An array of the vertices that have specified law values. values An array of values. Each entry is the law value for the vertex in the corresponding entry of 'vertices' The following rules apply to the vertex/value pairs that may be specified via this structure : o Any number of vertex/value pairs may be specified. o The vertex/value pairs are not presumed to be in any particular order except in the case that the start and end vertices of the path are the same. Where this is true, the first occurrence of the start/end vertex is taken to be associated with the start value of the function, and the second occurrence is associated with the end value. The following points just describe two ways in which the swept body's shape can be controlled via these twist or scale controls : o Constant Twist or Scaling The user can affect a constant twist or scaling of the sweep by specifying a single vertex/value pair. The specified vertex maybe any vertex belonging to the sweep path profile. The twist or scaling transformation is applied to the whole sweep. o Linear Interpolation Between Start and End The user can affect a linear interpolated twist or scaling over the length of the sweep path by just specifying the start and end vertices within two vertex/value pairs. The start and end vertex/value pairs can be specified in any order.