USED

The POINT:USED parameter is a single signed integer value that contains the number of 3D point coordinates that are written to each frame of data in the C3D file data section.  If it is wished to store coordinates  for say ten 3D points, then POINTS:USED must be ten or greater, and every frame will have space for POINTS:USED number of 3D points.  Any unused point location should be filled with an “invalid point” having X,Y,Z = 0, and the fourth word equal to -1.  POINTS:USED or the number of valid points stored in the frames is not dependent on the POINT:LABLES list, which may contain any number of labels.  If the label list contains fewer labels than valid points stored, the application should be prepared to supply default label names.

The importance of the USED parameter lies in the fact that an application that is reading the 3D data section directly must use this value to determine how many 3D co-ordinate points are stored in each frame.  The points do not have to be valid, they just have to have storage allocated, – invalid points will be stored with “invalid” coordinates if no trajectory is assigned to the label.  When an application has read USED number of 3D co-ordinate points then it has read the entire frame of 3D data.

As a signed integer, this parameter has a possible range of –32768 to +32767.  Since there is no conceivable requirement to store negative values for this parameter, this range could be extended by interpreting this parameter as an unsigned integer with a range of 0 to +65535.  The use of an unsigned value for this parameter would be flagged if the parameter returned a negative value when read as a signed integer.

The USED parameter value can also be found in word 2 of the C3D file header.  The POINT:USED header value should always be identical to the parameter value.