octomap-python 1.8.0.post12__tar.gz → 1.8.0.13__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 (280) hide show
  1. octomap_python-1.8.0.13/.github/workflows/ci.yml +37 -0
  2. octomap_python-1.8.0.13/.github/workflows/publish.yml +26 -0
  3. octomap_python-1.8.0.13/.github/workflows/wheels.yml +82 -0
  4. octomap_python-1.8.0.13/.gitignore +8 -0
  5. octomap_python-1.8.0.13/.python-version +1 -0
  6. octomap_python-1.8.0.13/AGENTS.md +13 -0
  7. octomap_python-1.8.0.13/CHANGELOG.md +109 -0
  8. octomap_python-1.8.0.13/CLAUDE.md +1 -0
  9. octomap_python-1.8.0.13/CMakeLists.txt +90 -0
  10. octomap_python-1.8.0.13/LICENSE +29 -0
  11. octomap_python-1.8.0.13/PKG-INFO +119 -0
  12. octomap_python-1.8.0.13/README.md +101 -0
  13. octomap_python-1.8.0.13/docs/agents/domain.md +51 -0
  14. octomap_python-1.8.0.13/docs/agents/issue-tracker.md +22 -0
  15. octomap_python-1.8.0.13/docs/agents/triage-labels.md +15 -0
  16. octomap_python-1.8.0.13/examples/.readme/insertPointCloud.jpg +0 -0
  17. octomap_python-1.8.0.13/examples/getLabels.py +68 -0
  18. octomap_python-1.8.0.13/examples/insertPointCloud.py +141 -0
  19. {octomap-python-1.8.0.post12 → octomap_python-1.8.0.13}/octomap/dynamicEDT3D_defs.pxd +4 -0
  20. {octomap-python-1.8.0.post12 → octomap_python-1.8.0.13}/octomap/octomap.pyx +57 -23
  21. octomap_python-1.8.0.13/pyproject.toml +84 -0
  22. octomap_python-1.8.0.13/tests/octomap_test.py +300 -0
  23. octomap_python-1.8.0.13/tests/test.bt +0 -0
  24. octomap_python-1.8.0.13/uv.lock +2968 -0
  25. octomap-python-1.8.0.post12/PKG-INFO +0 -52
  26. octomap-python-1.8.0.post12/README.md +0 -33
  27. octomap-python-1.8.0.post12/setup.cfg +0 -2
  28. octomap-python-1.8.0.post12/setup.py +0 -109
  29. octomap-python-1.8.0.post12/src/octomap/.git +0 -1
  30. octomap-python-1.8.0.post12/src/octomap/.gitignore +0 -29
  31. octomap-python-1.8.0.post12/src/octomap/.travis.yml +0 -12
  32. octomap-python-1.8.0.post12/src/octomap/CMakeLists.txt +0 -19
  33. octomap-python-1.8.0.post12/src/octomap/README.md +0 -61
  34. octomap-python-1.8.0.post12/src/octomap/dynamicEDT3D/CHANGELOG.txt +0 -10
  35. octomap-python-1.8.0.post12/src/octomap/dynamicEDT3D/CMakeLists.txt +0 -148
  36. octomap-python-1.8.0.post12/src/octomap/dynamicEDT3D/CMakeModules/CMakeUninstall.cmake.in +0 -22
  37. octomap-python-1.8.0.post12/src/octomap/dynamicEDT3D/CMakeModules/CPackSettings.cmake +0 -16
  38. octomap-python-1.8.0.post12/src/octomap/dynamicEDT3D/CMakeModules/CompilerSettings.cmake +0 -40
  39. octomap-python-1.8.0.post12/src/octomap/dynamicEDT3D/CMakeModules/InstallPkgConfigFile.cmake +0 -78
  40. octomap-python-1.8.0.post12/src/octomap/dynamicEDT3D/LICENSE.txt +0 -32
  41. octomap-python-1.8.0.post12/src/octomap/dynamicEDT3D/README.txt +0 -0
  42. octomap-python-1.8.0.post12/src/octomap/dynamicEDT3D/doxygen.h +0 -47
  43. octomap-python-1.8.0.post12/src/octomap/dynamicEDT3D/dynamicEDT3D.dox +0 -1270
  44. octomap-python-1.8.0.post12/src/octomap/dynamicEDT3D/dynamicEDT3DConfig-version.cmake.in +0 -11
  45. octomap-python-1.8.0.post12/src/octomap/dynamicEDT3D/dynamicEDT3DConfig.cmake.in +0 -23
  46. octomap-python-1.8.0.post12/src/octomap/dynamicEDT3D/include/dynamicEDT3D/bucketedqueue.h +0 -90
  47. octomap-python-1.8.0.post12/src/octomap/dynamicEDT3D/include/dynamicEDT3D/bucketedqueue.hxx +0 -75
  48. octomap-python-1.8.0.post12/src/octomap/dynamicEDT3D/include/dynamicEDT3D/dynamicEDT3D.h +0 -151
  49. octomap-python-1.8.0.post12/src/octomap/dynamicEDT3D/include/dynamicEDT3D/dynamicEDTOctomap.h +0 -123
  50. octomap-python-1.8.0.post12/src/octomap/dynamicEDT3D/include/dynamicEDT3D/point.h +0 -61
  51. octomap-python-1.8.0.post12/src/octomap/dynamicEDT3D/package.xml +0 -25
  52. octomap-python-1.8.0.post12/src/octomap/dynamicEDT3D/src/CMakeLists.txt +0 -30
  53. octomap-python-1.8.0.post12/src/octomap/dynamicEDT3D/src/dynamicEDT3D.cpp +0 -591
  54. octomap-python-1.8.0.post12/src/octomap/dynamicEDT3D/src/dynamicEDTOctomap.cpp +0 -329
  55. octomap-python-1.8.0.post12/src/octomap/dynamicEDT3D/src/examples/CMakeLists.txt +0 -5
  56. octomap-python-1.8.0.post12/src/octomap/dynamicEDT3D/src/examples/exampleEDT3D.cpp +0 -135
  57. octomap-python-1.8.0.post12/src/octomap/dynamicEDT3D/src/examples/exampleEDTOctomap.cpp +0 -101
  58. octomap-python-1.8.0.post12/src/octomap/increase_version.py +0 -113
  59. octomap-python-1.8.0.post12/src/octomap/octomap/AUTHORS.txt +0 -15
  60. octomap-python-1.8.0.post12/src/octomap/octomap/CHANGELOG.txt +0 -249
  61. octomap-python-1.8.0.post12/src/octomap/octomap/CMakeLists.txt +0 -152
  62. octomap-python-1.8.0.post12/src/octomap/octomap/CMakeModules/CMakeUninstall.cmake.in +0 -25
  63. octomap-python-1.8.0.post12/src/octomap/octomap/CMakeModules/CPackSettings.cmake +0 -16
  64. octomap-python-1.8.0.post12/src/octomap/octomap/CMakeModules/CompilerSettings.cmake +0 -29
  65. octomap-python-1.8.0.post12/src/octomap/octomap/CMakeModules/InstallPkgConfigFile.cmake +0 -78
  66. octomap-python-1.8.0.post12/src/octomap/octomap/LICENSE.txt +0 -31
  67. octomap-python-1.8.0.post12/src/octomap/octomap/README.md +0 -168
  68. octomap-python-1.8.0.post12/src/octomap/octomap/doxygen.h +0 -112
  69. octomap-python-1.8.0.post12/src/octomap/octomap/extern/README_BINVOX +0 -5
  70. octomap-python-1.8.0.post12/src/octomap/octomap/include/octomap/AbstractOcTree.h +0 -164
  71. octomap-python-1.8.0.post12/src/octomap/octomap/include/octomap/AbstractOccupancyOcTree.h +0 -241
  72. octomap-python-1.8.0.post12/src/octomap/octomap/include/octomap/ColorOcTree.h +0 -207
  73. octomap-python-1.8.0.post12/src/octomap/octomap/include/octomap/CountingOcTree.h +0 -123
  74. octomap-python-1.8.0.post12/src/octomap/octomap/include/octomap/MCTables.h +0 -355
  75. octomap-python-1.8.0.post12/src/octomap/octomap/include/octomap/MapCollection.h +0 -103
  76. octomap-python-1.8.0.post12/src/octomap/octomap/include/octomap/MapCollection.hxx +0 -330
  77. octomap-python-1.8.0.post12/src/octomap/octomap/include/octomap/MapNode.h +0 -82
  78. octomap-python-1.8.0.post12/src/octomap/octomap/include/octomap/MapNode.hxx +0 -101
  79. octomap-python-1.8.0.post12/src/octomap/octomap/include/octomap/OcTree.h +0 -101
  80. octomap-python-1.8.0.post12/src/octomap/octomap/include/octomap/OcTreeBase.h +0 -57
  81. octomap-python-1.8.0.post12/src/octomap/octomap/include/octomap/OcTreeBaseImpl.h +0 -574
  82. octomap-python-1.8.0.post12/src/octomap/octomap/include/octomap/OcTreeBaseImpl.hxx +0 -1115
  83. octomap-python-1.8.0.post12/src/octomap/octomap/include/octomap/OcTreeDataNode.h +0 -137
  84. octomap-python-1.8.0.post12/src/octomap/octomap/include/octomap/OcTreeDataNode.hxx +0 -140
  85. octomap-python-1.8.0.post12/src/octomap/octomap/include/octomap/OcTreeIterator.hxx +0 -463
  86. octomap-python-1.8.0.post12/src/octomap/octomap/include/octomap/OcTreeKey.h +0 -242
  87. octomap-python-1.8.0.post12/src/octomap/octomap/include/octomap/OcTreeNode.h +0 -97
  88. octomap-python-1.8.0.post12/src/octomap/octomap/include/octomap/OcTreeStamped.h +0 -128
  89. octomap-python-1.8.0.post12/src/octomap/octomap/include/octomap/OccupancyOcTreeBase.h +0 -508
  90. octomap-python-1.8.0.post12/src/octomap/octomap/include/octomap/OccupancyOcTreeBase.hxx +0 -1128
  91. octomap-python-1.8.0.post12/src/octomap/octomap/include/octomap/Pointcloud.h +0 -126
  92. octomap-python-1.8.0.post12/src/octomap/octomap/include/octomap/ScanGraph.h +0 -231
  93. octomap-python-1.8.0.post12/src/octomap/octomap/include/octomap/math/Pose6D.h +0 -204
  94. octomap-python-1.8.0.post12/src/octomap/octomap/include/octomap/math/Quaternion.h +0 -203
  95. octomap-python-1.8.0.post12/src/octomap/octomap/include/octomap/math/Utils.h +0 -56
  96. octomap-python-1.8.0.post12/src/octomap/octomap/include/octomap/math/Vector3.h +0 -326
  97. octomap-python-1.8.0.post12/src/octomap/octomap/include/octomap/octomap.h +0 -38
  98. octomap-python-1.8.0.post12/src/octomap/octomap/include/octomap/octomap_deprecated.h +0 -49
  99. octomap-python-1.8.0.post12/src/octomap/octomap/include/octomap/octomap_timing.h +0 -54
  100. octomap-python-1.8.0.post12/src/octomap/octomap/include/octomap/octomap_types.h +0 -80
  101. octomap-python-1.8.0.post12/src/octomap/octomap/include/octomap/octomap_utils.h +0 -55
  102. octomap-python-1.8.0.post12/src/octomap/octomap/octomap-config-version.cmake.in +0 -11
  103. octomap-python-1.8.0.post12/src/octomap/octomap/octomap-config.cmake.in +0 -34
  104. octomap-python-1.8.0.post12/src/octomap/octomap/octomap.dox.in +0 -1788
  105. octomap-python-1.8.0.post12/src/octomap/octomap/package.xml +0 -22
  106. octomap-python-1.8.0.post12/src/octomap/octomap/share/data/geb079.bt +0 -0
  107. octomap-python-1.8.0.post12/src/octomap/octomap/share/data/mapcoll.txt +0 -15
  108. octomap-python-1.8.0.post12/src/octomap/octomap/share/data/scan.dat.bz2 +0 -0
  109. octomap-python-1.8.0.post12/src/octomap/octomap/share/example-project.tgz +0 -0
  110. octomap-python-1.8.0.post12/src/octomap/octomap/share/images/uml_overview.png +0 -0
  111. octomap-python-1.8.0.post12/src/octomap/octomap/src/AbstractOcTree.cpp +0 -211
  112. octomap-python-1.8.0.post12/src/octomap/octomap/src/AbstractOccupancyOcTree.cpp +0 -181
  113. octomap-python-1.8.0.post12/src/octomap/octomap/src/CMakeLists.txt +0 -75
  114. octomap-python-1.8.0.post12/src/octomap/octomap/src/ColorOcTree.cpp +0 -261
  115. octomap-python-1.8.0.post12/src/octomap/octomap/src/CountingOcTree.cpp +0 -128
  116. octomap-python-1.8.0.post12/src/octomap/octomap/src/OcTree.cpp +0 -54
  117. octomap-python-1.8.0.post12/src/octomap/octomap/src/OcTreeNode.cpp +0 -97
  118. octomap-python-1.8.0.post12/src/octomap/octomap/src/OcTreeStamped.cpp +0 -73
  119. octomap-python-1.8.0.post12/src/octomap/octomap/src/Pointcloud.cpp +0 -325
  120. octomap-python-1.8.0.post12/src/octomap/octomap/src/ScanGraph.cpp +0 -621
  121. octomap-python-1.8.0.post12/src/octomap/octomap/src/binvox2bt.cpp +0 -310
  122. octomap-python-1.8.0.post12/src/octomap/octomap/src/bt2vrml.cpp +0 -102
  123. octomap-python-1.8.0.post12/src/octomap/octomap/src/compare_octrees.cpp +0 -158
  124. octomap-python-1.8.0.post12/src/octomap/octomap/src/convert_octree.cpp +0 -148
  125. octomap-python-1.8.0.post12/src/octomap/octomap/src/edit_octree.cpp +0 -225
  126. octomap-python-1.8.0.post12/src/octomap/octomap/src/eval_octree_accuracy.cpp +0 -196
  127. octomap-python-1.8.0.post12/src/octomap/octomap/src/graph2tree.cpp +0 -308
  128. octomap-python-1.8.0.post12/src/octomap/octomap/src/intersection_example.cpp +0 -92
  129. octomap-python-1.8.0.post12/src/octomap/octomap/src/log2graph.cpp +0 -78
  130. octomap-python-1.8.0.post12/src/octomap/octomap/src/math/CMakeLists.txt +0 -21
  131. octomap-python-1.8.0.post12/src/octomap/octomap/src/math/Pose6D.cpp +0 -153
  132. octomap-python-1.8.0.post12/src/octomap/octomap/src/math/Quaternion.cpp +0 -309
  133. octomap-python-1.8.0.post12/src/octomap/octomap/src/math/Vector3.cpp +0 -116
  134. octomap-python-1.8.0.post12/src/octomap/octomap/src/normals_example.cpp +0 -112
  135. octomap-python-1.8.0.post12/src/octomap/octomap/src/octree2pointcloud.cpp +0 -114
  136. octomap-python-1.8.0.post12/src/octomap/octomap/src/offset_graph.cpp +0 -64
  137. octomap-python-1.8.0.post12/src/octomap/octomap/src/simple_example.cpp +0 -101
  138. octomap-python-1.8.0.post12/src/octomap/octomap/src/testing/CMakeLists.txt +0 -47
  139. octomap-python-1.8.0.post12/src/octomap/octomap/src/testing/color_tree_histogram.cpp +0 -26
  140. octomap-python-1.8.0.post12/src/octomap/octomap/src/testing/test_changedkeys.cpp +0 -94
  141. octomap-python-1.8.0.post12/src/octomap/octomap/src/testing/test_color_tree.cpp +0 -194
  142. octomap-python-1.8.0.post12/src/octomap/octomap/src/testing/test_io.cpp +0 -182
  143. octomap-python-1.8.0.post12/src/octomap/octomap/src/testing/test_iterators.cpp +0 -434
  144. octomap-python-1.8.0.post12/src/octomap/octomap/src/testing/test_mapcollection.cpp +0 -141
  145. octomap-python-1.8.0.post12/src/octomap/octomap/src/testing/test_pruning.cpp +0 -241
  146. octomap-python-1.8.0.post12/src/octomap/octomap/src/testing/test_raycasting.cpp +0 -195
  147. octomap-python-1.8.0.post12/src/octomap/octomap/src/testing/test_scans.cpp +0 -42
  148. octomap-python-1.8.0.post12/src/octomap/octomap/src/testing/testing.h +0 -31
  149. octomap-python-1.8.0.post12/src/octomap/octomap/src/testing/unit_tests.cpp +0 -211
  150. octomap-python-1.8.0.post12/src/octomap/octomap/valgrind_memcheck.supp +0 -184
  151. octomap-python-1.8.0.post12/src/octomap/octovis/CMakeLists.txt +0 -136
  152. octomap-python-1.8.0.post12/src/octomap/octovis/CMakeLists_src.txt +0 -126
  153. octomap-python-1.8.0.post12/src/octomap/octovis/CMakeModules/CMakeUninstall.cmake.in +0 -22
  154. octomap-python-1.8.0.post12/src/octomap/octovis/CMakeModules/CompilerSettings.cmake +0 -40
  155. octomap-python-1.8.0.post12/src/octomap/octovis/CMakeModules/FindQGLViewer.cmake +0 -122
  156. octomap-python-1.8.0.post12/src/octomap/octovis/LICENSE.txt +0 -294
  157. octomap-python-1.8.0.post12/src/octomap/octovis/README.md +0 -121
  158. octomap-python-1.8.0.post12/src/octomap/octovis/include/octovis/CameraFollowMode.h +0 -79
  159. octomap-python-1.8.0.post12/src/octomap/octovis/include/octovis/ColorOcTreeDrawer.h +0 -48
  160. octomap-python-1.8.0.post12/src/octomap/octovis/include/octovis/OcTreeDrawer.h +0 -160
  161. octomap-python-1.8.0.post12/src/octomap/octovis/include/octovis/OcTreeRecord.h +0 -42
  162. octomap-python-1.8.0.post12/src/octomap/octovis/include/octovis/PointcloudDrawer.h +0 -53
  163. octomap-python-1.8.0.post12/src/octomap/octovis/include/octovis/SceneObject.h +0 -113
  164. octomap-python-1.8.0.post12/src/octomap/octovis/include/octovis/SelectionBox.h +0 -62
  165. octomap-python-1.8.0.post12/src/octomap/octovis/include/octovis/TrajectoryDrawer.h +0 -50
  166. octomap-python-1.8.0.post12/src/octomap/octovis/include/octovis/ViewerGui.h +0 -220
  167. octomap-python-1.8.0.post12/src/octomap/octovis/include/octovis/ViewerGui.ui +0 -549
  168. octomap-python-1.8.0.post12/src/octomap/octovis/include/octovis/ViewerSettings.h +0 -49
  169. octomap-python-1.8.0.post12/src/octomap/octovis/include/octovis/ViewerSettings.ui +0 -139
  170. octomap-python-1.8.0.post12/src/octomap/octovis/include/octovis/ViewerSettingsPanel.h +0 -70
  171. octomap-python-1.8.0.post12/src/octomap/octovis/include/octovis/ViewerSettingsPanel.ui +0 -277
  172. octomap-python-1.8.0.post12/src/octomap/octovis/include/octovis/ViewerSettingsPanelCamera.h +0 -84
  173. octomap-python-1.8.0.post12/src/octomap/octovis/include/octovis/ViewerSettingsPanelCamera.ui +0 -362
  174. octomap-python-1.8.0.post12/src/octomap/octovis/include/octovis/ViewerWidget.h +0 -124
  175. octomap-python-1.8.0.post12/src/octomap/octovis/octovis-config-version.cmake.in +0 -11
  176. octomap-python-1.8.0.post12/src/octomap/octovis/octovis-config.cmake.in +0 -17
  177. octomap-python-1.8.0.post12/src/octomap/octovis/package.xml +0 -33
  178. octomap-python-1.8.0.post12/src/octomap/octovis/src/CameraFollowMode.cpp +0 -141
  179. octomap-python-1.8.0.post12/src/octomap/octovis/src/ColorOcTreeDrawer.cpp +0 -138
  180. octomap-python-1.8.0.post12/src/octomap/octovis/src/OcTreeDrawer.cpp +0 -894
  181. octomap-python-1.8.0.post12/src/octomap/octovis/src/PointcloudDrawer.cpp +0 -105
  182. octomap-python-1.8.0.post12/src/octomap/octovis/src/SceneObject.cpp +0 -105
  183. octomap-python-1.8.0.post12/src/octomap/octovis/src/SelectionBox.cpp +0 -278
  184. octomap-python-1.8.0.post12/src/octomap/octovis/src/TrajectoryDrawer.cpp +0 -108
  185. octomap-python-1.8.0.post12/src/octomap/octovis/src/ViewerGui.cpp +0 -1218
  186. octomap-python-1.8.0.post12/src/octomap/octovis/src/ViewerSettings.cpp +0 -36
  187. octomap-python-1.8.0.post12/src/octomap/octovis/src/ViewerSettingsPanel.cpp +0 -123
  188. octomap-python-1.8.0.post12/src/octomap/octovis/src/ViewerSettingsPanelCamera.cpp +0 -213
  189. octomap-python-1.8.0.post12/src/octomap/octovis/src/ViewerWidget.cpp +0 -400
  190. octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/.gitignore +0 -8
  191. octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/CHANGELOG +0 -6
  192. octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/GPL_EXCEPTION +0 -80
  193. octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/INSTALL +0 -20
  194. octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/ImageInterface.ui +0 -297
  195. octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/LICENCE +0 -1040
  196. octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/QGLViewer.pro +0 -279
  197. octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/README +0 -41
  198. octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/VRender/AxisAlignedBox.h +0 -101
  199. octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/VRender/BSPSortMethod.cpp +0 -644
  200. octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/VRender/BackFaceCullingOptimizer.cpp +0 -85
  201. octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/VRender/EPSExporter.cpp +0 -317
  202. octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/VRender/Exporter.cpp +0 -108
  203. octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/VRender/Exporter.h +0 -165
  204. octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/VRender/FIGExporter.cpp +0 -225
  205. octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/VRender/NVector3.cpp +0 -196
  206. octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/VRender/NVector3.h +0 -120
  207. octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/VRender/Optimizer.h +0 -91
  208. octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/VRender/ParserGL.cpp +0 -481
  209. octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/VRender/ParserGL.h +0 -88
  210. octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/VRender/Primitive.cpp +0 -171
  211. octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/VRender/Primitive.h +0 -219
  212. octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/VRender/PrimitivePositioning.cpp +0 -671
  213. octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/VRender/PrimitivePositioning.h +0 -102
  214. octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/VRender/SortMethod.h +0 -102
  215. octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/VRender/TopologicalSortMethod.cpp +0 -688
  216. octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/VRender/Types.h +0 -74
  217. octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/VRender/VRender.cpp +0 -276
  218. octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/VRender/VRender.h +0 -118
  219. octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/VRender/Vector2.cpp +0 -147
  220. octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/VRender/Vector2.h +0 -181
  221. octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/VRender/Vector3.cpp +0 -170
  222. octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/VRender/Vector3.h +0 -195
  223. octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/VRender/VisibilityOptimizer.cpp +0 -275
  224. octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/VRender/gpc.cpp +0 -2544
  225. octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/VRender/gpc.h +0 -179
  226. octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/VRenderInterface.ui +0 -217
  227. octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/camera.cpp +0 -2209
  228. octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/camera.h +0 -512
  229. octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/config.h +0 -104
  230. octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/constraint.cpp +0 -291
  231. octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/constraint.h +0 -338
  232. octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/domUtils.h +0 -161
  233. octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/frame.cpp +0 -1144
  234. octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/frame.h +0 -415
  235. octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/keyFrameInterpolator.cpp +0 -714
  236. octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/keyFrameInterpolator.h +0 -357
  237. octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/manipulatedCameraFrame.cpp +0 -469
  238. octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/manipulatedCameraFrame.h +0 -233
  239. octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/manipulatedFrame.cpp +0 -550
  240. octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/manipulatedFrame.h +0 -335
  241. octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/mouseGrabber.cpp +0 -76
  242. octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/mouseGrabber.h +0 -264
  243. octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/qglviewer-icon.xpm +0 -359
  244. octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/qglviewer.cpp +0 -3847
  245. octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/qglviewer.h +0 -1298
  246. octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/qglviewer.icns +0 -0
  247. octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/qglviewer_fr.qm +0 -0
  248. octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/qglviewer_fr.ts +0 -608
  249. octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/quaternion.cpp +0 -552
  250. octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/quaternion.h +0 -311
  251. octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/saveSnapshot.cpp +0 -638
  252. octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/vec.cpp +0 -164
  253. octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/vec.h +0 -390
  254. octomap-python-1.8.0.post12/src/octomap/octovis/src/icons/LICENSE.txt +0 -4
  255. octomap-python-1.8.0.post12/src/octomap/octovis/src/icons/application-exit.png +0 -0
  256. octomap-python-1.8.0.post12/src/octomap/octovis/src/icons/configure.png +0 -0
  257. octomap-python-1.8.0.post12/src/octomap/octovis/src/icons/document-open-folder.png +0 -0
  258. octomap-python-1.8.0.post12/src/octomap/octovis/src/icons/document-open.png +0 -0
  259. octomap-python-1.8.0.post12/src/octomap/octovis/src/icons/document-save-as.png +0 -0
  260. octomap-python-1.8.0.post12/src/octomap/octovis/src/icons/document-save.png +0 -0
  261. octomap-python-1.8.0.post12/src/octomap/octovis/src/icons/edit-clear-list.png +0 -0
  262. octomap-python-1.8.0.post12/src/octomap/octovis/src/icons/edit-undo.png +0 -0
  263. octomap-python-1.8.0.post12/src/octomap/octovis/src/icons/go-bottom.png +0 -0
  264. octomap-python-1.8.0.post12/src/octomap/octovis/src/icons/go-top.png +0 -0
  265. octomap-python-1.8.0.post12/src/octomap/octovis/src/icons/help-contents.png +0 -0
  266. octomap-python-1.8.0.post12/src/octomap/octovis/src/icons/lgpl-3.0.txt +0 -165
  267. octomap-python-1.8.0.post12/src/octomap/octovis/src/icons/list-add.png +0 -0
  268. octomap-python-1.8.0.post12/src/octomap/octovis/src/icons/list-remove.png +0 -0
  269. octomap-python-1.8.0.post12/src/octomap/octovis/src/icons/media-playback-start.png +0 -0
  270. octomap-python-1.8.0.post12/src/octomap/octovis/src/icons/media-seek-backward.png +0 -0
  271. octomap-python-1.8.0.post12/src/octomap/octovis/src/icons/media-seek-forward.png +0 -0
  272. octomap-python-1.8.0.post12/src/octomap/octovis/src/icons/media-skip-backward.png +0 -0
  273. octomap-python-1.8.0.post12/src/octomap/octovis/src/icons/media-skip-forward.png +0 -0
  274. octomap-python-1.8.0.post12/src/octomap/octovis/src/icons/system-restart.png +0 -0
  275. octomap-python-1.8.0.post12/src/octomap/octovis/src/icons/view-preview.png +0 -0
  276. octomap-python-1.8.0.post12/src/octomap/octovis/src/icons/view-refresh.png +0 -0
  277. octomap-python-1.8.0.post12/src/octomap/octovis/src/icons.qrc +0 -25
  278. octomap-python-1.8.0.post12/src/octomap/octovis/src/main.cpp +0 -41
  279. {octomap-python-1.8.0.post12 → octomap_python-1.8.0.13}/octomap/include_and_setting.h +0 -0
  280. {octomap-python-1.8.0.post12 → octomap_python-1.8.0.13}/octomap/octomap_defs.pxd +0 -0
@@ -0,0 +1,37 @@
1
+ name: ci
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ pull_request:
8
+
9
+ jobs:
10
+ build:
11
+
12
+ runs-on: ubuntu-latest
13
+ strategy:
14
+ matrix:
15
+ python-version: ['3.9', '3.14']
16
+
17
+ steps:
18
+ - uses: actions/checkout@v4
19
+ with:
20
+ submodules: true
21
+
22
+ - name: Install uv
23
+ uses: astral-sh/setup-uv@v6
24
+ with:
25
+ python-version: ${{ matrix.python-version }}
26
+
27
+ - name: Install from source
28
+ run: uv sync --locked
29
+
30
+ - name: Ruff lint
31
+ run: uv run ruff check .
32
+
33
+ - name: Ruff format
34
+ run: uv run ruff format --check .
35
+
36
+ - name: Test
37
+ run: uv run pytest
@@ -0,0 +1,26 @@
1
+ name: publish
2
+
3
+ on:
4
+ release:
5
+ types: [published]
6
+
7
+ jobs:
8
+ build:
9
+ uses: ./.github/workflows/wheels.yml
10
+
11
+ publish:
12
+ name: Publish to PyPI
13
+ needs: build
14
+ runs-on: ubuntu-latest
15
+ environment:
16
+ name: pypi
17
+ url: https://pypi.org/p/octomap-python
18
+ permissions:
19
+ id-token: write
20
+ steps:
21
+ - uses: actions/download-artifact@v4
22
+ with:
23
+ path: dist
24
+ merge-multiple: true
25
+
26
+ - uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,82 @@
1
+ name: wheels
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ tags:
8
+ - 'v*'
9
+ pull_request:
10
+ workflow_dispatch:
11
+ workflow_call:
12
+
13
+ jobs:
14
+ build_wheels:
15
+ name: Wheels (${{ matrix.os }} ${{ matrix.archs }})
16
+ runs-on: ${{ matrix.os }}
17
+ strategy:
18
+ fail-fast: false
19
+ matrix:
20
+ include:
21
+ - os: ubuntu-latest
22
+ archs: x86_64
23
+ - os: ubuntu-24.04-arm
24
+ archs: aarch64
25
+ - os: macos-14
26
+ archs: arm64
27
+
28
+ steps:
29
+ - uses: actions/checkout@v4
30
+
31
+ - name: Build wheels
32
+ uses: pypa/cibuildwheel@v4.1.0
33
+ env:
34
+ CIBW_ARCHS: ${{ matrix.archs }}
35
+
36
+ - uses: actions/upload-artifact@v4
37
+ with:
38
+ name: wheels-${{ matrix.os }}-${{ matrix.archs }}
39
+ path: wheelhouse/*.whl
40
+
41
+ build_sdist:
42
+ name: sdist
43
+ runs-on: ubuntu-latest
44
+ steps:
45
+ - uses: actions/checkout@v4
46
+
47
+ - name: Build sdist
48
+ run: pipx run build --sdist
49
+
50
+ - uses: actions/upload-artifact@v4
51
+ with:
52
+ name: sdist
53
+ path: dist/*.tar.gz
54
+
55
+ # Windows ships no wheel; prove the sdist builds from source there.
56
+ test_sdist_windows:
57
+ name: sdist from source (windows)
58
+ needs: build_sdist
59
+ runs-on: windows-latest
60
+ steps:
61
+ - uses: actions/download-artifact@v4
62
+ with:
63
+ name: sdist
64
+ path: dist
65
+
66
+ - uses: actions/setup-python@v5
67
+ with:
68
+ python-version: '3.13'
69
+
70
+ - uses: actions/checkout@v4
71
+ with:
72
+ path: src
73
+
74
+ - name: Install from sdist
75
+ shell: bash
76
+ run: pip install --verbose dist/*.tar.gz
77
+
78
+ - name: Test
79
+ shell: bash
80
+ run: |
81
+ pip install pytest numpy
82
+ pytest src/tests/
@@ -0,0 +1,8 @@
1
+ /_skbuild/
2
+ /.venv/
3
+ /MANIFEST
4
+
5
+ /octomap/octomap.cpp
6
+ /test/test1.bt
7
+
8
+ /*.so
@@ -0,0 +1 @@
1
+ 3.11
@@ -0,0 +1,13 @@
1
+ ## Agent skills
2
+
3
+ ### Issue tracker
4
+
5
+ Issues are tracked in GitHub Issues via the `gh` CLI. See `docs/agents/issue-tracker.md`.
6
+
7
+ ### Triage labels
8
+
9
+ Canonical triage roles map 1:1 to GitHub label strings (`needs-triage`, `needs-info`, `ready-for-agent`, `ready-for-human`, `wontfix`). See `docs/agents/triage-labels.md`.
10
+
11
+ ### Domain docs
12
+
13
+ Single-context layout: one `CONTEXT.md` + `docs/adr/` at the repo root. See `docs/agents/domain.md`.
@@ -0,0 +1,109 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project are documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
6
+ Versions follow [PEP 440](https://peps.python.org/pep-0440/): the first three
7
+ segments track the bundled OctoMap C++ library version (currently 1.8.0), and a
8
+ fourth segment counts binding revisions on that upstream.
9
+
10
+ This history was backfilled from git and PyPI release records. Releases through
11
+ 1.8.0.post12 used a `.postN` suffix and predate git tags, so each is dated by its
12
+ PyPI upload.
13
+
14
+ ## [1.8.0.13] - 2026-06-20
15
+
16
+ The first release in over six years: a full build and tooling modernization plus
17
+ several long-standing binding fixes.
18
+
19
+ ### Added
20
+ - `dynamicEDT_getDistanceAndClosestObstacle` binding for the Euclidean distance transform (#37).
21
+
22
+ ### Fixed
23
+ - `castRay` now fills the `end` coordinate whether or not the ray hits an occupied voxel (#36).
24
+ - OctoMap file paths accept `str`, not only `bytes` (#38).
25
+ - Iterator crash caused by the name-mangled `__is_end` / `__is_acceseable` attributes (#23).
26
+ - Compilation on modern compilers, by pinning the OctoMap build to C++14 (#24).
27
+
28
+ ### Changed
29
+ - Build migrated to scikit-build-core, producing a statically linked extension (#40).
30
+ - OctoMap C++ is fetched and pinned via CMake FetchContent instead of a git submodule (#41).
31
+ - Binary wheels (CPython 3.9-3.13; manylinux x86_64/aarch64, macOS arm64) and an sdist are built with cibuildwheel (#49).
32
+ - PyPI publishing runs on GitHub Release via Trusted Publishing, with no stored API token (#52).
33
+ - Adopted uv for the lockfile, dev dependency group, and install/CI flow (#42).
34
+ - Migrated linting and formatting from black and flake8 to ruff (#46).
35
+ - Test suite converted from unittest to pytest and run from the repository root (#43).
36
+ - README rewritten with a Python quick start; relative image URLs are rewritten at build time via hatch-fancy-pypi-readme, retiring github2pypi (#44, #53).
37
+ - Example dependencies moved from a published extra to a dependency group, with the GUI stack and Python pinned to keep them runnable (#42, #45).
38
+ - CI tests the lower and upper supported Python bounds, 3.9 and 3.14 (#47).
39
+
40
+ ### Removed
41
+ - Python 2 and Python 3.5 support, alongside repository housekeeping and an added LICENSE file (#35).
42
+
43
+ ## [1.8.0.post12] - 2019-07-03
44
+
45
+ ### Removed
46
+ - `bbx_min` and `bbx_max` arguments from `extractPointCloud`.
47
+
48
+ ## [1.8.0.post11] - 2019-07-02
49
+
50
+ ### Fixed
51
+ - Output dimension of `extractPointCloud`.
52
+
53
+ ## [1.8.0.post10] - 2019-06-29
54
+
55
+ ### Added
56
+ - `bbx_min` and `bbx_max` arguments to `extractPointCloud`.
57
+
58
+ ## [1.8.0.post9] - 2019-06-21
59
+
60
+ ### Changed
61
+ - Reverted linking against static libraries.
62
+
63
+ ### Removed
64
+ - Unused `opengl_camera_transform`.
65
+
66
+ ## [1.8.0.post8] - 2019-06-21
67
+
68
+ ### Changed
69
+ - Linked against static libraries.
70
+
71
+ ## [1.8.0.post7] - 2019-06-21
72
+
73
+ ### Fixed
74
+ - Further handling of empty point clouds.
75
+
76
+ ## [1.8.0.post6] - 2019-06-21
77
+
78
+ ### Fixed
79
+ - Zero-sized point cloud handling in `extractPointCloud`.
80
+
81
+ ## [1.8.0.post5] - 2019-06-11
82
+
83
+ ### Changed
84
+ - Maintenance re-release; no functional changes.
85
+
86
+ ## [1.8.0.post4] - 2019-05-08
87
+
88
+ ### Added
89
+ - `README.md` to the source distribution manifest.
90
+
91
+ ## [1.8.0.post3] - 2019-05-08
92
+
93
+ ### Added
94
+ - `extractPointCloud`, plus visualization helpers and example scripts.
95
+
96
+ ### Changed
97
+ - `getMetric*` methods return `numpy.ndarray`.
98
+
99
+ ## [1.8.0.post2] - 2019-04-16
100
+
101
+ ### Changed
102
+ - README and `setup.py` packaging metadata.
103
+
104
+ ## [1.8.0.post1] - 2019-04-16
105
+
106
+ ### Added
107
+ - Initial PyPI release of the OctoMap Python binding (bundling OctoMap 1.8.0):
108
+ OcTree read/write, node and tree iterators, `OcTreeKey`, ray casting, and a
109
+ dynamicEDT3D distance field.
@@ -0,0 +1 @@
1
+ AGENTS.md
@@ -0,0 +1,90 @@
1
+ # find_package(Python ... Development.Module) needs CMake 3.18+.
2
+ cmake_minimum_required(VERSION 3.18)
3
+ project(octomap_python LANGUAGES CXX)
4
+
5
+ # OctoMap targets an older C++ dialect; pin C++14 so its sources compile
6
+ # cleanly (newer default standards make octomap's `byte` typedef clash with
7
+ # std::byte).
8
+ set(CMAKE_CXX_STANDARD 14)
9
+ set(CMAKE_CXX_STANDARD_REQUIRED ON)
10
+
11
+ find_package(
12
+ Python REQUIRED COMPONENTS Interpreter Development.Module NumPy)
13
+
14
+ include(FetchContent)
15
+
16
+ # OctoMap is fetched and pinned to a release tag rather than vendored as a git
17
+ # submodule. Bumping the version is a one-line change to GIT_TAG.
18
+ #
19
+ # Pinned to v1.8.0 to match the package version line (octomap-python 1.8.0.N
20
+ # bundles octomap 1.8.0).
21
+ FetchContent_Declare(
22
+ octomap
23
+ GIT_REPOSITORY https://github.com/OctoMap/octomap.git
24
+ GIT_TAG v1.8.0
25
+ GIT_SHALLOW TRUE
26
+ )
27
+ # Populate the sources only; octomap's own CMake build is intentionally not run.
28
+ # FetchContent_MakeAvailable() would add_subdirectory(octomap), which both
29
+ # defines a CMake target named `octomap` (colliding with python_add_library
30
+ # below) and pulls in octovis/Qt. Source-only population needs the low-level
31
+ # FetchContent_Populate(), which CMake 3.30 deprecated; CMP0169 keeps that path
32
+ # available (the POLICY guard leaves older CMake, which lacks it, untouched).
33
+ if(POLICY CMP0169)
34
+ cmake_policy(SET CMP0169 OLD)
35
+ endif()
36
+ FetchContent_GetProperties(octomap)
37
+ if(NOT octomap_POPULATED)
38
+ FetchContent_Populate(octomap)
39
+ endif()
40
+
41
+ set(octomap_dir "${octomap_SOURCE_DIR}")
42
+ set(octomap_src "${octomap_dir}/octomap/src")
43
+ set(edt_src "${octomap_dir}/dynamicEDT3D/src")
44
+
45
+ # OctoMap, octomath and dynamicEDT3D are compiled straight into the extension
46
+ # so the module is self-contained: no octomap shared libraries to resolve at
47
+ # import time. octovis/Qt are simply never referenced here. The source lists
48
+ # mirror octomap's own CMakeLists for the pinned release.
49
+ set(octomap_sources
50
+ ${octomap_src}/AbstractOcTree.cpp
51
+ ${octomap_src}/AbstractOccupancyOcTree.cpp
52
+ ${octomap_src}/Pointcloud.cpp
53
+ ${octomap_src}/ScanGraph.cpp
54
+ ${octomap_src}/CountingOcTree.cpp
55
+ ${octomap_src}/OcTree.cpp
56
+ ${octomap_src}/OcTreeNode.cpp
57
+ ${octomap_src}/OcTreeStamped.cpp
58
+ ${octomap_src}/ColorOcTree.cpp
59
+ ${octomap_src}/math/Vector3.cpp
60
+ ${octomap_src}/math/Quaternion.cpp
61
+ ${octomap_src}/math/Pose6D.cpp
62
+ ${edt_src}/dynamicEDT3D.cpp
63
+ ${edt_src}/dynamicEDTOctomap.cpp
64
+ )
65
+
66
+ add_custom_command(
67
+ OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/octomap.cpp"
68
+ COMMAND Python::Interpreter -m cython --cplus -3
69
+ "${CMAKE_CURRENT_SOURCE_DIR}/octomap/octomap.pyx"
70
+ -o "${CMAKE_CURRENT_BINARY_DIR}/octomap.cpp"
71
+ DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/octomap/octomap.pyx"
72
+ "${CMAKE_CURRENT_SOURCE_DIR}/octomap/octomap_defs.pxd"
73
+ "${CMAKE_CURRENT_SOURCE_DIR}/octomap/dynamicEDT3D_defs.pxd"
74
+ COMMENT "Cythonizing octomap.pyx"
75
+ VERBATIM
76
+ )
77
+
78
+ python_add_library(octomap MODULE
79
+ "${CMAKE_CURRENT_BINARY_DIR}/octomap.cpp"
80
+ ${octomap_sources}
81
+ WITH_SOABI
82
+ )
83
+ target_include_directories(octomap PRIVATE
84
+ ${CMAKE_CURRENT_SOURCE_DIR}/octomap
85
+ ${octomap_dir}/octomap/include
86
+ ${octomap_dir}/dynamicEDT3D/include
87
+ )
88
+ target_link_libraries(octomap PRIVATE Python::NumPy)
89
+
90
+ install(TARGETS octomap DESTINATION .)
@@ -0,0 +1,29 @@
1
+ BSD 3-Clause License
2
+
3
+ Copyright (c) 2013-2026, Kentaro Wada
4
+ All rights reserved.
5
+
6
+ Redistribution and use in source and binary forms, with or without
7
+ modification, are permitted provided that the following conditions are met:
8
+
9
+ 1. Redistributions of source code must retain the above copyright notice, this
10
+ list of conditions and the following disclaimer.
11
+
12
+ 2. Redistributions in binary form must reproduce the above copyright notice,
13
+ this list of conditions and the following disclaimer in the documentation
14
+ and/or other materials provided with the distribution.
15
+
16
+ 3. Neither the name of the copyright holder nor the names of its
17
+ contributors may be used to endorse or promote products derived from
18
+ this software without specific prior written permission.
19
+
20
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
23
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
24
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
26
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
27
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
28
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -0,0 +1,119 @@
1
+ Metadata-Version: 2.2
2
+ Name: octomap-python
3
+ Version: 1.8.0.13
4
+ Summary: Python binding of the OctoMap library.
5
+ Maintainer-Email: Kentaro Wada <www.kentaro.wada@gmail.com>
6
+ License: BSD-3-Clause
7
+ Classifier: Development Status :: 5 - Production/Stable
8
+ Classifier: Intended Audience :: Developers
9
+ Classifier: License :: OSI Approved :: BSD License
10
+ Classifier: Natural Language :: English
11
+ Classifier: Programming Language :: Python
12
+ Classifier: Programming Language :: Python :: 3
13
+ Classifier: Programming Language :: Python :: Implementation :: CPython
14
+ Project-URL: Homepage, https://github.com/wkentaro/octomap-python
15
+ Requires-Python: >=3.9
16
+ Requires-Dist: numpy
17
+ Description-Content-Type: text/markdown
18
+
19
+ # octomap-python
20
+
21
+ [![PyPI](https://img.shields.io/pypi/v/octomap-python.svg)](https://pypi.org/project/octomap-python/)
22
+ [![Python](https://img.shields.io/pypi/pyversions/octomap-python.svg)](https://pypi.org/project/octomap-python/)
23
+ [![Build](https://github.com/wkentaro/octomap-python/actions/workflows/ci.yml/badge.svg)](https://github.com/wkentaro/octomap-python/actions/workflows/ci.yml)
24
+ [![License](https://img.shields.io/pypi/l/octomap-python.svg)](https://pypi.org/project/octomap-python/)
25
+
26
+ Python binding of [OctoMap](https://github.com/OctoMap/octomap), the 3D
27
+ occupancy mapping library.
28
+
29
+ OctoMap builds a probabilistic 3D occupancy map (an octree) from point clouds:
30
+ you stream in sensor measurements and query whether any point in space is
31
+ occupied, free, or still unknown. This package exposes that C++ library to
32
+ Python with NumPy arrays as the interchange format, so point clouds and queries
33
+ are plain `np.ndarray`s.
34
+
35
+ <img src="https://raw.githubusercontent.com/wkentaro/octomap-python/main/examples/.readme/insertPointCloud.jpg" height="200px" />
36
+
37
+ ## Install
38
+
39
+ ```bash
40
+ pip install octomap-python
41
+ ```
42
+
43
+ Or with [uv](https://docs.astral.sh/uv/):
44
+
45
+ ```bash
46
+ uv add octomap-python
47
+ ```
48
+
49
+ Binary wheels are published for Linux (x86_64, aarch64) and macOS (Apple
50
+ Silicon), CPython 3.9-3.13. Windows and other platforms build from the sdist
51
+ and need a C++ compiler.
52
+
53
+ ## Quick start
54
+
55
+ ```python
56
+ import numpy as np
57
+ import octomap
58
+
59
+ # Resolution is the smallest voxel edge length, in meters.
60
+ octree = octomap.OcTree(0.1)
61
+
62
+ # Insert a point cloud measured from a sensor at `origin`.
63
+ points = np.random.uniform(-1, 1, size=(1000, 3))
64
+ octree.insertPointCloud(
65
+ pointcloud=points,
66
+ origin=np.array([0.0, 0.0, 0.0]),
67
+ )
68
+
69
+ # Query a coordinate: occupied / free / unknown (never observed).
70
+ node = octree.search(points[0])
71
+ try:
72
+ print("occupied" if octree.isNodeOccupied(node) else "free")
73
+ except octomap.NullPointerException:
74
+ print("unknown")
75
+
76
+ # Bounding box of everything mapped so far.
77
+ print(octree.getMetricMin(), octree.getMetricMax())
78
+
79
+ # Persist to / restore from the OctoMap binary format.
80
+ octree.writeBinary("tree.bt")
81
+ restored = octomap.OcTree(0.1)
82
+ restored.readBinary("tree.bt")
83
+ ```
84
+
85
+ ## Examples
86
+
87
+ Runnable demos live in [`examples/`](examples); the teaser above is
88
+ `insertPointCloud.py`:
89
+
90
+ ```bash
91
+ git clone --recursive https://github.com/wkentaro/octomap-python.git
92
+ cd octomap-python
93
+ uv sync --group examples
94
+
95
+ cd examples
96
+ uv run python insertPointCloud.py
97
+ ```
98
+
99
+ ## Release
100
+
101
+ Releases are published to PyPI by the `publish` workflow, which fires when a
102
+ GitHub Release is published. It builds the wheel matrix + sdist and uploads via
103
+ [PyPI Trusted Publishing](https://docs.pypi.org/trusted-publishers/) (OIDC, no
104
+ stored token).
105
+
106
+ To cut a release:
107
+
108
+ 1. Bump `version` in `pyproject.toml` to match the new tag and commit it.
109
+ 2. Create a GitHub Release with tag `vX.Y.Z` (e.g. `v1.8.0.13`).
110
+ 3. The `publish` workflow runs and uploads the built distributions to PyPI.
111
+
112
+ ## Acknowledgement
113
+
114
+ This is a fork of
115
+ [neka-nat/python-octomap](https://github.com/neka-nat/python-octomap).
116
+
117
+ ## License
118
+
119
+ BSD-3-Clause ([LICENSE](https://github.com/wkentaro/octomap-python/blob/main/LICENSE))
@@ -0,0 +1,101 @@
1
+ # octomap-python
2
+
3
+ [![PyPI](https://img.shields.io/pypi/v/octomap-python.svg)](https://pypi.org/project/octomap-python/)
4
+ [![Python](https://img.shields.io/pypi/pyversions/octomap-python.svg)](https://pypi.org/project/octomap-python/)
5
+ [![Build](https://github.com/wkentaro/octomap-python/actions/workflows/ci.yml/badge.svg)](https://github.com/wkentaro/octomap-python/actions/workflows/ci.yml)
6
+ [![License](https://img.shields.io/pypi/l/octomap-python.svg)](https://pypi.org/project/octomap-python/)
7
+
8
+ Python binding of [OctoMap](https://github.com/OctoMap/octomap), the 3D
9
+ occupancy mapping library.
10
+
11
+ OctoMap builds a probabilistic 3D occupancy map (an octree) from point clouds:
12
+ you stream in sensor measurements and query whether any point in space is
13
+ occupied, free, or still unknown. This package exposes that C++ library to
14
+ Python with NumPy arrays as the interchange format, so point clouds and queries
15
+ are plain `np.ndarray`s.
16
+
17
+ <img src="examples/.readme/insertPointCloud.jpg" height="200px" />
18
+
19
+ ## Install
20
+
21
+ ```bash
22
+ pip install octomap-python
23
+ ```
24
+
25
+ Or with [uv](https://docs.astral.sh/uv/):
26
+
27
+ ```bash
28
+ uv add octomap-python
29
+ ```
30
+
31
+ Binary wheels are published for Linux (x86_64, aarch64) and macOS (Apple
32
+ Silicon), CPython 3.9-3.13. Windows and other platforms build from the sdist
33
+ and need a C++ compiler.
34
+
35
+ ## Quick start
36
+
37
+ ```python
38
+ import numpy as np
39
+ import octomap
40
+
41
+ # Resolution is the smallest voxel edge length, in meters.
42
+ octree = octomap.OcTree(0.1)
43
+
44
+ # Insert a point cloud measured from a sensor at `origin`.
45
+ points = np.random.uniform(-1, 1, size=(1000, 3))
46
+ octree.insertPointCloud(
47
+ pointcloud=points,
48
+ origin=np.array([0.0, 0.0, 0.0]),
49
+ )
50
+
51
+ # Query a coordinate: occupied / free / unknown (never observed).
52
+ node = octree.search(points[0])
53
+ try:
54
+ print("occupied" if octree.isNodeOccupied(node) else "free")
55
+ except octomap.NullPointerException:
56
+ print("unknown")
57
+
58
+ # Bounding box of everything mapped so far.
59
+ print(octree.getMetricMin(), octree.getMetricMax())
60
+
61
+ # Persist to / restore from the OctoMap binary format.
62
+ octree.writeBinary("tree.bt")
63
+ restored = octomap.OcTree(0.1)
64
+ restored.readBinary("tree.bt")
65
+ ```
66
+
67
+ ## Examples
68
+
69
+ Runnable demos live in [`examples/`](examples); the teaser above is
70
+ `insertPointCloud.py`:
71
+
72
+ ```bash
73
+ git clone --recursive https://github.com/wkentaro/octomap-python.git
74
+ cd octomap-python
75
+ uv sync --group examples
76
+
77
+ cd examples
78
+ uv run python insertPointCloud.py
79
+ ```
80
+
81
+ ## Release
82
+
83
+ Releases are published to PyPI by the `publish` workflow, which fires when a
84
+ GitHub Release is published. It builds the wheel matrix + sdist and uploads via
85
+ [PyPI Trusted Publishing](https://docs.pypi.org/trusted-publishers/) (OIDC, no
86
+ stored token).
87
+
88
+ To cut a release:
89
+
90
+ 1. Bump `version` in `pyproject.toml` to match the new tag and commit it.
91
+ 2. Create a GitHub Release with tag `vX.Y.Z` (e.g. `v1.8.0.13`).
92
+ 3. The `publish` workflow runs and uploads the built distributions to PyPI.
93
+
94
+ ## Acknowledgement
95
+
96
+ This is a fork of
97
+ [neka-nat/python-octomap](https://github.com/neka-nat/python-octomap).
98
+
99
+ ## License
100
+
101
+ BSD-3-Clause ([LICENSE](https://github.com/wkentaro/octomap-python/blob/main/LICENSE))
@@ -0,0 +1,51 @@
1
+ # Domain Docs
2
+
3
+ How the engineering skills should consume this repo's domain documentation when exploring the codebase.
4
+
5
+ ## Before exploring, read these
6
+
7
+ - **`CONTEXT.md`** at the repo root, or
8
+ - **`CONTEXT-MAP.md`** at the repo root if it exists — it points at one `CONTEXT.md` per context. Read each one relevant to the topic.
9
+ - **`docs/adr/`** — read ADRs that touch the area you're about to work in. In multi-context repos, also check `src/<context>/docs/adr/` for context-scoped decisions.
10
+
11
+ If any of these files don't exist, **proceed silently**. Don't flag their absence; don't suggest creating them upfront. The producer skill (`/grill-with-docs`) creates them lazily when terms or decisions actually get resolved.
12
+
13
+ ## File structure
14
+
15
+ Single-context repo (most repos):
16
+
17
+ ```
18
+ /
19
+ ├── CONTEXT.md
20
+ ├── docs/adr/
21
+ │ ├── 0001-event-sourced-orders.md
22
+ │ └── 0002-postgres-for-write-model.md
23
+ └── src/
24
+ ```
25
+
26
+ Multi-context repo (presence of `CONTEXT-MAP.md` at the root):
27
+
28
+ ```
29
+ /
30
+ ├── CONTEXT-MAP.md
31
+ ├── docs/adr/ ← system-wide decisions
32
+ └── src/
33
+ ├── ordering/
34
+ │ ├── CONTEXT.md
35
+ │ └── docs/adr/ ← context-specific decisions
36
+ └── billing/
37
+ ├── CONTEXT.md
38
+ └── docs/adr/
39
+ ```
40
+
41
+ ## Use the glossary's vocabulary
42
+
43
+ When your output names a domain concept (in an issue title, a refactor proposal, a hypothesis, a test name), use the term as defined in `CONTEXT.md`. Don't drift to synonyms the glossary explicitly avoids.
44
+
45
+ If the concept you need isn't in the glossary yet, that's a signal — either you're inventing language the project doesn't use (reconsider) or there's a real gap (note it for `/grill-with-docs`).
46
+
47
+ ## Flag ADR conflicts
48
+
49
+ If your output contradicts an existing ADR, surface it explicitly rather than silently overriding:
50
+
51
+ > _Contradicts ADR-0007 (event-sourced orders) — but worth reopening because…_