navtk 2.1.0.post6.dev0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (580) hide show
  1. navtk-2.1.0.post6.dev0/.clang-format +19 -0
  2. navtk-2.1.0.post6.dev0/.editorconfig +29 -0
  3. navtk-2.1.0.post6.dev0/.flake8 +8 -0
  4. navtk-2.1.0.post6.dev0/.github/actions/setup/action.yml +72 -0
  5. navtk-2.1.0.post6.dev0/.github/workflows/build_wheels.yml +66 -0
  6. navtk-2.1.0.post6.dev0/.github/workflows/check.yml +105 -0
  7. navtk-2.1.0.post6.dev0/.github/workflows/deploy_docs.yml +37 -0
  8. navtk-2.1.0.post6.dev0/.github/workflows/test.yml +141 -0
  9. navtk-2.1.0.post6.dev0/.gitignore +36 -0
  10. navtk-2.1.0.post6.dev0/.lldbinit +2 -0
  11. navtk-2.1.0.post6.dev0/.noai +0 -0
  12. navtk-2.1.0.post6.dev0/CHANGELOG.md +346 -0
  13. navtk-2.1.0.post6.dev0/CONTRIBUTING.md +114 -0
  14. navtk-2.1.0.post6.dev0/LICENSE +177 -0
  15. navtk-2.1.0.post6.dev0/NOTICE +20 -0
  16. navtk-2.1.0.post6.dev0/PKG-INFO +6 -0
  17. navtk-2.1.0.post6.dev0/README.md +268 -0
  18. navtk-2.1.0.post6.dev0/README_PYTHON.md +67 -0
  19. navtk-2.1.0.post6.dev0/cross/arm64-linux.cross +14 -0
  20. navtk-2.1.0.post6.dev0/cross/armhf-linux.cross +14 -0
  21. navtk-2.1.0.post6.dev0/docker/.dockerignore +1 -0
  22. navtk-2.1.0.post6.dev0/docker/Dockerfile.fedora +55 -0
  23. navtk-2.1.0.post6.dev0/docker/Dockerfile.ubuntu +77 -0
  24. navtk-2.1.0.post6.dev0/docker/Dockerfile.ubuntu-cross +84 -0
  25. navtk-2.1.0.post6.dev0/docker/docker_interface.py +596 -0
  26. navtk-2.1.0.post6.dev0/docker/requirements.txt +50 -0
  27. navtk-2.1.0.post6.dev0/docker/util/user_bootstrap.sh +23 -0
  28. navtk-2.1.0.post6.dev0/docs/.gitignore +1 -0
  29. navtk-2.1.0.post6.dev0/docs/Doxyfile +2433 -0
  30. navtk-2.1.0.post6.dev0/docs/_static/navtkStyle.css +20 -0
  31. navtk-2.1.0.post6.dev0/docs/_templates/layout.html +4 -0
  32. navtk-2.1.0.post6.dev0/docs/build_documentation.py +191 -0
  33. navtk-2.1.0.post6.dev0/docs/check_documentation.py +35 -0
  34. navtk-2.1.0.post6.dev0/docs/conf.py +108 -0
  35. navtk-2.1.0.post6.dev0/docs/index.rst +42 -0
  36. navtk-2.1.0.post6.dev0/docs/meson.build +9 -0
  37. navtk-2.1.0.post6.dev0/docs/src/rbpf_walkthrough.cpp +46 -0
  38. navtk-2.1.0.post6.dev0/docs/src/vsb_custom.cpp +29 -0
  39. navtk-2.1.0.post6.dev0/docs/src/vsb_first_order.cpp +34 -0
  40. navtk-2.1.0.post6.dev0/docs/src/vsb_typical_application.cpp +87 -0
  41. navtk-2.1.0.post6.dev0/docs/src/vsb_whole_state_error_state.cpp +54 -0
  42. navtk-2.1.0.post6.dev0/docs/src/walkthrough.cpp +143 -0
  43. navtk-2.1.0.post6.dev0/docs/tutorial/acronyms.rst +51 -0
  44. navtk-2.1.0.post6.dev0/docs/tutorial/adding_support_cpp.rst +166 -0
  45. navtk-2.1.0.post6.dev0/docs/tutorial/adding_support_python.rst +71 -0
  46. navtk-2.1.0.post6.dev0/docs/tutorial/coordinate_frames.rst +1065 -0
  47. navtk-2.1.0.post6.dev0/docs/tutorial/faq.rst +63 -0
  48. navtk-2.1.0.post6.dev0/docs/tutorial/figures/FrameABComparison.svg +1 -0
  49. navtk-2.1.0.post6.dev0/docs/tutorial/figures/FrameRotation.svg +1 -0
  50. navtk-2.1.0.post6.dev0/docs/tutorial/figures/FrameRotationWithW.svg +1 -0
  51. navtk-2.1.0.post6.dev0/docs/tutorial/figures/VsbChaining.png +0 -0
  52. navtk-2.1.0.post6.dev0/docs/tutorial/figures/WanderAngleDefinitionAll.svg +1 -0
  53. navtk-2.1.0.post6.dev0/docs/tutorial/introduction.rst +136 -0
  54. navtk-2.1.0.post6.dev0/docs/tutorial/motivation.rst +68 -0
  55. navtk-2.1.0.post6.dev0/docs/tutorial/notation.rst +34 -0
  56. navtk-2.1.0.post6.dev0/docs/tutorial/rbpf.rst +210 -0
  57. navtk-2.1.0.post6.dev0/docs/tutorial/units.rst +15 -0
  58. navtk-2.1.0.post6.dev0/docs/tutorial/virtual_state_blocks.rst +445 -0
  59. navtk-2.1.0.post6.dev0/docs/tutorial/walkthrough.rst +366 -0
  60. navtk-2.1.0.post6.dev0/examples/aliased_example.cpp +287 -0
  61. navtk-2.1.0.post6.dev0/examples/bias_with_update/BiasBlock.hpp +38 -0
  62. navtk-2.1.0.post6.dev0/examples/bias_with_update/BiasBlock.py +26 -0
  63. navtk-2.1.0.post6.dev0/examples/bias_with_update/BiasMeasurementProcessor.hpp +37 -0
  64. navtk-2.1.0.post6.dev0/examples/bias_with_update/BiasMeasurementProcessor.py +16 -0
  65. navtk-2.1.0.post6.dev0/examples/bias_with_update/bias_example_with_update.cpp +62 -0
  66. navtk-2.1.0.post6.dev0/examples/bias_with_update/bias_example_with_update.py +63 -0
  67. navtk-2.1.0.post6.dev0/examples/experimental/particle_filter_example.py +752 -0
  68. navtk-2.1.0.post6.dev0/examples/meson.build +51 -0
  69. navtk-2.1.0.post6.dev0/examples/scalar_fogm_example.py +87 -0
  70. navtk-2.1.0.post6.dev0/examples/straight_flight_example.cpp +330 -0
  71. navtk-2.1.0.post6.dev0/examples/straight_flight_example.py +346 -0
  72. navtk-2.1.0.post6.dev0/examples/utils/exampleutils.cpp +147 -0
  73. navtk-2.1.0.post6.dev0/examples/utils/exampleutils.hpp +86 -0
  74. navtk-2.1.0.post6.dev0/examples/virtual_state_block_example.py +143 -0
  75. navtk-2.1.0.post6.dev0/extra/lldbinit.py +175 -0
  76. navtk-2.1.0.post6.dev0/install/FindNavToolkit.cmake +9 -0
  77. navtk-2.1.0.post6.dev0/install/meson.build +59 -0
  78. navtk-2.1.0.post6.dev0/meson.build +358 -0
  79. navtk-2.1.0.post6.dev0/meson_options.txt +43 -0
  80. navtk-2.1.0.post6.dev0/optional/gdal/README.md +8 -0
  81. navtk-2.1.0.post6.dev0/optional/gdal/src/navtk/geospatial/GdalRaster.cpp +178 -0
  82. navtk-2.1.0.post6.dev0/optional/gdal/src/navtk/geospatial/GdalRaster.hpp +144 -0
  83. navtk-2.1.0.post6.dev0/optional/gdal/src/navtk/geospatial/Post.hpp +23 -0
  84. navtk-2.1.0.post6.dev0/optional/gdal/src/navtk/geospatial/Raster.hpp +91 -0
  85. navtk-2.1.0.post6.dev0/optional/gdal/src/navtk/geospatial/Tile.cpp +121 -0
  86. navtk-2.1.0.post6.dev0/optional/gdal/src/navtk/geospatial/Tile.hpp +80 -0
  87. navtk-2.1.0.post6.dev0/optional/gdal/src/navtk/geospatial/TileStorage.cpp +49 -0
  88. navtk-2.1.0.post6.dev0/optional/gdal/src/navtk/geospatial/TileStorage.hpp +71 -0
  89. navtk-2.1.0.post6.dev0/optional/gdal/src/navtk/geospatial/detail/custom_deleters.cpp +21 -0
  90. navtk-2.1.0.post6.dev0/optional/gdal/src/navtk/geospatial/detail/custom_deleters.hpp +31 -0
  91. navtk-2.1.0.post6.dev0/optional/gdal/src/navtk/geospatial/detail/transformations.cpp +91 -0
  92. navtk-2.1.0.post6.dev0/optional/gdal/src/navtk/geospatial/detail/transformations.hpp +48 -0
  93. navtk-2.1.0.post6.dev0/optional/gdal/src/navtk/geospatial/sources/GdalSource.cpp +147 -0
  94. navtk-2.1.0.post6.dev0/optional/gdal/src/navtk/geospatial/sources/GdalSource.hpp +83 -0
  95. navtk-2.1.0.post6.dev0/optional/gdal/test/navtk/geospatial/GdalRasterTests.cpp +29 -0
  96. navtk-2.1.0.post6.dev0/optional/gdal/test/navtk/geospatial/GdalSourceTests.cpp +193 -0
  97. navtk-2.1.0.post6.dev0/optional/gdal/test/navtk/geospatial/GdalTileTest.cpp +269 -0
  98. navtk-2.1.0.post6.dev0/optional/gdal/test/navtk/geospatial/MockRaster.hpp +49 -0
  99. navtk-2.1.0.post6.dev0/optional/gdal/test/navtk/geospatial/SimpleElevationProviderTests.cpp +150 -0
  100. navtk-2.1.0.post6.dev0/optional/gdal/test/navtk/geospatial/TileStorageTests.cpp +79 -0
  101. navtk-2.1.0.post6.dev0/pyproject.toml +45 -0
  102. navtk-2.1.0.post6.dev0/src/bindings/python/binding_helpers.hpp +219 -0
  103. navtk-2.1.0.post6.dev0/src/bindings/python/exampleutils.cpp +22 -0
  104. navtk-2.1.0.post6.dev0/src/bindings/python/filtering.cpp +1861 -0
  105. navtk-2.1.0.post6.dev0/src/bindings/python/geospatial.cpp +269 -0
  106. navtk-2.1.0.post6.dev0/src/bindings/python/inertial.cpp +722 -0
  107. navtk-2.1.0.post6.dev0/src/bindings/python/magnetic.cpp +112 -0
  108. navtk-2.1.0.post6.dev0/src/bindings/python/meson.build +157 -0
  109. navtk-2.1.0.post6.dev0/src/bindings/python/navtk.cpp +211 -0
  110. navtk-2.1.0.post6.dev0/src/bindings/python/navutils.cpp +184 -0
  111. navtk-2.1.0.post6.dev0/src/bindings/python/py.typed +0 -0
  112. navtk-2.1.0.post6.dev0/src/bindings/python/utils.cpp +418 -0
  113. navtk-2.1.0.post6.dev0/src/navtk/aspn.hpp +127 -0
  114. navtk-2.1.0.post6.dev0/src/navtk/errors.cpp +73 -0
  115. navtk-2.1.0.post6.dev0/src/navtk/errors.hpp +233 -0
  116. navtk-2.1.0.post6.dev0/src/navtk/experimental/random.cpp +222 -0
  117. navtk-2.1.0.post6.dev0/src/navtk/experimental/random.hpp +273 -0
  118. navtk-2.1.0.post6.dev0/src/navtk/factory.cpp +56 -0
  119. navtk-2.1.0.post6.dev0/src/navtk/factory.hpp +361 -0
  120. navtk-2.1.0.post6.dev0/src/navtk/filtering/GenXhatPFunction.hpp +32 -0
  121. navtk-2.1.0.post6.dev0/src/navtk/filtering/containers/ClockModel.hpp +75 -0
  122. navtk-2.1.0.post6.dev0/src/navtk/filtering/containers/CorrectedGnssPseudorangeMeasurement.hpp +19 -0
  123. navtk-2.1.0.post6.dev0/src/navtk/filtering/containers/EstimateWithCovariance.cpp +23 -0
  124. navtk-2.1.0.post6.dev0/src/navtk/filtering/containers/EstimateWithCovariance.hpp +36 -0
  125. navtk-2.1.0.post6.dev0/src/navtk/filtering/containers/GaussianVectorData.hpp +47 -0
  126. navtk-2.1.0.post6.dev0/src/navtk/filtering/containers/ImuModel.cpp +102 -0
  127. navtk-2.1.0.post6.dev0/src/navtk/filtering/containers/ImuModel.hpp +228 -0
  128. navtk-2.1.0.post6.dev0/src/navtk/filtering/containers/LinearizedStrategyBase.cpp +70 -0
  129. navtk-2.1.0.post6.dev0/src/navtk/filtering/containers/LinearizedStrategyBase.hpp +81 -0
  130. navtk-2.1.0.post6.dev0/src/navtk/filtering/containers/MeasurementBuffer.cpp +89 -0
  131. navtk-2.1.0.post6.dev0/src/navtk/filtering/containers/MeasurementBuffer.hpp +41 -0
  132. navtk-2.1.0.post6.dev0/src/navtk/filtering/containers/MeasurementBuffer3d.hpp +19 -0
  133. navtk-2.1.0.post6.dev0/src/navtk/filtering/containers/MeasurementBufferBase.hpp +212 -0
  134. navtk-2.1.0.post6.dev0/src/navtk/filtering/containers/NavSolution.hpp +37 -0
  135. navtk-2.1.0.post6.dev0/src/navtk/filtering/containers/PairedPva.hpp +50 -0
  136. navtk-2.1.0.post6.dev0/src/navtk/filtering/containers/Pose.hpp +40 -0
  137. navtk-2.1.0.post6.dev0/src/navtk/filtering/containers/PseudorangeDopplerMeasurements.hpp +25 -0
  138. navtk-2.1.0.post6.dev0/src/navtk/filtering/containers/RangeInfo.hpp +17 -0
  139. navtk-2.1.0.post6.dev0/src/navtk/filtering/containers/RelativeHumidityAux.hpp +32 -0
  140. navtk-2.1.0.post6.dev0/src/navtk/filtering/containers/SampledDynamicsModel.hpp +37 -0
  141. navtk-2.1.0.post6.dev0/src/navtk/filtering/containers/SampledMeasurementModel.hpp +39 -0
  142. navtk-2.1.0.post6.dev0/src/navtk/filtering/containers/StandardDynamicsModel.cpp +36 -0
  143. navtk-2.1.0.post6.dev0/src/navtk/filtering/containers/StandardDynamicsModel.hpp +68 -0
  144. navtk-2.1.0.post6.dev0/src/navtk/filtering/containers/StandardMeasurementModel.cpp +45 -0
  145. navtk-2.1.0.post6.dev0/src/navtk/filtering/containers/StandardMeasurementModel.hpp +68 -0
  146. navtk-2.1.0.post6.dev0/src/navtk/filtering/containers/TimestampedDataSeries.cpp +15 -0
  147. navtk-2.1.0.post6.dev0/src/navtk/filtering/containers/TimestampedDataSeries.hpp +103 -0
  148. navtk-2.1.0.post6.dev0/src/navtk/filtering/containers/TrackedGnssObservations.cpp +58 -0
  149. navtk-2.1.0.post6.dev0/src/navtk/filtering/containers/TrackedGnssObservations.hpp +88 -0
  150. navtk-2.1.0.post6.dev0/src/navtk/filtering/experimental/containers/RbpfModel.cpp +502 -0
  151. navtk-2.1.0.post6.dev0/src/navtk/filtering/experimental/containers/RbpfModel.hpp +280 -0
  152. navtk-2.1.0.post6.dev0/src/navtk/filtering/experimental/fusion/strategies/RbpfStrategy.cpp +529 -0
  153. navtk-2.1.0.post6.dev0/src/navtk/filtering/experimental/fusion/strategies/RbpfStrategy.hpp +243 -0
  154. navtk-2.1.0.post6.dev0/src/navtk/filtering/experimental/processors/NonlinearAltitudeProcessor.cpp +97 -0
  155. navtk-2.1.0.post6.dev0/src/navtk/filtering/experimental/processors/NonlinearAltitudeProcessor.hpp +85 -0
  156. navtk-2.1.0.post6.dev0/src/navtk/filtering/experimental/resampling.cpp +137 -0
  157. navtk-2.1.0.post6.dev0/src/navtk/filtering/experimental/resampling.hpp +53 -0
  158. navtk-2.1.0.post6.dev0/src/navtk/filtering/experimental/stateblocks/SampledFogmBlock.cpp +69 -0
  159. navtk-2.1.0.post6.dev0/src/navtk/filtering/experimental/stateblocks/SampledFogmBlock.hpp +88 -0
  160. navtk-2.1.0.post6.dev0/src/navtk/filtering/fusion/StandardFusionEngine.cpp +766 -0
  161. navtk-2.1.0.post6.dev0/src/navtk/filtering/fusion/StandardFusionEngine.hpp +785 -0
  162. navtk-2.1.0.post6.dev0/src/navtk/filtering/fusion/StandardFusionEngineBase.hpp +439 -0
  163. navtk-2.1.0.post6.dev0/src/navtk/filtering/fusion/strategies/EkfStrategy.cpp +52 -0
  164. navtk-2.1.0.post6.dev0/src/navtk/filtering/fusion/strategies/EkfStrategy.hpp +36 -0
  165. navtk-2.1.0.post6.dev0/src/navtk/filtering/fusion/strategies/FusionStrategy.cpp +172 -0
  166. navtk-2.1.0.post6.dev0/src/navtk/filtering/fusion/strategies/FusionStrategy.hpp +205 -0
  167. navtk-2.1.0.post6.dev0/src/navtk/filtering/fusion/strategies/SampledModelStrategy.hpp +41 -0
  168. navtk-2.1.0.post6.dev0/src/navtk/filtering/fusion/strategies/StandardModelStrategy.cpp +56 -0
  169. navtk-2.1.0.post6.dev0/src/navtk/filtering/fusion/strategies/StandardModelStrategy.hpp +97 -0
  170. navtk-2.1.0.post6.dev0/src/navtk/filtering/fusion/strategies/UkfStrategy.cpp +178 -0
  171. navtk-2.1.0.post6.dev0/src/navtk/filtering/fusion/strategies/UkfStrategy.hpp +148 -0
  172. navtk-2.1.0.post6.dev0/src/navtk/filtering/processors/AltitudeMeasurementProcessor.cpp +64 -0
  173. navtk-2.1.0.post6.dev0/src/navtk/filtering/processors/AltitudeMeasurementProcessor.hpp +82 -0
  174. navtk-2.1.0.post6.dev0/src/navtk/filtering/processors/AltitudeMeasurementProcessorWithBias.cpp +75 -0
  175. navtk-2.1.0.post6.dev0/src/navtk/filtering/processors/AltitudeMeasurementProcessorWithBias.hpp +89 -0
  176. navtk-2.1.0.post6.dev0/src/navtk/filtering/processors/Attitude3dMeasurementProcessor.cpp +113 -0
  177. navtk-2.1.0.post6.dev0/src/navtk/filtering/processors/Attitude3dMeasurementProcessor.hpp +102 -0
  178. navtk-2.1.0.post6.dev0/src/navtk/filtering/processors/BiasedRangeProcessor.cpp +78 -0
  179. navtk-2.1.0.post6.dev0/src/navtk/filtering/processors/BiasedRangeProcessor.hpp +74 -0
  180. navtk-2.1.0.post6.dev0/src/navtk/filtering/processors/DeltaPositionMeasurementProcessor.cpp +139 -0
  181. navtk-2.1.0.post6.dev0/src/navtk/filtering/processors/DeltaPositionMeasurementProcessor.hpp +116 -0
  182. navtk-2.1.0.post6.dev0/src/navtk/filtering/processors/DirectMeasurementProcessor.cpp +57 -0
  183. navtk-2.1.0.post6.dev0/src/navtk/filtering/processors/DirectMeasurementProcessor.hpp +96 -0
  184. navtk-2.1.0.post6.dev0/src/navtk/filtering/processors/DirectionToPoints3dMeasurementProcessor.cpp +167 -0
  185. navtk-2.1.0.post6.dev0/src/navtk/filtering/processors/DirectionToPoints3dMeasurementProcessor.hpp +85 -0
  186. navtk-2.1.0.post6.dev0/src/navtk/filtering/processors/GeodeticPos2dMeasurementProcessor.cpp +70 -0
  187. navtk-2.1.0.post6.dev0/src/navtk/filtering/processors/GeodeticPos2dMeasurementProcessor.hpp +72 -0
  188. navtk-2.1.0.post6.dev0/src/navtk/filtering/processors/GeodeticPos3dMeasurementProcessor.cpp +73 -0
  189. navtk-2.1.0.post6.dev0/src/navtk/filtering/processors/GeodeticPos3dMeasurementProcessor.hpp +72 -0
  190. navtk-2.1.0.post6.dev0/src/navtk/filtering/processors/MagneticFieldMagnitudeMeasurementProcessor.cpp +78 -0
  191. navtk-2.1.0.post6.dev0/src/navtk/filtering/processors/MagneticFieldMagnitudeMeasurementProcessor.hpp +87 -0
  192. navtk-2.1.0.post6.dev0/src/navtk/filtering/processors/MagnetometerToHeadingMeasurementProcessor.cpp +99 -0
  193. navtk-2.1.0.post6.dev0/src/navtk/filtering/processors/MagnetometerToHeadingMeasurementProcessor.hpp +145 -0
  194. navtk-2.1.0.post6.dev0/src/navtk/filtering/processors/MeasurementProcessor.hpp +189 -0
  195. navtk-2.1.0.post6.dev0/src/navtk/filtering/processors/PinsonPositionMeasurementProcessor.cpp +137 -0
  196. navtk-2.1.0.post6.dev0/src/navtk/filtering/processors/PinsonPositionMeasurementProcessor.hpp +101 -0
  197. navtk-2.1.0.post6.dev0/src/navtk/filtering/processors/PositionVelocityAttitudeMeasurementProcessor.cpp +222 -0
  198. navtk-2.1.0.post6.dev0/src/navtk/filtering/processors/PositionVelocityAttitudeMeasurementProcessor.hpp +155 -0
  199. navtk-2.1.0.post6.dev0/src/navtk/filtering/processors/VelocityMeasurementProcessor.cpp +144 -0
  200. navtk-2.1.0.post6.dev0/src/navtk/filtering/processors/VelocityMeasurementProcessor.hpp +115 -0
  201. navtk-2.1.0.post6.dev0/src/navtk/filtering/processors/ZuptMeasurementProcessor.cpp +89 -0
  202. navtk-2.1.0.post6.dev0/src/navtk/filtering/processors/ZuptMeasurementProcessor.hpp +124 -0
  203. navtk-2.1.0.post6.dev0/src/navtk/filtering/stateblocks/ClockBiasesStateBlock.cpp +102 -0
  204. navtk-2.1.0.post6.dev0/src/navtk/filtering/stateblocks/ClockBiasesStateBlock.hpp +283 -0
  205. navtk-2.1.0.post6.dev0/src/navtk/filtering/stateblocks/DeadReckoningStateBlock.cpp +80 -0
  206. navtk-2.1.0.post6.dev0/src/navtk/filtering/stateblocks/DeadReckoningStateBlock.hpp +111 -0
  207. navtk-2.1.0.post6.dev0/src/navtk/filtering/stateblocks/EarthModel.cpp +56 -0
  208. navtk-2.1.0.post6.dev0/src/navtk/filtering/stateblocks/EarthModel.hpp +152 -0
  209. navtk-2.1.0.post6.dev0/src/navtk/filtering/stateblocks/FogmAccel.cpp +49 -0
  210. navtk-2.1.0.post6.dev0/src/navtk/filtering/stateblocks/FogmAccel.hpp +73 -0
  211. navtk-2.1.0.post6.dev0/src/navtk/filtering/stateblocks/FogmBlock.cpp +61 -0
  212. navtk-2.1.0.post6.dev0/src/navtk/filtering/stateblocks/FogmBlock.hpp +94 -0
  213. navtk-2.1.0.post6.dev0/src/navtk/filtering/stateblocks/FogmVelocity.cpp +48 -0
  214. navtk-2.1.0.post6.dev0/src/navtk/filtering/stateblocks/FogmVelocity.hpp +76 -0
  215. navtk-2.1.0.post6.dev0/src/navtk/filtering/stateblocks/GravityModel.hpp +29 -0
  216. navtk-2.1.0.post6.dev0/src/navtk/filtering/stateblocks/GravityModelSchwartz.cpp +20 -0
  217. navtk-2.1.0.post6.dev0/src/navtk/filtering/stateblocks/GravityModelSchwartz.hpp +31 -0
  218. navtk-2.1.0.post6.dev0/src/navtk/filtering/stateblocks/GravityModelTittertonAndWeston.cpp +22 -0
  219. navtk-2.1.0.post6.dev0/src/navtk/filtering/stateblocks/GravityModelTittertonAndWeston.hpp +24 -0
  220. navtk-2.1.0.post6.dev0/src/navtk/filtering/stateblocks/Pinson15NedBlock.cpp +287 -0
  221. navtk-2.1.0.post6.dev0/src/navtk/filtering/stateblocks/Pinson15NedBlock.hpp +492 -0
  222. navtk-2.1.0.post6.dev0/src/navtk/filtering/stateblocks/Pinson21NedBlock.cpp +92 -0
  223. navtk-2.1.0.post6.dev0/src/navtk/filtering/stateblocks/Pinson21NedBlock.hpp +180 -0
  224. navtk-2.1.0.post6.dev0/src/navtk/filtering/stateblocks/StateBlock.hpp +204 -0
  225. navtk-2.1.0.post6.dev0/src/navtk/filtering/stateblocks/apply_error_states.cpp +112 -0
  226. navtk-2.1.0.post6.dev0/src/navtk/filtering/stateblocks/apply_error_states.hpp +151 -0
  227. navtk-2.1.0.post6.dev0/src/navtk/filtering/stateblocks/discretization_strategy.cpp +49 -0
  228. navtk-2.1.0.post6.dev0/src/navtk/filtering/stateblocks/discretization_strategy.hpp +67 -0
  229. navtk-2.1.0.post6.dev0/src/navtk/filtering/utils.cpp +296 -0
  230. navtk-2.1.0.post6.dev0/src/navtk/filtering/utils.hpp +231 -0
  231. navtk-2.1.0.post6.dev0/src/navtk/filtering/virtualstateblocks/ChainedVirtualStateBlock.cpp +104 -0
  232. navtk-2.1.0.post6.dev0/src/navtk/filtering/virtualstateblocks/ChainedVirtualStateBlock.hpp +128 -0
  233. navtk-2.1.0.post6.dev0/src/navtk/filtering/virtualstateblocks/EcefToStandard.cpp +93 -0
  234. navtk-2.1.0.post6.dev0/src/navtk/filtering/virtualstateblocks/EcefToStandard.hpp +89 -0
  235. navtk-2.1.0.post6.dev0/src/navtk/filtering/virtualstateblocks/EcefToStandardQuat.cpp +91 -0
  236. navtk-2.1.0.post6.dev0/src/navtk/filtering/virtualstateblocks/EcefToStandardQuat.hpp +90 -0
  237. navtk-2.1.0.post6.dev0/src/navtk/filtering/virtualstateblocks/FirstOrderVirtualStateBlock.cpp +33 -0
  238. navtk-2.1.0.post6.dev0/src/navtk/filtering/virtualstateblocks/FirstOrderVirtualStateBlock.hpp +65 -0
  239. navtk-2.1.0.post6.dev0/src/navtk/filtering/virtualstateblocks/NumericalVirtualStateBlock.cpp +36 -0
  240. navtk-2.1.0.post6.dev0/src/navtk/filtering/virtualstateblocks/NumericalVirtualStateBlock.hpp +81 -0
  241. navtk-2.1.0.post6.dev0/src/navtk/filtering/virtualstateblocks/PinsonErrorToStandard.cpp +76 -0
  242. navtk-2.1.0.post6.dev0/src/navtk/filtering/virtualstateblocks/PinsonErrorToStandard.hpp +77 -0
  243. navtk-2.1.0.post6.dev0/src/navtk/filtering/virtualstateblocks/PinsonErrorToStandardQuat.cpp +80 -0
  244. navtk-2.1.0.post6.dev0/src/navtk/filtering/virtualstateblocks/PinsonErrorToStandardQuat.hpp +82 -0
  245. navtk-2.1.0.post6.dev0/src/navtk/filtering/virtualstateblocks/PinsonToSensor.cpp +76 -0
  246. navtk-2.1.0.post6.dev0/src/navtk/filtering/virtualstateblocks/PinsonToSensor.hpp +63 -0
  247. navtk-2.1.0.post6.dev0/src/navtk/filtering/virtualstateblocks/PinsonToSensorLlh.cpp +60 -0
  248. navtk-2.1.0.post6.dev0/src/navtk/filtering/virtualstateblocks/PinsonToSensorLlh.hpp +63 -0
  249. navtk-2.1.0.post6.dev0/src/navtk/filtering/virtualstateblocks/PlatformToSensorCartesianVirtualStateBlock.cpp +110 -0
  250. navtk-2.1.0.post6.dev0/src/navtk/filtering/virtualstateblocks/PlatformToSensorCartesianVirtualStateBlock.hpp +91 -0
  251. navtk-2.1.0.post6.dev0/src/navtk/filtering/virtualstateblocks/PlatformToSensorEcef.cpp +83 -0
  252. navtk-2.1.0.post6.dev0/src/navtk/filtering/virtualstateblocks/PlatformToSensorEcef.hpp +74 -0
  253. navtk-2.1.0.post6.dev0/src/navtk/filtering/virtualstateblocks/PlatformToSensorEcefQuat.cpp +73 -0
  254. navtk-2.1.0.post6.dev0/src/navtk/filtering/virtualstateblocks/PlatformToSensorEcefQuat.hpp +77 -0
  255. navtk-2.1.0.post6.dev0/src/navtk/filtering/virtualstateblocks/QuatToRpyPva.cpp +45 -0
  256. navtk-2.1.0.post6.dev0/src/navtk/filtering/virtualstateblocks/QuatToRpyPva.hpp +71 -0
  257. navtk-2.1.0.post6.dev0/src/navtk/filtering/virtualstateblocks/ScaleVirtualStateBlock.cpp +29 -0
  258. navtk-2.1.0.post6.dev0/src/navtk/filtering/virtualstateblocks/ScaleVirtualStateBlock.hpp +59 -0
  259. navtk-2.1.0.post6.dev0/src/navtk/filtering/virtualstateblocks/SensorToPlatformCartesianVirtualStateBlock.cpp +105 -0
  260. navtk-2.1.0.post6.dev0/src/navtk/filtering/virtualstateblocks/SensorToPlatformCartesianVirtualStateBlock.hpp +91 -0
  261. navtk-2.1.0.post6.dev0/src/navtk/filtering/virtualstateblocks/SensorToPlatformEcef.cpp +89 -0
  262. navtk-2.1.0.post6.dev0/src/navtk/filtering/virtualstateblocks/SensorToPlatformEcef.hpp +74 -0
  263. navtk-2.1.0.post6.dev0/src/navtk/filtering/virtualstateblocks/SensorToPlatformEcefQuat.cpp +71 -0
  264. navtk-2.1.0.post6.dev0/src/navtk/filtering/virtualstateblocks/SensorToPlatformEcefQuat.hpp +77 -0
  265. navtk-2.1.0.post6.dev0/src/navtk/filtering/virtualstateblocks/ShiftVirtualStateBlock.cpp +37 -0
  266. navtk-2.1.0.post6.dev0/src/navtk/filtering/virtualstateblocks/ShiftVirtualStateBlock.hpp +67 -0
  267. navtk-2.1.0.post6.dev0/src/navtk/filtering/virtualstateblocks/StandardToEcef.cpp +79 -0
  268. navtk-2.1.0.post6.dev0/src/navtk/filtering/virtualstateblocks/StandardToEcef.hpp +89 -0
  269. navtk-2.1.0.post6.dev0/src/navtk/filtering/virtualstateblocks/StandardToEcefQuat.cpp +81 -0
  270. navtk-2.1.0.post6.dev0/src/navtk/filtering/virtualstateblocks/StandardToEcefQuat.hpp +88 -0
  271. navtk-2.1.0.post6.dev0/src/navtk/filtering/virtualstateblocks/StateExtractor.cpp +57 -0
  272. navtk-2.1.0.post6.dev0/src/navtk/filtering/virtualstateblocks/StateExtractor.hpp +69 -0
  273. navtk-2.1.0.post6.dev0/src/navtk/filtering/virtualstateblocks/VirtualStateBlock.cpp +34 -0
  274. navtk-2.1.0.post6.dev0/src/navtk/filtering/virtualstateblocks/VirtualStateBlock.hpp +156 -0
  275. navtk-2.1.0.post6.dev0/src/navtk/filtering/virtualstateblocks/VirtualStateBlockManager.cpp +292 -0
  276. navtk-2.1.0.post6.dev0/src/navtk/filtering/virtualstateblocks/VirtualStateBlockManager.hpp +290 -0
  277. navtk-2.1.0.post6.dev0/src/navtk/fs/filesystem.hpp +49 -0
  278. navtk-2.1.0.post6.dev0/src/navtk/geospatial/ElevationInterpolator.cpp +25 -0
  279. navtk-2.1.0.post6.dev0/src/navtk/geospatial/ElevationInterpolator.hpp +50 -0
  280. navtk-2.1.0.post6.dev0/src/navtk/geospatial/providers/SimpleElevationProvider.cpp +35 -0
  281. navtk-2.1.0.post6.dev0/src/navtk/geospatial/providers/SimpleElevationProvider.hpp +47 -0
  282. navtk-2.1.0.post6.dev0/src/navtk/geospatial/providers/SimpleProvider.cpp +19 -0
  283. navtk-2.1.0.post6.dev0/src/navtk/geospatial/providers/SimpleProvider.hpp +30 -0
  284. navtk-2.1.0.post6.dev0/src/navtk/geospatial/providers/SpatialMapDataProvider.cpp +30 -0
  285. navtk-2.1.0.post6.dev0/src/navtk/geospatial/providers/SpatialMapDataProvider.hpp +75 -0
  286. navtk-2.1.0.post6.dev0/src/navtk/geospatial/sources/ElevationSource.cpp +10 -0
  287. navtk-2.1.0.post6.dev0/src/navtk/geospatial/sources/ElevationSource.hpp +47 -0
  288. navtk-2.1.0.post6.dev0/src/navtk/geospatial/sources/GeoidUndulationSource.cpp +259 -0
  289. navtk-2.1.0.post6.dev0/src/navtk/geospatial/sources/GeoidUndulationSource.hpp +162 -0
  290. navtk-2.1.0.post6.dev0/src/navtk/geospatial/sources/SpatialMapDataSource.hpp +33 -0
  291. navtk-2.1.0.post6.dev0/src/navtk/get_time.cpp +38 -0
  292. navtk-2.1.0.post6.dev0/src/navtk/get_time.hpp +31 -0
  293. navtk-2.1.0.post6.dev0/src/navtk/inertial/AidingAltData.hpp +29 -0
  294. navtk-2.1.0.post6.dev0/src/navtk/inertial/AlignBase.cpp +78 -0
  295. navtk-2.1.0.post6.dev0/src/navtk/inertial/AlignBase.hpp +209 -0
  296. navtk-2.1.0.post6.dev0/src/navtk/inertial/BasicInsAndFilter.cpp +117 -0
  297. navtk-2.1.0.post6.dev0/src/navtk/inertial/BasicInsAndFilter.hpp +107 -0
  298. navtk-2.1.0.post6.dev0/src/navtk/inertial/BufferedImu.cpp +388 -0
  299. navtk-2.1.0.post6.dev0/src/navtk/inertial/BufferedImu.hpp +221 -0
  300. navtk-2.1.0.post6.dev0/src/navtk/inertial/BufferedIns.cpp +49 -0
  301. navtk-2.1.0.post6.dev0/src/navtk/inertial/BufferedIns.hpp +70 -0
  302. navtk-2.1.0.post6.dev0/src/navtk/inertial/BufferedPva.cpp +176 -0
  303. navtk-2.1.0.post6.dev0/src/navtk/inertial/BufferedPva.hpp +203 -0
  304. navtk-2.1.0.post6.dev0/src/navtk/inertial/CoarseDynamicAlignment.cpp +793 -0
  305. navtk-2.1.0.post6.dev0/src/navtk/inertial/CoarseDynamicAlignment.hpp +399 -0
  306. navtk-2.1.0.post6.dev0/src/navtk/inertial/DynData.cpp +188 -0
  307. navtk-2.1.0.post6.dev0/src/navtk/inertial/DynData.hpp +200 -0
  308. navtk-2.1.0.post6.dev0/src/navtk/inertial/ImuErrors.hpp +85 -0
  309. navtk-2.1.0.post6.dev0/src/navtk/inertial/Inertial.cpp +145 -0
  310. navtk-2.1.0.post6.dev0/src/navtk/inertial/Inertial.hpp +331 -0
  311. navtk-2.1.0.post6.dev0/src/navtk/inertial/InertialPosVelAtt.hpp +116 -0
  312. navtk-2.1.0.post6.dev0/src/navtk/inertial/ManualAlignment.cpp +329 -0
  313. navtk-2.1.0.post6.dev0/src/navtk/inertial/ManualAlignment.hpp +157 -0
  314. navtk-2.1.0.post6.dev0/src/navtk/inertial/ManualHeadingAlignment.cpp +114 -0
  315. navtk-2.1.0.post6.dev0/src/navtk/inertial/ManualHeadingAlignment.hpp +121 -0
  316. navtk-2.1.0.post6.dev0/src/navtk/inertial/Mechanization.hpp +59 -0
  317. navtk-2.1.0.post6.dev0/src/navtk/inertial/MechanizationOptions.hpp +88 -0
  318. navtk-2.1.0.post6.dev0/src/navtk/inertial/MechanizationStandard.cpp +208 -0
  319. navtk-2.1.0.post6.dev0/src/navtk/inertial/MechanizationStandard.hpp +148 -0
  320. navtk-2.1.0.post6.dev0/src/navtk/inertial/MovementDetector.cpp +119 -0
  321. navtk-2.1.0.post6.dev0/src/navtk/inertial/MovementDetector.hpp +126 -0
  322. navtk-2.1.0.post6.dev0/src/navtk/inertial/MovementDetectorImu.cpp +92 -0
  323. navtk-2.1.0.post6.dev0/src/navtk/inertial/MovementDetectorImu.hpp +89 -0
  324. navtk-2.1.0.post6.dev0/src/navtk/inertial/MovementDetectorPlugin.hpp +51 -0
  325. navtk-2.1.0.post6.dev0/src/navtk/inertial/MovementDetectorPos.cpp +98 -0
  326. navtk-2.1.0.post6.dev0/src/navtk/inertial/MovementDetectorPos.hpp +90 -0
  327. navtk-2.1.0.post6.dev0/src/navtk/inertial/MovementStatus.cpp +25 -0
  328. navtk-2.1.0.post6.dev0/src/navtk/inertial/MovementStatus.hpp +57 -0
  329. navtk-2.1.0.post6.dev0/src/navtk/inertial/StandardPosVelAtt.cpp +65 -0
  330. navtk-2.1.0.post6.dev0/src/navtk/inertial/StandardPosVelAtt.hpp +135 -0
  331. navtk-2.1.0.post6.dev0/src/navtk/inertial/StaticAlignment.cpp +186 -0
  332. navtk-2.1.0.post6.dev0/src/navtk/inertial/StaticAlignment.hpp +117 -0
  333. navtk-2.1.0.post6.dev0/src/navtk/inertial/StaticWahbaAlignment.cpp +106 -0
  334. navtk-2.1.0.post6.dev0/src/navtk/inertial/StaticWahbaAlignment.hpp +62 -0
  335. navtk-2.1.0.post6.dev0/src/navtk/inertial/WanderPosVelAtt.cpp +56 -0
  336. navtk-2.1.0.post6.dev0/src/navtk/inertial/WanderPosVelAtt.hpp +91 -0
  337. navtk-2.1.0.post6.dev0/src/navtk/inertial/inertial_functions.cpp +186 -0
  338. navtk-2.1.0.post6.dev0/src/navtk/inertial/inertial_functions.hpp +250 -0
  339. navtk-2.1.0.post6.dev0/src/navtk/inertial/mechanization_standard.cpp +280 -0
  340. navtk-2.1.0.post6.dev0/src/navtk/inertial/mechanization_standard.hpp +88 -0
  341. navtk-2.1.0.post6.dev0/src/navtk/inertial/mechanization_wander.cpp +247 -0
  342. navtk-2.1.0.post6.dev0/src/navtk/inertial/mechanization_wander.hpp +87 -0
  343. navtk-2.1.0.post6.dev0/src/navtk/inertial/quaternion_static_alignment.cpp +82 -0
  344. navtk-2.1.0.post6.dev0/src/navtk/inertial/quaternion_static_alignment.hpp +27 -0
  345. navtk-2.1.0.post6.dev0/src/navtk/inspect.cpp +71 -0
  346. navtk-2.1.0.post6.dev0/src/navtk/inspect.hpp +180 -0
  347. navtk-2.1.0.post6.dev0/src/navtk/linear_algebra.cpp +520 -0
  348. navtk-2.1.0.post6.dev0/src/navtk/linear_algebra.hpp +460 -0
  349. navtk-2.1.0.post6.dev0/src/navtk/magnetic/MagnetometerCalibration.cpp +9 -0
  350. navtk-2.1.0.post6.dev0/src/navtk/magnetic/MagnetometerCalibration.hpp +55 -0
  351. navtk-2.1.0.post6.dev0/src/navtk/magnetic/MagnetometerCalibrationCaruso2d.cpp +51 -0
  352. navtk-2.1.0.post6.dev0/src/navtk/magnetic/MagnetometerCalibrationCaruso2d.hpp +32 -0
  353. navtk-2.1.0.post6.dev0/src/navtk/magnetic/MagnetometerCalibrationEllipse2d.cpp +89 -0
  354. navtk-2.1.0.post6.dev0/src/navtk/magnetic/MagnetometerCalibrationEllipse2d.hpp +43 -0
  355. navtk-2.1.0.post6.dev0/src/navtk/magnetic/MagnetometerCalibrationScaleFactorBias.cpp +41 -0
  356. navtk-2.1.0.post6.dev0/src/navtk/magnetic/MagnetometerCalibrationScaleFactorBias.hpp +56 -0
  357. navtk-2.1.0.post6.dev0/src/navtk/magnetic/magnetic.cpp +17 -0
  358. navtk-2.1.0.post6.dev0/src/navtk/magnetic/magnetic.hpp +24 -0
  359. navtk-2.1.0.post6.dev0/src/navtk/navutils/derivatives.cpp +474 -0
  360. navtk-2.1.0.post6.dev0/src/navtk/navutils/derivatives.hpp +311 -0
  361. navtk-2.1.0.post6.dev0/src/navtk/navutils/gravity.cpp +185 -0
  362. navtk-2.1.0.post6.dev0/src/navtk/navutils/gravity.hpp +79 -0
  363. navtk-2.1.0.post6.dev0/src/navtk/navutils/leverarms.cpp +51 -0
  364. navtk-2.1.0.post6.dev0/src/navtk/navutils/leverarms.hpp +147 -0
  365. navtk-2.1.0.post6.dev0/src/navtk/navutils/math.cpp +52 -0
  366. navtk-2.1.0.post6.dev0/src/navtk/navutils/math.hpp +75 -0
  367. navtk-2.1.0.post6.dev0/src/navtk/navutils/navigation.cpp +74 -0
  368. navtk-2.1.0.post6.dev0/src/navtk/navutils/navigation.hpp +975 -0
  369. navtk-2.1.0.post6.dev0/src/navtk/navutils/navigation_xt.cpp +346 -0
  370. navtk-2.1.0.post6.dev0/src/navtk/navutils/navigation_xt2.cpp +146 -0
  371. navtk-2.1.0.post6.dev0/src/navtk/navutils/quaternions.cpp +68 -0
  372. navtk-2.1.0.post6.dev0/src/navtk/navutils/quaternions.hpp +165 -0
  373. navtk-2.1.0.post6.dev0/src/navtk/navutils/wgs84.cpp +32 -0
  374. navtk-2.1.0.post6.dev0/src/navtk/navutils/wgs84.hpp +71 -0
  375. navtk-2.1.0.post6.dev0/src/navtk/not_null.hpp +294 -0
  376. navtk-2.1.0.post6.dev0/src/navtk/tensors.hpp +109 -0
  377. navtk-2.1.0.post6.dev0/src/navtk/transform.cpp +37 -0
  378. navtk-2.1.0.post6.dev0/src/navtk/transform.hpp +39 -0
  379. navtk-2.1.0.post6.dev0/src/navtk/utils/CubicSplineModel.cpp +61 -0
  380. navtk-2.1.0.post6.dev0/src/navtk/utils/CubicSplineModel.hpp +52 -0
  381. navtk-2.1.0.post6.dev0/src/navtk/utils/DimensionValidator.cpp +434 -0
  382. navtk-2.1.0.post6.dev0/src/navtk/utils/DimensionValidator.hpp +121 -0
  383. navtk-2.1.0.post6.dev0/src/navtk/utils/GriddedInterpolant.cpp +140 -0
  384. navtk-2.1.0.post6.dev0/src/navtk/utils/GriddedInterpolant.hpp +69 -0
  385. navtk-2.1.0.post6.dev0/src/navtk/utils/InterpolationModel.hpp +82 -0
  386. navtk-2.1.0.post6.dev0/src/navtk/utils/IteratorAdapter.hpp +193 -0
  387. navtk-2.1.0.post6.dev0/src/navtk/utils/LinearModel.cpp +21 -0
  388. navtk-2.1.0.post6.dev0/src/navtk/utils/LinearModel.hpp +31 -0
  389. navtk-2.1.0.post6.dev0/src/navtk/utils/Ordered.hpp +315 -0
  390. navtk-2.1.0.post6.dev0/src/navtk/utils/OutlierDetection.cpp +27 -0
  391. navtk-2.1.0.post6.dev0/src/navtk/utils/OutlierDetection.hpp +65 -0
  392. navtk-2.1.0.post6.dev0/src/navtk/utils/OutlierDetectionSigma.cpp +47 -0
  393. navtk-2.1.0.post6.dev0/src/navtk/utils/OutlierDetectionSigma.hpp +48 -0
  394. navtk-2.1.0.post6.dev0/src/navtk/utils/OutlierDetectionThreshold.cpp +40 -0
  395. navtk-2.1.0.post6.dev0/src/navtk/utils/OutlierDetectionThreshold.hpp +48 -0
  396. navtk-2.1.0.post6.dev0/src/navtk/utils/QuadraticSplineModel.cpp +40 -0
  397. navtk-2.1.0.post6.dev0/src/navtk/utils/QuadraticSplineModel.hpp +38 -0
  398. navtk-2.1.0.post6.dev0/src/navtk/utils/RingBuffer.hpp +593 -0
  399. navtk-2.1.0.post6.dev0/src/navtk/utils/ValidationContext.cpp +240 -0
  400. navtk-2.1.0.post6.dev0/src/navtk/utils/ValidationContext.hpp +437 -0
  401. navtk-2.1.0.post6.dev0/src/navtk/utils/ValidationResult.cpp +20 -0
  402. navtk-2.1.0.post6.dev0/src/navtk/utils/ValidationResult.hpp +28 -0
  403. navtk-2.1.0.post6.dev0/src/navtk/utils/algorithm.hpp +97 -0
  404. navtk-2.1.0.post6.dev0/src/navtk/utils/compiler.hpp +63 -0
  405. navtk-2.1.0.post6.dev0/src/navtk/utils/conversions.cpp +250 -0
  406. navtk-2.1.0.post6.dev0/src/navtk/utils/conversions.hpp +268 -0
  407. navtk-2.1.0.post6.dev0/src/navtk/utils/data.cpp +372 -0
  408. navtk-2.1.0.post6.dev0/src/navtk/utils/data.hpp +131 -0
  409. navtk-2.1.0.post6.dev0/src/navtk/utils/human_readable.cpp +218 -0
  410. navtk-2.1.0.post6.dev0/src/navtk/utils/human_readable.hpp +145 -0
  411. navtk-2.1.0.post6.dev0/src/navtk/utils/interpolation.cpp +371 -0
  412. navtk-2.1.0.post6.dev0/src/navtk/utils/interpolation.hpp +239 -0
  413. navtk-2.1.0.post6.dev0/src/navtk/utils/meson.build +32 -0
  414. navtk-2.1.0.post6.dev0/src/navtk/utils/sortable_vectors.cpp +21 -0
  415. navtk-2.1.0.post6.dev0/src/navtk/utils/sortable_vectors.hpp +169 -0
  416. navtk-2.1.0.post6.dev0/subprojects/.gitignore +2 -0
  417. navtk-2.1.0.post6.dev0/subprojects/aspn-generated.wrap +7 -0
  418. navtk-2.1.0.post6.dev0/subprojects/gtest.wrap +15 -0
  419. navtk-2.1.0.post6.dev0/subprojects/mathjax.wrap +9 -0
  420. navtk-2.1.0.post6.dev0/subprojects/navtk-data.wrap +7 -0
  421. navtk-2.1.0.post6.dev0/subprojects/nlohmann_json.wrap +12 -0
  422. navtk-2.1.0.post6.dev0/subprojects/packagefiles/MathJax/meson.build +3 -0
  423. navtk-2.1.0.post6.dev0/subprojects/packagefiles/googletest/LICENSE.build +19 -0
  424. navtk-2.1.0.post6.dev0/subprojects/packagefiles/googletest/googlemock/meson.build +28 -0
  425. navtk-2.1.0.post6.dev0/subprojects/packagefiles/googletest/googletest/meson.build +24 -0
  426. navtk-2.1.0.post6.dev0/subprojects/packagefiles/googletest/meson.build +5 -0
  427. navtk-2.1.0.post6.dev0/subprojects/packagefiles/nlohmann_json/meson.build +32 -0
  428. navtk-2.1.0.post6.dev0/subprojects/packagefiles/nlohmann_json/meson_options.txt +5 -0
  429. navtk-2.1.0.post6.dev0/subprojects/packagefiles/pybind11/meson.build +46 -0
  430. navtk-2.1.0.post6.dev0/subprojects/packagefiles/pybind11/meson_options.txt +5 -0
  431. navtk-2.1.0.post6.dev0/subprojects/packagefiles/spdlog/meson.build +30 -0
  432. navtk-2.1.0.post6.dev0/subprojects/packagefiles/spdlog/meson_options.txt +5 -0
  433. navtk-2.1.0.post6.dev0/subprojects/packagefiles/xtensor/meson.build +48 -0
  434. navtk-2.1.0.post6.dev0/subprojects/packagefiles/xtensor/meson_options.txt +6 -0
  435. navtk-2.1.0.post6.dev0/subprojects/packagefiles/xtensor-blas/meson.build +142 -0
  436. navtk-2.1.0.post6.dev0/subprojects/packagefiles/xtensor-blas/meson_options.txt +5 -0
  437. navtk-2.1.0.post6.dev0/subprojects/packagefiles/xtensor-python/meson.build +57 -0
  438. navtk-2.1.0.post6.dev0/subprojects/packagefiles/xtensor-python/meson_options.txt +5 -0
  439. navtk-2.1.0.post6.dev0/subprojects/packagefiles/xtl/meson.build +38 -0
  440. navtk-2.1.0.post6.dev0/subprojects/packagefiles/xtl/meson_options.txt +5 -0
  441. navtk-2.1.0.post6.dev0/subprojects/pybind11.wrap +12 -0
  442. navtk-2.1.0.post6.dev0/subprojects/spdlog.wrap +12 -0
  443. navtk-2.1.0.post6.dev0/subprojects/xtensor-blas.pc +13 -0
  444. navtk-2.1.0.post6.dev0/subprojects/xtensor-blas.wrap +12 -0
  445. navtk-2.1.0.post6.dev0/subprojects/xtensor-python.wrap +12 -0
  446. navtk-2.1.0.post6.dev0/subprojects/xtensor.wrap +12 -0
  447. navtk-2.1.0.post6.dev0/subprojects/xtl.wrap +12 -0
  448. navtk-2.1.0.post6.dev0/test/meson.build +108 -0
  449. navtk-2.1.0.post6.dev0/test/navtk/Main.cpp +59 -0
  450. navtk-2.1.0.post6.dev0/test/navtk/OutlierDetection_Tests.cpp +98 -0
  451. navtk-2.1.0.post6.dev0/test/navtk/equality_checks.cpp +31 -0
  452. navtk-2.1.0.post6.dev0/test/navtk/equality_checks.hpp +38 -0
  453. navtk-2.1.0.post6.dev0/test/navtk/error_mode_assert.cpp +9 -0
  454. navtk-2.1.0.post6.dev0/test/navtk/error_mode_assert.hpp +517 -0
  455. navtk-2.1.0.post6.dev0/test/navtk/errors_tests.cpp +473 -0
  456. navtk-2.1.0.post6.dev0/test/navtk/factory_tests.cpp +820 -0
  457. navtk-2.1.0.post6.dev0/test/navtk/filtering/approximation_tests.cpp +306 -0
  458. navtk-2.1.0.post6.dev0/test/navtk/filtering/containers/MeasurementBufferTests.cpp +302 -0
  459. navtk-2.1.0.post6.dev0/test/navtk/filtering/containers/RbpfModelTests.cpp +57 -0
  460. navtk-2.1.0.post6.dev0/test/navtk/filtering/containers/StandardDynamicsModelTests.cpp +41 -0
  461. navtk-2.1.0.post6.dev0/test/navtk/filtering/containers/StandardMeasurementModelTests.cpp +50 -0
  462. navtk-2.1.0.post6.dev0/test/navtk/filtering/containers/TimeTests.cpp +633 -0
  463. navtk-2.1.0.post6.dev0/test/navtk/filtering/containers/TimestampedDataSeriesTests.cpp +243 -0
  464. navtk-2.1.0.post6.dev0/test/navtk/filtering/fusion/StandardFusionEngineTests.cpp +1229 -0
  465. navtk-2.1.0.post6.dev0/test/navtk/filtering/fusion/aliased_filter_tests.cpp +474 -0
  466. navtk-2.1.0.post6.dev0/test/navtk/filtering/fusion/strategies/ConfiguredStrategy.hpp +23 -0
  467. navtk-2.1.0.post6.dev0/test/navtk/filtering/fusion/strategies/FusionStrategyTests.cpp +57 -0
  468. navtk-2.1.0.post6.dev0/test/navtk/filtering/fusion/strategies/RbpfStrategyTests.cpp +526 -0
  469. navtk-2.1.0.post6.dev0/test/navtk/filtering/fusion/strategies/UkfStrategyTests.cpp +111 -0
  470. navtk-2.1.0.post6.dev0/test/navtk/filtering/fusion/strategies/fusion_strategy_tests.cpp +482 -0
  471. navtk-2.1.0.post6.dev0/test/navtk/filtering/fusion/strategies/long_duration/DemoStandardEkf.cpp +56 -0
  472. navtk-2.1.0.post6.dev0/test/navtk/filtering/fusion/strategies/long_duration/DemoStandardEkf.hpp +29 -0
  473. navtk-2.1.0.post6.dev0/test/navtk/filtering/fusion/strategies/long_duration/DemoStandardRbpf.cpp +67 -0
  474. navtk-2.1.0.post6.dev0/test/navtk/filtering/fusion/strategies/long_duration/DemoStandardRbpf.hpp +29 -0
  475. navtk-2.1.0.post6.dev0/test/navtk/filtering/fusion/strategies/long_duration/DemoStandardUkf.cpp +56 -0
  476. navtk-2.1.0.post6.dev0/test/navtk/filtering/fusion/strategies/long_duration/DemoStandardUkf.hpp +29 -0
  477. navtk-2.1.0.post6.dev0/test/navtk/filtering/fusion/strategies/long_duration/TestSet.cpp +115 -0
  478. navtk-2.1.0.post6.dev0/test/navtk/filtering/fusion/strategies/long_duration/TestSet.hpp +19 -0
  479. navtk-2.1.0.post6.dev0/test/navtk/filtering/fusion/strategies/long_duration/long_duration_strategy_tests.cpp +56 -0
  480. navtk-2.1.0.post6.dev0/test/navtk/filtering/fusion/strategies/standard_model_strategy_tests.cpp +229 -0
  481. navtk-2.1.0.post6.dev0/test/navtk/filtering/fusion/strategies/standard_model_strategy_tests.hpp +260 -0
  482. navtk-2.1.0.post6.dev0/test/navtk/filtering/processors/Attitude3dProcessorTests.cpp +314 -0
  483. navtk-2.1.0.post6.dev0/test/navtk/filtering/processors/DirectMeasurementProcessorTests.cpp +106 -0
  484. navtk-2.1.0.post6.dev0/test/navtk/filtering/processors/MagnetometerToHeadingMeasurementProcessorTests.cpp +164 -0
  485. navtk-2.1.0.post6.dev0/test/navtk/filtering/processors/MeasurementProcessorTests.cpp +34 -0
  486. navtk-2.1.0.post6.dev0/test/navtk/filtering/processors/NonlinearAltitudeProcessorTests.cpp +213 -0
  487. navtk-2.1.0.post6.dev0/test/navtk/filtering/processors/ZuptMeasurementProcessorTests.cpp +295 -0
  488. navtk-2.1.0.post6.dev0/test/navtk/filtering/processors/delta_processors_tests.cpp +588 -0
  489. navtk-2.1.0.post6.dev0/test/navtk/filtering/resampling_tests.cpp +133 -0
  490. navtk-2.1.0.post6.dev0/test/navtk/filtering/stateblocks/ClockBiasesStateBlockTests.cpp +248 -0
  491. navtk-2.1.0.post6.dev0/test/navtk/filtering/stateblocks/DeadReckoningStateBlockTests.cpp +149 -0
  492. navtk-2.1.0.post6.dev0/test/navtk/filtering/stateblocks/FogmBlockTests.cpp +391 -0
  493. navtk-2.1.0.post6.dev0/test/navtk/filtering/stateblocks/GravityModelTests.cpp +51 -0
  494. navtk-2.1.0.post6.dev0/test/navtk/filtering/stateblocks/Pinson15NedBlockTests.cpp +341 -0
  495. navtk-2.1.0.post6.dev0/test/navtk/filtering/stateblocks/SampledFogmBlockTests.cpp +174 -0
  496. navtk-2.1.0.post6.dev0/test/navtk/filtering/stateblocks/StateBlockTests.cpp +90 -0
  497. navtk-2.1.0.post6.dev0/test/navtk/filtering/stateblocks/error_state_correction_tests.cpp +122 -0
  498. navtk-2.1.0.post6.dev0/test/navtk/filtering/stateblocks/pinson_15_nonlinear_tests.cpp +204 -0
  499. navtk-2.1.0.post6.dev0/test/navtk/filtering/stateblocks/pinson_21_nonlinear_tests.cpp +267 -0
  500. navtk-2.1.0.post6.dev0/test/navtk/filtering/utils_tests.cpp +103 -0
  501. navtk-2.1.0.post6.dev0/test/navtk/filtering/virtualstateblocks/VirtualStateBlockManagerTests.cpp +467 -0
  502. navtk-2.1.0.post6.dev0/test/navtk/filtering/virtualstateblocks/pinson_virtual_state_block_tests.cpp +991 -0
  503. navtk-2.1.0.post6.dev0/test/navtk/filtering/virtualstateblocks/virtual_state_block_tests.cpp +596 -0
  504. navtk-2.1.0.post6.dev0/test/navtk/geospatial/ElevationInterpolatorTests.cpp +50 -0
  505. navtk-2.1.0.post6.dev0/test/navtk/geospatial/GeoidUndulationDataTests.cpp +297 -0
  506. navtk-2.1.0.post6.dev0/test/navtk/inertial/BasicInsAndFilterTests.cpp +184 -0
  507. navtk-2.1.0.post6.dev0/test/navtk/inertial/BufferedImuTests.cpp +826 -0
  508. navtk-2.1.0.post6.dev0/test/navtk/inertial/BufferedInsTests.cpp +245 -0
  509. navtk-2.1.0.post6.dev0/test/navtk/inertial/BufferedPvaTests.hpp +138 -0
  510. navtk-2.1.0.post6.dev0/test/navtk/inertial/InertialTests.cpp +652 -0
  511. navtk-2.1.0.post6.dev0/test/navtk/inertial/MovementDetectorTests.cpp +386 -0
  512. navtk-2.1.0.post6.dev0/test/navtk/inertial/alignment_tests.cpp +1382 -0
  513. navtk-2.1.0.post6.dev0/test/navtk/inertial/mech_tests.cpp +185 -0
  514. navtk-2.1.0.post6.dev0/test/navtk/inspect_tests.cpp +98 -0
  515. navtk-2.1.0.post6.dev0/test/navtk/linear_algebra_tests.cpp +608 -0
  516. navtk-2.1.0.post6.dev0/test/navtk/magnetic/MagnetometerCalibrationTests.cpp +175 -0
  517. navtk-2.1.0.post6.dev0/test/navtk/misc_test_helpers.hpp +34 -0
  518. navtk-2.1.0.post6.dev0/test/navtk/navutils/gravity_tests.cpp +265 -0
  519. navtk-2.1.0.post6.dev0/test/navtk/navutils/leverarms_tests.cpp +371 -0
  520. navtk-2.1.0.post6.dev0/test/navtk/navutils/math_tests.cpp +114 -0
  521. navtk-2.1.0.post6.dev0/test/navtk/navutils/navigation_tests.cpp +1207 -0
  522. navtk-2.1.0.post6.dev0/test/navtk/navutils/savage_navutils_tests.cpp +197 -0
  523. navtk-2.1.0.post6.dev0/test/navtk/not_null_tests.cpp +180 -0
  524. navtk-2.1.0.post6.dev0/test/navtk/scalar_assert.hpp +61 -0
  525. navtk-2.1.0.post6.dev0/test/navtk/spdlog_assert.cpp +194 -0
  526. navtk-2.1.0.post6.dev0/test/navtk/spdlog_assert.hpp +261 -0
  527. navtk-2.1.0.post6.dev0/test/navtk/tensor_assert.hpp +70 -0
  528. navtk-2.1.0.post6.dev0/test/navtk/test_data_generation.cpp +96 -0
  529. navtk-2.1.0.post6.dev0/test/navtk/test_data_generation.hpp +51 -0
  530. navtk-2.1.0.post6.dev0/test/navtk/transform_tests.cpp +33 -0
  531. navtk-2.1.0.post6.dev0/test/navtk/type_tests.cpp +122 -0
  532. navtk-2.1.0.post6.dev0/test/navtk/utils/GriddedInterpolantTests.cpp +36 -0
  533. navtk-2.1.0.post6.dev0/test/navtk/utils/OrderedTests.cpp +459 -0
  534. navtk-2.1.0.post6.dev0/test/navtk/utils/RingBufferTests.cpp +361 -0
  535. navtk-2.1.0.post6.dev0/test/navtk/utils/ValidationContextTests.cpp +338 -0
  536. navtk-2.1.0.post6.dev0/test/navtk/utils/algorithm_tests.cpp +8 -0
  537. navtk-2.1.0.post6.dev0/test/navtk/utils/conversion_tests.cpp +114 -0
  538. navtk-2.1.0.post6.dev0/test/navtk/utils/data_tests.cpp +406 -0
  539. navtk-2.1.0.post6.dev0/test/navtk/utils/human_readable_tests.cpp +84 -0
  540. navtk-2.1.0.post6.dev0/test/navtk/utils/interpolation_tests.cpp +700 -0
  541. navtk-2.1.0.post6.dev0/test/navtk/validation_assert.hpp +42 -0
  542. navtk-2.1.0.post6.dev0/test/navtk/xtensor_tests.cpp +17 -0
  543. navtk-2.1.0.post6.dev0/test/python/README.md +32 -0
  544. navtk-2.1.0.post6.dev0/test/python/buffered_imu_test.py +166 -0
  545. navtk-2.1.0.post6.dev0/test/python/clone_test.py +49 -0
  546. navtk-2.1.0.post6.dev0/test/python/error_mode_test.py +102 -0
  547. navtk-2.1.0.post6.dev0/test/python/fusion_strategy_test.py +130 -0
  548. navtk-2.1.0.post6.dev0/test/python/geoid_provider_test.py +14 -0
  549. navtk-2.1.0.post6.dev0/test/python/inertial_test.py +153 -0
  550. navtk-2.1.0.post6.dev0/test/python/meson.build +62 -0
  551. navtk-2.1.0.post6.dev0/test/python/util/__init__.py +0 -0
  552. navtk-2.1.0.post6.dev0/test/python/util/redirect.py +108 -0
  553. navtk-2.1.0.post6.dev0/test/python/utils_test.py +51 -0
  554. navtk-2.1.0.post6.dev0/util/asan_tests/README.md +5 -0
  555. navtk-2.1.0.post6.dev0/util/asan_tests/bad_ideas.h +28 -0
  556. navtk-2.1.0.post6.dev0/util/asan_tests/global-buffer-overflow.cxx +9 -0
  557. navtk-2.1.0.post6.dev0/util/asan_tests/heap-buffer-overflow.cxx +6 -0
  558. navtk-2.1.0.post6.dev0/util/asan_tests/heap-buffer-underflow.cxx +7 -0
  559. navtk-2.1.0.post6.dev0/util/asan_tests/leaks.cxx +6 -0
  560. navtk-2.1.0.post6.dev0/util/asan_tests/stack-buffer-overflow.cxx +6 -0
  561. navtk-2.1.0.post6.dev0/util/asan_tests/stack-use-after-return.cxx +10 -0
  562. navtk-2.1.0.post6.dev0/util/asan_tests/stack-use-after-scope.cxx +11 -0
  563. navtk-2.1.0.post6.dev0/util/asan_tests/use-after-free.cxx +6 -0
  564. navtk-2.1.0.post6.dev0/util/buildkit/README.md +1 -0
  565. navtk-2.1.0.post6.dev0/util/buildkit/__init__.py +0 -0
  566. navtk-2.1.0.post6.dev0/util/buildkit/console.py +502 -0
  567. navtk-2.1.0.post6.dev0/util/buildkit/parsing.py +165 -0
  568. navtk-2.1.0.post6.dev0/util/buildkit/system.py +192 -0
  569. navtk-2.1.0.post6.dev0/util/check_naming.py +79 -0
  570. navtk-2.1.0.post6.dev0/util/emergency_wrapdb.py +80 -0
  571. navtk-2.1.0.post6.dev0/util/extract_docs.py +346 -0
  572. navtk-2.1.0.post6.dev0/util/filter_gtest_output.py +129 -0
  573. navtk-2.1.0.post6.dev0/util/find_sources.py +27 -0
  574. navtk-2.1.0.post6.dev0/util/ghwt.py +162 -0
  575. navtk-2.1.0.post6.dev0/util/git_commit_hash.py +53 -0
  576. navtk-2.1.0.post6.dev0/util/mkdoc.py +540 -0
  577. navtk-2.1.0.post6.dev0/util/navtk_multiprocessing.py +59 -0
  578. navtk-2.1.0.post6.dev0/util/pretty_literal.py +151 -0
  579. navtk-2.1.0.post6.dev0/util/process_file_naming.py +442 -0
  580. navtk-2.1.0.post6.dev0/util/test_asan.py +213 -0
@@ -0,0 +1,19 @@
1
+ Language: Cpp
2
+ BasedOnStyle: Google
3
+ BreakBeforeBraces: Custom
4
+ IndentWidth: 4
5
+ UseTab: ForIndentation
6
+ TabWidth: 4
7
+ ColumnLimit: 100
8
+ IndentCaseLabels: false
9
+ MaxEmptyLinesToKeep: 3
10
+ AccessModifierOffset: -4
11
+ KeepEmptyLinesAtTheStartOfBlocks: true
12
+ BinPackArguments: false
13
+ BinPackParameters: false
14
+ AllowShortFunctionsOnASingleLine: All
15
+ AllowShortIfStatementsOnASingleLine: true
16
+ AlignConsecutiveAssignments: true
17
+ AlignTrailingComments: true
18
+ IndentPPDirectives: AfterHash
19
+ IncludeBlocks: Preserve
@@ -0,0 +1,29 @@
1
+ # https://editorconfig.org
2
+
3
+ root = true
4
+
5
+ [*.{h,c}{,pp}]
6
+ end_of_line = lf
7
+ insert_final_newline = true
8
+ indent_style = tab
9
+ trim_trailing_whitespace = true
10
+
11
+ [*.py]
12
+ end_of_line = lf
13
+ insert_final_newline = true
14
+ indent_style = space
15
+ trim_trailing_whitespace = true
16
+
17
+ [meson.build]
18
+ end_of_line = lf
19
+ indent_style = space
20
+ indent_size = 4
21
+ trim_trailing_whitespace = true
22
+ insert_final_newline = true
23
+
24
+ [*.yml]
25
+ end_of_line = lf
26
+ indent_size = 2
27
+ indent_style = space
28
+ trim_trailing_whitespace = true
29
+ insert_final_newline = true
@@ -0,0 +1,8 @@
1
+ [flake8]
2
+ ignore =
3
+ # Ignores line breaks around operators. This helps with formatting long lines.
4
+ W503, W504
5
+ # Ignores space before ":", which conflicts with black.
6
+ E203
7
+ # Ignores error from math-variables, like "I".
8
+ E741
@@ -0,0 +1,72 @@
1
+ name: 'Set up Docker'
2
+ description: 'Pulls docker image from registry, or builds if not available'
3
+ runs:
4
+ using: "composite"
5
+ steps:
6
+ - name: Log in to GitHub Container Registry
7
+ uses: docker/login-action@v3
8
+ with:
9
+ registry: ghcr.io
10
+ username: ${{ github.actor }}
11
+ password: ${{ github.token }}
12
+
13
+ - name: Compute Dockerfile hash
14
+ id: dockerfile-hash
15
+ shell: bash
16
+ run: |
17
+ HASH=$(sha256sum docker/${{ inputs.dockerfile }} | cut -d' ' -f1 | cut -c1-12)
18
+ echo "hash=$HASH" >> $GITHUB_OUTPUT
19
+ echo "Dockerfile hash: $HASH"
20
+
21
+ - name: Convert owner to lowercase
22
+ id: repo
23
+ shell: bash
24
+ run: |
25
+ echo "owner=$(echo '${{ github.repository_owner }}' | tr '[:upper:]' '[:lower:]')" >> $GITHUB_OUTPUT
26
+
27
+ - name: Try to pull Docker image from registry
28
+ id: pull
29
+ shell: bash
30
+ continue-on-error: true
31
+ run: docker pull ghcr.io/${{ steps.repo.outputs.owner }}/navtoolkit:${{ inputs.tag }}-${{ steps.dockerfile-hash.outputs.hash }}
32
+
33
+ - name: Set up Docker Buildx
34
+ if: steps.pull.outcome == 'failure'
35
+ uses: docker/setup-buildx-action@v3
36
+
37
+ - name: Build and Push Docker Image
38
+ if: steps.pull.outcome == 'failure'
39
+ id: docker_build
40
+ uses: docker/build-push-action@v5
41
+ with:
42
+ context: docker/
43
+ file: docker/${{ inputs.dockerfile }}
44
+ push: true
45
+ tags: ghcr.io/${{ steps.repo.outputs.owner }}/navtoolkit:${{ inputs.tag }}-${{ steps.dockerfile-hash.outputs.hash }}
46
+ env:
47
+ SOURCE_DATE_EPOCH: 0
48
+
49
+ - name: Create iidfile
50
+ shell: bash
51
+ run: |
52
+ set -xe
53
+ mkdir -p docker/build/iidfiles/
54
+ echo ghcr.io/${{ steps.repo.outputs.owner }}/navtoolkit:${{ inputs.tag }}-${{ steps.dockerfile-hash.outputs.hash }} > docker/build/iidfiles/${{ inputs.platform }}
55
+
56
+ - name: Ensure ccache directory exists
57
+ shell: bash
58
+ run: mkdir -p ~/.ccache
59
+
60
+ inputs:
61
+ platform:
62
+ description: 'Docker image name'
63
+ required: false
64
+ default: ubuntu-noble
65
+ dockerfile:
66
+ description: 'Dockerfile filename'
67
+ required: false
68
+ default: Dockerfile.ubuntu
69
+ tag:
70
+ description: 'Docker image tag'
71
+ required: false
72
+ default: ubuntu-noble
@@ -0,0 +1,66 @@
1
+ name: Build wheels
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+
7
+ jobs:
8
+ source:
9
+ name: Build source distribution
10
+ runs-on: ubuntu-24.04
11
+ steps:
12
+ - uses: actions/checkout@v4
13
+
14
+ - name: Install dependencies
15
+ run: sudo apt update && sudo apt install libopenblas-dev -y
16
+
17
+ - name: Build sdist
18
+ run: pipx run build --sdist
19
+
20
+ - uses: actions/upload-artifact@v4
21
+ with:
22
+ name: cibw-sdist
23
+ path: dist/*.tar.gz
24
+
25
+ unix:
26
+ name: ${{ matrix.os }} | ${{ matrix.arch }} | ${{ matrix.python }}
27
+ runs-on: ${{ matrix.os }}
28
+ strategy:
29
+ fail-fast: false
30
+ matrix:
31
+ os: [ubuntu-24.04, ubuntu-24.04-arm, macos-14]
32
+ arch: [auto, armv7l]
33
+ python: [cp310-*, cp311-*, cp312-*, cp313-*, cp314-*]
34
+ include:
35
+ - os: macos-14
36
+ macos_deployment_target: 14
37
+ exclude:
38
+ - os: ubuntu-24.04
39
+ arch: armv7l
40
+ - os: macos-14
41
+ arch: armv7l
42
+
43
+ steps:
44
+ - uses: actions/checkout@v4
45
+
46
+ - name: Set up QEMU
47
+ if: runner.os == 'Linux'
48
+ uses: docker/setup-qemu-action@v3
49
+ with:
50
+ platforms: all
51
+
52
+ - name: Build wheels
53
+ uses: pypa/cibuildwheel@v3.2.1
54
+ env:
55
+ MACOSX_DEPLOYMENT_TARGET: ${{ matrix.macos_deployment_target }}
56
+ CIBW_ARCHS: ${{ matrix.arch }}
57
+ CIBW_BUILD: ${{ matrix.python }}
58
+ CIBW_SKIP: "*-musllinux*"
59
+ CIBW_TEST_REQUIRES: pytest
60
+ # TODO: why does this test fail with pytest but not with unittest?
61
+ CIBW_TEST_COMMAND: "pytest {project} --ignore={project}/test/python/error_mode_test.py"
62
+
63
+ - uses: actions/upload-artifact@v4
64
+ with:
65
+ name: cibw-wheels-${{ matrix.os }}-${{ strategy.job-index }}
66
+ path: ./wheelhouse/*.whl
@@ -0,0 +1,105 @@
1
+ name: Check
2
+
3
+ on: [push, pull_request]
4
+
5
+ jobs:
6
+ format:
7
+ runs-on: ubuntu-24.04
8
+ steps:
9
+ - uses: actions/checkout@v4
10
+
11
+ - name: Set up
12
+ uses: ./.github/actions/setup
13
+
14
+ - name: Run formatters
15
+ run: |
16
+ set -xe
17
+ docker/docker_interface.py format
18
+ git diff --exit-code
19
+
20
+ flake8:
21
+ runs-on: ubuntu-24.04
22
+ steps:
23
+ - uses: actions/checkout@v4
24
+
25
+ - name: Set up
26
+ uses: ./.github/actions/setup
27
+
28
+ - name: Run flake8
29
+ run: docker/docker_interface.py flake8
30
+
31
+ copyright-year:
32
+ runs-on: ubuntu-24.04
33
+ steps:
34
+ - uses: actions/checkout@v4
35
+
36
+ - name: Check copyright year
37
+ run: (! grep --color -i "copyright.*$(( $(date +%Y) - 1 ))" $(git ls-files))
38
+
39
+ documentation:
40
+ runs-on: ubuntu-24.04
41
+ env:
42
+ BUILD_DIR: docker/build/ubuntu_noble
43
+ steps:
44
+ - uses: actions/checkout@v4
45
+
46
+ - name: Set up
47
+ uses: ./.github/actions/setup
48
+
49
+ - name: Build documentation
50
+ run: |
51
+ set -xe;
52
+ docker/docker_interface.py check_documentation
53
+ docker/docker_interface.py setup
54
+ docker/docker_interface.py debug ubuntu-noble "ninja -C $BUILD_DIR docs"
55
+ docker/docker_interface.py debug ubuntu-noble "linkchecker -r 3 $BUILD_DIR/docs/index.html"
56
+
57
+ - name: Archive Docs
58
+ uses: actions/upload-artifact@v4
59
+ with:
60
+ name: archived-docs
61
+ path: ${{ env.BUILD_DIR }}/docs
62
+
63
+ external-link:
64
+ runs-on: ubuntu-24.04
65
+ needs: documentation
66
+ env:
67
+ BUILD_DIR: docker/build/ubuntu_noble
68
+ steps:
69
+ - uses: actions/checkout@v4
70
+
71
+ - name: Set up
72
+ uses: ./.github/actions/setup
73
+
74
+ - name: Download documentation artifacts
75
+ uses: actions/download-artifact@v4
76
+ with:
77
+ name: archived-docs
78
+ path: ${{ env.BUILD_DIR }}/docs
79
+
80
+ - name: Check external links
81
+ run: |
82
+ set -xe;
83
+ docker/docker_interface.py debug ubuntu-noble "\
84
+ linkchecker $BUILD_DIR/docs/index.html --check-extern -r 3 \
85
+ --ignore-url=RobotoSlab \
86
+ --ignore-url=py-modindex \
87
+ --ignore-url=sphinx-doc \
88
+ --ignore-url=http://schema.org/Article \
89
+ --ignore-url=https://about.readthedocs.com?ref=readthedocs.org \
90
+ --ignore-url=https://readthedocs.org"
91
+
92
+ naming-rules:
93
+ runs-on: ubuntu-24.04
94
+ steps:
95
+ - uses: actions/checkout@v4
96
+
97
+ - name: Set up
98
+ uses: ./.github/actions/setup
99
+
100
+ - name: Check Naming
101
+ run: |
102
+ set -xe;
103
+ docker/docker_interface.py setup ubuntu-noble
104
+ docker/docker_interface.py debug ubuntu-noble "meson subprojects download"
105
+ docker/docker_interface.py debug ubuntu-noble "./util/check_naming.py"
@@ -0,0 +1,37 @@
1
+ name: deploy_docs
2
+
3
+ on:
4
+ push:
5
+ branches: [ "main" ]
6
+
7
+ permissions:
8
+ contents: read
9
+ pages: write
10
+ id-token: write
11
+ packages: write
12
+
13
+ jobs:
14
+ docs:
15
+ environment:
16
+ name: github-pages
17
+ url: ${{ steps.deployment.outputs.page_url }}
18
+ runs-on: ubuntu-24.04
19
+ steps:
20
+ - uses: actions/checkout@v4
21
+
22
+ - name: Set up
23
+ uses: ./.github/actions/setup
24
+
25
+ - name: Build documentation
26
+ run: |
27
+ set -xe;
28
+ docker/docker_interface.py setup
29
+ docker/docker_interface.py debug ubuntu-noble "ninja -C docker/build/ubuntu_noble docs"
30
+
31
+ - name: Upload artifact
32
+ uses: actions/upload-pages-artifact@v3
33
+ with:
34
+ path: docker/build/ubuntu_noble/docs
35
+ - name: Deploy to GitHub Pages
36
+ id: deployment
37
+ uses: actions/deploy-pages@v4
@@ -0,0 +1,141 @@
1
+ name: Test
2
+
3
+ on: [push, pull_request]
4
+
5
+ jobs:
6
+ linux:
7
+ name: ${{ matrix.platform }}
8
+ runs-on: ubuntu-24.04
9
+ strategy:
10
+ fail-fast: false
11
+ matrix:
12
+ platform: [ubuntu-noble, ubuntu-noble-debug, cross-armv7, fedora-gcc, fedora-clang, ubuntu-jammy]
13
+ include:
14
+ - platform: ubuntu-noble
15
+ dockerfile: Dockerfile.ubuntu
16
+ tag: ubuntu-noble
17
+ - platform: ubuntu-noble-debug
18
+ dockerfile: Dockerfile.ubuntu
19
+ tag: ubuntu-noble
20
+ - platform: ubuntu-jammy
21
+ dockerfile: Dockerfile.ubuntu
22
+ tag: ubuntu-jammy
23
+ - platform: cross-armv7
24
+ dockerfile: Dockerfile.ubuntu-cross
25
+ tag: ubuntu-cross
26
+ - platform: fedora-gcc
27
+ dockerfile: Dockerfile.fedora
28
+ tag: fedora
29
+ - platform: fedora-clang
30
+ dockerfile: Dockerfile.fedora
31
+ tag: fedora
32
+
33
+ steps:
34
+ - uses: actions/checkout@v4
35
+
36
+ # GitHub runners don't come with enough free space to build NavToolkit. Delete some stuff
37
+ # we don't need.
38
+ - name: Free up space
39
+ run: sudo rm -rf /usr/share/dotnet /usr/local/lib/android /opt/ghc /opt/hostedtoolcache/CodeQL
40
+
41
+ - name: Set up
42
+ uses: ./.github/actions/setup
43
+ with:
44
+ platform: ${{ matrix.platform }}
45
+ dockerfile: ${{ matrix.dockerfile }}
46
+ tag: ${{ matrix.tag }}
47
+
48
+ - name: Restore ccache cache before building
49
+ uses: actions/cache/restore@v4
50
+ with:
51
+ path: ~/.ccache
52
+ key: ccache--${{ matrix.platform }}--${{ github.run_id }}
53
+ restore-keys: ccache--${{ matrix.platform }}--
54
+
55
+ - name: Build
56
+ run: docker/docker_interface.py build ${{ matrix.platform }}
57
+
58
+ - name: Save ccache cache
59
+ uses: actions/cache/save@v4
60
+ with:
61
+ path: ~/.ccache
62
+ key: ccache--${{ matrix.platform }}--${{ github.run_id }}
63
+
64
+ - name: Test
65
+ run: docker/docker_interface.py test ${{ matrix.platform }}
66
+
67
+ arm64:
68
+ name: cross-arm64
69
+ runs-on: ubuntu-24.04-arm
70
+ steps:
71
+ - uses: actions/checkout@v4
72
+
73
+ # GitHub runners don't come with enough free space to build NavToolkit. Delete some stuff
74
+ # we don't need.
75
+ - name: Free up space
76
+ run: sudo rm -rf /usr/share/dotnet /usr/local/lib/android /opt/ghc /opt/hostedtoolcache/CodeQL
77
+
78
+ - name: Set up
79
+ uses: ./.github/actions/setup
80
+ with:
81
+ platform: ubuntu-noble
82
+ dockerfile: Dockerfile.ubuntu
83
+ tag: ubuntu-noble-arm64
84
+
85
+ - name: Restore ccache cache before building
86
+ uses: actions/cache/restore@v4
87
+ with:
88
+ path: ~/.ccache
89
+ key: ccache--arm64-ubuntu-noble--${{ github.run_id }}
90
+ restore-keys: ccache--arm64-ubuntu-noble--
91
+
92
+ - name: Build
93
+ run: docker/docker_interface.py build ubuntu-noble
94
+
95
+ - name: Save ccache cache
96
+ uses: actions/cache/save@v4
97
+ with:
98
+ path: ~/.ccache
99
+ key: ccache--arm64-ubuntu-noble--${{ github.run_id }}
100
+
101
+ - name: Test
102
+ run: docker/docker_interface.py test ubuntu-noble
103
+
104
+ macos:
105
+ runs-on: macos-15
106
+ steps:
107
+ - uses: actions/checkout@v4
108
+
109
+ - name: Install dependencies
110
+ run: brew install ccache gdal
111
+
112
+ - name: Set up ccache
113
+ run: |
114
+ set -xe
115
+ mkdir -p /Users/runner/.ccache
116
+ ccache --set-config=cache_dir=/Users/runner/.ccache
117
+
118
+ - name: Restore ccache cache before building
119
+ uses: actions/cache/restore@v4
120
+ with:
121
+ path: /Users/runner/.ccache
122
+ key: ccache--macos--${{ github.run_id }}
123
+ restore-keys: ccache--macos--
124
+
125
+ - name: Set up and build
126
+ run: |
127
+ set -xe
128
+ python3 -m venv .venv --system-site-packages
129
+ source .venv/bin/activate
130
+ pip install -r docker/requirements.txt
131
+ meson setup build -Db_lundef=false --warnlevel 3 -Dwerror=true -Dbuildtype=release
132
+ ninja -C build
133
+
134
+ - name: Save ccache cache
135
+ uses: actions/cache/save@v4
136
+ with:
137
+ path: /Users/runner/.ccache
138
+ key: ccache--macos--${{ github.run_id }}
139
+
140
+ - name: Test
141
+ run: ninja -C build test
@@ -0,0 +1,36 @@
1
+ # NOTE: Avoid using the ** syntax in this file where at all possible. Some
2
+ # tools which parse your .gitignore file (such as `ag`) don't support it.
3
+
4
+ # OSX-specific things
5
+ .DS_Store
6
+
7
+ # Windows-specific things
8
+ Thumbs.db
9
+
10
+ # Ignore temporary files
11
+ *~
12
+ *.autosave
13
+ *.swp
14
+
15
+ # Ignore meson artifacts
16
+ /build*/
17
+ /subprojects/*/
18
+ !subprojects/packagefiles
19
+ docker/build/
20
+
21
+ # Symbolic link to build directory
22
+ build
23
+
24
+ # Ignore documentation generation files
25
+ docs/api-exhale
26
+ docs/doxygen_output
27
+
28
+ # Local Python virtual environment
29
+ .venv/
30
+
31
+ # Miscellaneous
32
+ .vscode
33
+ __pycache__
34
+ .idea
35
+ util/asan_tests/bin
36
+ .cache
@@ -0,0 +1,2 @@
1
+ command script import extra/lldbinit.py
2
+ settings set target.load-cwd-lldbinit true
File without changes