PK_BODY_sweep_law_discrete_t   


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.