The C3D file contains the 3D point coordinate and analog data section, which is usually located at some point after the parameter section. The C3D specification states that the data section starts on the 512-byte block boundary that is indicated by the pointer POINT:DATA_START in the C3D parameter section.
Always use the parameter section pointer POINT:DATA_START to locate the start of the 3D data section in the C3D file.
The 3D and analog data section is variable in length depending on the amount of data stored. C3D files can contain any combination of 3D point data and analog data including 3D data only, and analog data only.
It is important to remember that the C3D specification allows additional data sections to exist in the area between the end of the header section and the start of the 3D and analog data section. Few applications store additional data sections in this area at this time although most of the proposals to extend the C3D file format focus on adding additional sections of data in these areas of the C3D file. Software applications that conform to the C3D specification and use the C3D parameter section and C3D header information correctly should be able to handle the presence of additional data blocks within the C3D file without any problems.
The common format used to store 3D coordinate and analog data is the signed integer format – each sample is stored as a 16-bit signed integer value in the range of –ve 32768 to +ve 32767. These signed integers are then scaled into real world values, using a common floating-point scaling factor stored within the parameter section. However, the facility for the data to be written entirely in floating point format is also available. This is useful for storing processed data (especially analog data) where the signed integer form may not provide sufficient precision.