NavData Endianness

You can generate NavData in either little-endian or big-endian format. By default, it is created in big-endian format, but you can choose to create little-endian data if you prefer.

In practice, the endianness you choose has very little effect. Whenever you load NavData at runtime, its endianness is compared to the endianness of the current platform. If they match, the data is used as-is; if they do not match, the byte order of the data is swapped transparently.

Using separate sets of data files dedicated to little-endian and big-endian platforms could theoretically lead to a slightly better performance at the precise moment that the data is loaded into memory; however, in practice, this runtime byte swapping has been shown to have very little measurable effect on performance. In addition, swapping the byte order of the data at runtime provides the benefit of using one single set of data files across all platforms, easing data management and cross-platform delivery.

Setting data file endianness

You set the data file endianness differently depending on whether you use the Navigation Lab or call the API of the PathData generation framework directly.

Using the Navigation Lab

To control the endianness of the NavData generated by the Navigation Lab:

  1. In the Generation window, select the desired endianness in the Output endianness control.

Using the Generator in C++

To control the endianness of the NavData generated by the Generator, set the desired endianness in the GeneratorRunOptions::m_outputFilesEndianness member accessible through GeneratorInputOutput.m_runOptions.m_outputFilesEndianness.

  • For big-endian NavData, use Kaim::Endianness::BigEndian.
  • For little-endian NavData, use Kaim::Endianness::LittleEndian.