NavData 엔디안(Endianness)

little-endian 또는 big-endian 형식으로 NavData를 생성할 수 있습니다. 기본적으로는 big-endian 형식으로 만들어지지만 사용자가 원하는 경우 little-endian 데이터를 만들도록 선택할 수 있습니다.

실제로 사용자가 선택하는 엔디안(Endianness)은 효과가 거의 없습니다. 런타임 시 NavData를 로드할 때마다 해당 엔디안(Endianness)을 현재 플랫폼의 엔디안(Endianness)과 비교합니다. 엔디안(Endianness)이 서로 일치하면 데이터가 그대로 사용되며, 서로 일치하지 않으면 데이터의 바이트 순서가 투명하게 교환됩니다.

little-endian 및 big-endian 플랫폼 전용의 개별 데이터 파일 세트를 사용할 경우 데이터가 메모리에 로드될 때 이론상 약간의 성능 개선 결과를 가져올 수 있지만 실제로는 이 런타임 바이트 교환이 성능 개선 효과가 거의 없는 것으로 밝혀졌습니다. 또한 런타임 시 데이터의 바이트 순서를 교환하면 데이터 관리 및 크로스 플랫폼 제공을 용이하게 하면서 모든 플랫폼에 걸쳐 하나의 단일 데이터 파일 세트를 사용할 수 있습니다.

데이터 파일 엔디안(Endianness) 설정

Navigation Lab을 사용하는지, PathData 생성 프레임워크의 API를 직접 호출하는지에 따라 데이터 파일 엔디안(Endianness)을 다르게 설정합니다.

Navigation Lab 사용

Navigation Lab에 의해 생성된 NavData의 엔디안(Endianness)을 제어하려면

  1. Generation 창의 Output endianness 컨트롤에서 원하는 엔디안(Endianness)을 선택합니다.

C++에서 Generator 사용

Generator에서 생성된 NavData의 엔디안(Endianness)을 제어하려면 GeneratorInputOutput.m_runOptions.m_outputFilesEndianness를 통해 액세스할 수 있는 GeneratorRunOptions::m_outputFilesEndianness 구성원에서 원하는 엔디안(Endianness)을 설정합니다.

  • big-endian NavData는 Kaim::Endianness::BigEndian을 사용합니다.
  • little-endian NavData는 Kaim::Endianness::LittleEndian을 사용합니다.