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.
- octomap_python-1.8.0.13/.github/workflows/ci.yml +37 -0
- octomap_python-1.8.0.13/.github/workflows/publish.yml +26 -0
- octomap_python-1.8.0.13/.github/workflows/wheels.yml +82 -0
- octomap_python-1.8.0.13/.gitignore +8 -0
- octomap_python-1.8.0.13/.python-version +1 -0
- octomap_python-1.8.0.13/AGENTS.md +13 -0
- octomap_python-1.8.0.13/CHANGELOG.md +109 -0
- octomap_python-1.8.0.13/CLAUDE.md +1 -0
- octomap_python-1.8.0.13/CMakeLists.txt +90 -0
- octomap_python-1.8.0.13/LICENSE +29 -0
- octomap_python-1.8.0.13/PKG-INFO +119 -0
- octomap_python-1.8.0.13/README.md +101 -0
- octomap_python-1.8.0.13/docs/agents/domain.md +51 -0
- octomap_python-1.8.0.13/docs/agents/issue-tracker.md +22 -0
- octomap_python-1.8.0.13/docs/agents/triage-labels.md +15 -0
- octomap_python-1.8.0.13/examples/.readme/insertPointCloud.jpg +0 -0
- octomap_python-1.8.0.13/examples/getLabels.py +68 -0
- octomap_python-1.8.0.13/examples/insertPointCloud.py +141 -0
- {octomap-python-1.8.0.post12 → octomap_python-1.8.0.13}/octomap/dynamicEDT3D_defs.pxd +4 -0
- {octomap-python-1.8.0.post12 → octomap_python-1.8.0.13}/octomap/octomap.pyx +57 -23
- octomap_python-1.8.0.13/pyproject.toml +84 -0
- octomap_python-1.8.0.13/tests/octomap_test.py +300 -0
- octomap_python-1.8.0.13/tests/test.bt +0 -0
- octomap_python-1.8.0.13/uv.lock +2968 -0
- octomap-python-1.8.0.post12/PKG-INFO +0 -52
- octomap-python-1.8.0.post12/README.md +0 -33
- octomap-python-1.8.0.post12/setup.cfg +0 -2
- octomap-python-1.8.0.post12/setup.py +0 -109
- octomap-python-1.8.0.post12/src/octomap/.git +0 -1
- octomap-python-1.8.0.post12/src/octomap/.gitignore +0 -29
- octomap-python-1.8.0.post12/src/octomap/.travis.yml +0 -12
- octomap-python-1.8.0.post12/src/octomap/CMakeLists.txt +0 -19
- octomap-python-1.8.0.post12/src/octomap/README.md +0 -61
- octomap-python-1.8.0.post12/src/octomap/dynamicEDT3D/CHANGELOG.txt +0 -10
- octomap-python-1.8.0.post12/src/octomap/dynamicEDT3D/CMakeLists.txt +0 -148
- octomap-python-1.8.0.post12/src/octomap/dynamicEDT3D/CMakeModules/CMakeUninstall.cmake.in +0 -22
- octomap-python-1.8.0.post12/src/octomap/dynamicEDT3D/CMakeModules/CPackSettings.cmake +0 -16
- octomap-python-1.8.0.post12/src/octomap/dynamicEDT3D/CMakeModules/CompilerSettings.cmake +0 -40
- octomap-python-1.8.0.post12/src/octomap/dynamicEDT3D/CMakeModules/InstallPkgConfigFile.cmake +0 -78
- octomap-python-1.8.0.post12/src/octomap/dynamicEDT3D/LICENSE.txt +0 -32
- octomap-python-1.8.0.post12/src/octomap/dynamicEDT3D/README.txt +0 -0
- octomap-python-1.8.0.post12/src/octomap/dynamicEDT3D/doxygen.h +0 -47
- octomap-python-1.8.0.post12/src/octomap/dynamicEDT3D/dynamicEDT3D.dox +0 -1270
- octomap-python-1.8.0.post12/src/octomap/dynamicEDT3D/dynamicEDT3DConfig-version.cmake.in +0 -11
- octomap-python-1.8.0.post12/src/octomap/dynamicEDT3D/dynamicEDT3DConfig.cmake.in +0 -23
- octomap-python-1.8.0.post12/src/octomap/dynamicEDT3D/include/dynamicEDT3D/bucketedqueue.h +0 -90
- octomap-python-1.8.0.post12/src/octomap/dynamicEDT3D/include/dynamicEDT3D/bucketedqueue.hxx +0 -75
- octomap-python-1.8.0.post12/src/octomap/dynamicEDT3D/include/dynamicEDT3D/dynamicEDT3D.h +0 -151
- octomap-python-1.8.0.post12/src/octomap/dynamicEDT3D/include/dynamicEDT3D/dynamicEDTOctomap.h +0 -123
- octomap-python-1.8.0.post12/src/octomap/dynamicEDT3D/include/dynamicEDT3D/point.h +0 -61
- octomap-python-1.8.0.post12/src/octomap/dynamicEDT3D/package.xml +0 -25
- octomap-python-1.8.0.post12/src/octomap/dynamicEDT3D/src/CMakeLists.txt +0 -30
- octomap-python-1.8.0.post12/src/octomap/dynamicEDT3D/src/dynamicEDT3D.cpp +0 -591
- octomap-python-1.8.0.post12/src/octomap/dynamicEDT3D/src/dynamicEDTOctomap.cpp +0 -329
- octomap-python-1.8.0.post12/src/octomap/dynamicEDT3D/src/examples/CMakeLists.txt +0 -5
- octomap-python-1.8.0.post12/src/octomap/dynamicEDT3D/src/examples/exampleEDT3D.cpp +0 -135
- octomap-python-1.8.0.post12/src/octomap/dynamicEDT3D/src/examples/exampleEDTOctomap.cpp +0 -101
- octomap-python-1.8.0.post12/src/octomap/increase_version.py +0 -113
- octomap-python-1.8.0.post12/src/octomap/octomap/AUTHORS.txt +0 -15
- octomap-python-1.8.0.post12/src/octomap/octomap/CHANGELOG.txt +0 -249
- octomap-python-1.8.0.post12/src/octomap/octomap/CMakeLists.txt +0 -152
- octomap-python-1.8.0.post12/src/octomap/octomap/CMakeModules/CMakeUninstall.cmake.in +0 -25
- octomap-python-1.8.0.post12/src/octomap/octomap/CMakeModules/CPackSettings.cmake +0 -16
- octomap-python-1.8.0.post12/src/octomap/octomap/CMakeModules/CompilerSettings.cmake +0 -29
- octomap-python-1.8.0.post12/src/octomap/octomap/CMakeModules/InstallPkgConfigFile.cmake +0 -78
- octomap-python-1.8.0.post12/src/octomap/octomap/LICENSE.txt +0 -31
- octomap-python-1.8.0.post12/src/octomap/octomap/README.md +0 -168
- octomap-python-1.8.0.post12/src/octomap/octomap/doxygen.h +0 -112
- octomap-python-1.8.0.post12/src/octomap/octomap/extern/README_BINVOX +0 -5
- octomap-python-1.8.0.post12/src/octomap/octomap/include/octomap/AbstractOcTree.h +0 -164
- octomap-python-1.8.0.post12/src/octomap/octomap/include/octomap/AbstractOccupancyOcTree.h +0 -241
- octomap-python-1.8.0.post12/src/octomap/octomap/include/octomap/ColorOcTree.h +0 -207
- octomap-python-1.8.0.post12/src/octomap/octomap/include/octomap/CountingOcTree.h +0 -123
- octomap-python-1.8.0.post12/src/octomap/octomap/include/octomap/MCTables.h +0 -355
- octomap-python-1.8.0.post12/src/octomap/octomap/include/octomap/MapCollection.h +0 -103
- octomap-python-1.8.0.post12/src/octomap/octomap/include/octomap/MapCollection.hxx +0 -330
- octomap-python-1.8.0.post12/src/octomap/octomap/include/octomap/MapNode.h +0 -82
- octomap-python-1.8.0.post12/src/octomap/octomap/include/octomap/MapNode.hxx +0 -101
- octomap-python-1.8.0.post12/src/octomap/octomap/include/octomap/OcTree.h +0 -101
- octomap-python-1.8.0.post12/src/octomap/octomap/include/octomap/OcTreeBase.h +0 -57
- octomap-python-1.8.0.post12/src/octomap/octomap/include/octomap/OcTreeBaseImpl.h +0 -574
- octomap-python-1.8.0.post12/src/octomap/octomap/include/octomap/OcTreeBaseImpl.hxx +0 -1115
- octomap-python-1.8.0.post12/src/octomap/octomap/include/octomap/OcTreeDataNode.h +0 -137
- octomap-python-1.8.0.post12/src/octomap/octomap/include/octomap/OcTreeDataNode.hxx +0 -140
- octomap-python-1.8.0.post12/src/octomap/octomap/include/octomap/OcTreeIterator.hxx +0 -463
- octomap-python-1.8.0.post12/src/octomap/octomap/include/octomap/OcTreeKey.h +0 -242
- octomap-python-1.8.0.post12/src/octomap/octomap/include/octomap/OcTreeNode.h +0 -97
- octomap-python-1.8.0.post12/src/octomap/octomap/include/octomap/OcTreeStamped.h +0 -128
- octomap-python-1.8.0.post12/src/octomap/octomap/include/octomap/OccupancyOcTreeBase.h +0 -508
- octomap-python-1.8.0.post12/src/octomap/octomap/include/octomap/OccupancyOcTreeBase.hxx +0 -1128
- octomap-python-1.8.0.post12/src/octomap/octomap/include/octomap/Pointcloud.h +0 -126
- octomap-python-1.8.0.post12/src/octomap/octomap/include/octomap/ScanGraph.h +0 -231
- octomap-python-1.8.0.post12/src/octomap/octomap/include/octomap/math/Pose6D.h +0 -204
- octomap-python-1.8.0.post12/src/octomap/octomap/include/octomap/math/Quaternion.h +0 -203
- octomap-python-1.8.0.post12/src/octomap/octomap/include/octomap/math/Utils.h +0 -56
- octomap-python-1.8.0.post12/src/octomap/octomap/include/octomap/math/Vector3.h +0 -326
- octomap-python-1.8.0.post12/src/octomap/octomap/include/octomap/octomap.h +0 -38
- octomap-python-1.8.0.post12/src/octomap/octomap/include/octomap/octomap_deprecated.h +0 -49
- octomap-python-1.8.0.post12/src/octomap/octomap/include/octomap/octomap_timing.h +0 -54
- octomap-python-1.8.0.post12/src/octomap/octomap/include/octomap/octomap_types.h +0 -80
- octomap-python-1.8.0.post12/src/octomap/octomap/include/octomap/octomap_utils.h +0 -55
- octomap-python-1.8.0.post12/src/octomap/octomap/octomap-config-version.cmake.in +0 -11
- octomap-python-1.8.0.post12/src/octomap/octomap/octomap-config.cmake.in +0 -34
- octomap-python-1.8.0.post12/src/octomap/octomap/octomap.dox.in +0 -1788
- octomap-python-1.8.0.post12/src/octomap/octomap/package.xml +0 -22
- octomap-python-1.8.0.post12/src/octomap/octomap/share/data/geb079.bt +0 -0
- octomap-python-1.8.0.post12/src/octomap/octomap/share/data/mapcoll.txt +0 -15
- octomap-python-1.8.0.post12/src/octomap/octomap/share/data/scan.dat.bz2 +0 -0
- octomap-python-1.8.0.post12/src/octomap/octomap/share/example-project.tgz +0 -0
- octomap-python-1.8.0.post12/src/octomap/octomap/share/images/uml_overview.png +0 -0
- octomap-python-1.8.0.post12/src/octomap/octomap/src/AbstractOcTree.cpp +0 -211
- octomap-python-1.8.0.post12/src/octomap/octomap/src/AbstractOccupancyOcTree.cpp +0 -181
- octomap-python-1.8.0.post12/src/octomap/octomap/src/CMakeLists.txt +0 -75
- octomap-python-1.8.0.post12/src/octomap/octomap/src/ColorOcTree.cpp +0 -261
- octomap-python-1.8.0.post12/src/octomap/octomap/src/CountingOcTree.cpp +0 -128
- octomap-python-1.8.0.post12/src/octomap/octomap/src/OcTree.cpp +0 -54
- octomap-python-1.8.0.post12/src/octomap/octomap/src/OcTreeNode.cpp +0 -97
- octomap-python-1.8.0.post12/src/octomap/octomap/src/OcTreeStamped.cpp +0 -73
- octomap-python-1.8.0.post12/src/octomap/octomap/src/Pointcloud.cpp +0 -325
- octomap-python-1.8.0.post12/src/octomap/octomap/src/ScanGraph.cpp +0 -621
- octomap-python-1.8.0.post12/src/octomap/octomap/src/binvox2bt.cpp +0 -310
- octomap-python-1.8.0.post12/src/octomap/octomap/src/bt2vrml.cpp +0 -102
- octomap-python-1.8.0.post12/src/octomap/octomap/src/compare_octrees.cpp +0 -158
- octomap-python-1.8.0.post12/src/octomap/octomap/src/convert_octree.cpp +0 -148
- octomap-python-1.8.0.post12/src/octomap/octomap/src/edit_octree.cpp +0 -225
- octomap-python-1.8.0.post12/src/octomap/octomap/src/eval_octree_accuracy.cpp +0 -196
- octomap-python-1.8.0.post12/src/octomap/octomap/src/graph2tree.cpp +0 -308
- octomap-python-1.8.0.post12/src/octomap/octomap/src/intersection_example.cpp +0 -92
- octomap-python-1.8.0.post12/src/octomap/octomap/src/log2graph.cpp +0 -78
- octomap-python-1.8.0.post12/src/octomap/octomap/src/math/CMakeLists.txt +0 -21
- octomap-python-1.8.0.post12/src/octomap/octomap/src/math/Pose6D.cpp +0 -153
- octomap-python-1.8.0.post12/src/octomap/octomap/src/math/Quaternion.cpp +0 -309
- octomap-python-1.8.0.post12/src/octomap/octomap/src/math/Vector3.cpp +0 -116
- octomap-python-1.8.0.post12/src/octomap/octomap/src/normals_example.cpp +0 -112
- octomap-python-1.8.0.post12/src/octomap/octomap/src/octree2pointcloud.cpp +0 -114
- octomap-python-1.8.0.post12/src/octomap/octomap/src/offset_graph.cpp +0 -64
- octomap-python-1.8.0.post12/src/octomap/octomap/src/simple_example.cpp +0 -101
- octomap-python-1.8.0.post12/src/octomap/octomap/src/testing/CMakeLists.txt +0 -47
- octomap-python-1.8.0.post12/src/octomap/octomap/src/testing/color_tree_histogram.cpp +0 -26
- octomap-python-1.8.0.post12/src/octomap/octomap/src/testing/test_changedkeys.cpp +0 -94
- octomap-python-1.8.0.post12/src/octomap/octomap/src/testing/test_color_tree.cpp +0 -194
- octomap-python-1.8.0.post12/src/octomap/octomap/src/testing/test_io.cpp +0 -182
- octomap-python-1.8.0.post12/src/octomap/octomap/src/testing/test_iterators.cpp +0 -434
- octomap-python-1.8.0.post12/src/octomap/octomap/src/testing/test_mapcollection.cpp +0 -141
- octomap-python-1.8.0.post12/src/octomap/octomap/src/testing/test_pruning.cpp +0 -241
- octomap-python-1.8.0.post12/src/octomap/octomap/src/testing/test_raycasting.cpp +0 -195
- octomap-python-1.8.0.post12/src/octomap/octomap/src/testing/test_scans.cpp +0 -42
- octomap-python-1.8.0.post12/src/octomap/octomap/src/testing/testing.h +0 -31
- octomap-python-1.8.0.post12/src/octomap/octomap/src/testing/unit_tests.cpp +0 -211
- octomap-python-1.8.0.post12/src/octomap/octomap/valgrind_memcheck.supp +0 -184
- octomap-python-1.8.0.post12/src/octomap/octovis/CMakeLists.txt +0 -136
- octomap-python-1.8.0.post12/src/octomap/octovis/CMakeLists_src.txt +0 -126
- octomap-python-1.8.0.post12/src/octomap/octovis/CMakeModules/CMakeUninstall.cmake.in +0 -22
- octomap-python-1.8.0.post12/src/octomap/octovis/CMakeModules/CompilerSettings.cmake +0 -40
- octomap-python-1.8.0.post12/src/octomap/octovis/CMakeModules/FindQGLViewer.cmake +0 -122
- octomap-python-1.8.0.post12/src/octomap/octovis/LICENSE.txt +0 -294
- octomap-python-1.8.0.post12/src/octomap/octovis/README.md +0 -121
- octomap-python-1.8.0.post12/src/octomap/octovis/include/octovis/CameraFollowMode.h +0 -79
- octomap-python-1.8.0.post12/src/octomap/octovis/include/octovis/ColorOcTreeDrawer.h +0 -48
- octomap-python-1.8.0.post12/src/octomap/octovis/include/octovis/OcTreeDrawer.h +0 -160
- octomap-python-1.8.0.post12/src/octomap/octovis/include/octovis/OcTreeRecord.h +0 -42
- octomap-python-1.8.0.post12/src/octomap/octovis/include/octovis/PointcloudDrawer.h +0 -53
- octomap-python-1.8.0.post12/src/octomap/octovis/include/octovis/SceneObject.h +0 -113
- octomap-python-1.8.0.post12/src/octomap/octovis/include/octovis/SelectionBox.h +0 -62
- octomap-python-1.8.0.post12/src/octomap/octovis/include/octovis/TrajectoryDrawer.h +0 -50
- octomap-python-1.8.0.post12/src/octomap/octovis/include/octovis/ViewerGui.h +0 -220
- octomap-python-1.8.0.post12/src/octomap/octovis/include/octovis/ViewerGui.ui +0 -549
- octomap-python-1.8.0.post12/src/octomap/octovis/include/octovis/ViewerSettings.h +0 -49
- octomap-python-1.8.0.post12/src/octomap/octovis/include/octovis/ViewerSettings.ui +0 -139
- octomap-python-1.8.0.post12/src/octomap/octovis/include/octovis/ViewerSettingsPanel.h +0 -70
- octomap-python-1.8.0.post12/src/octomap/octovis/include/octovis/ViewerSettingsPanel.ui +0 -277
- octomap-python-1.8.0.post12/src/octomap/octovis/include/octovis/ViewerSettingsPanelCamera.h +0 -84
- octomap-python-1.8.0.post12/src/octomap/octovis/include/octovis/ViewerSettingsPanelCamera.ui +0 -362
- octomap-python-1.8.0.post12/src/octomap/octovis/include/octovis/ViewerWidget.h +0 -124
- octomap-python-1.8.0.post12/src/octomap/octovis/octovis-config-version.cmake.in +0 -11
- octomap-python-1.8.0.post12/src/octomap/octovis/octovis-config.cmake.in +0 -17
- octomap-python-1.8.0.post12/src/octomap/octovis/package.xml +0 -33
- octomap-python-1.8.0.post12/src/octomap/octovis/src/CameraFollowMode.cpp +0 -141
- octomap-python-1.8.0.post12/src/octomap/octovis/src/ColorOcTreeDrawer.cpp +0 -138
- octomap-python-1.8.0.post12/src/octomap/octovis/src/OcTreeDrawer.cpp +0 -894
- octomap-python-1.8.0.post12/src/octomap/octovis/src/PointcloudDrawer.cpp +0 -105
- octomap-python-1.8.0.post12/src/octomap/octovis/src/SceneObject.cpp +0 -105
- octomap-python-1.8.0.post12/src/octomap/octovis/src/SelectionBox.cpp +0 -278
- octomap-python-1.8.0.post12/src/octomap/octovis/src/TrajectoryDrawer.cpp +0 -108
- octomap-python-1.8.0.post12/src/octomap/octovis/src/ViewerGui.cpp +0 -1218
- octomap-python-1.8.0.post12/src/octomap/octovis/src/ViewerSettings.cpp +0 -36
- octomap-python-1.8.0.post12/src/octomap/octovis/src/ViewerSettingsPanel.cpp +0 -123
- octomap-python-1.8.0.post12/src/octomap/octovis/src/ViewerSettingsPanelCamera.cpp +0 -213
- octomap-python-1.8.0.post12/src/octomap/octovis/src/ViewerWidget.cpp +0 -400
- octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/.gitignore +0 -8
- octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/CHANGELOG +0 -6
- octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/GPL_EXCEPTION +0 -80
- octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/INSTALL +0 -20
- octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/ImageInterface.ui +0 -297
- octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/LICENCE +0 -1040
- octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/QGLViewer.pro +0 -279
- octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/README +0 -41
- octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/VRender/AxisAlignedBox.h +0 -101
- octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/VRender/BSPSortMethod.cpp +0 -644
- octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/VRender/BackFaceCullingOptimizer.cpp +0 -85
- octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/VRender/EPSExporter.cpp +0 -317
- octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/VRender/Exporter.cpp +0 -108
- octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/VRender/Exporter.h +0 -165
- octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/VRender/FIGExporter.cpp +0 -225
- octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/VRender/NVector3.cpp +0 -196
- octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/VRender/NVector3.h +0 -120
- octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/VRender/Optimizer.h +0 -91
- octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/VRender/ParserGL.cpp +0 -481
- octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/VRender/ParserGL.h +0 -88
- octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/VRender/Primitive.cpp +0 -171
- octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/VRender/Primitive.h +0 -219
- octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/VRender/PrimitivePositioning.cpp +0 -671
- octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/VRender/PrimitivePositioning.h +0 -102
- octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/VRender/SortMethod.h +0 -102
- octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/VRender/TopologicalSortMethod.cpp +0 -688
- octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/VRender/Types.h +0 -74
- octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/VRender/VRender.cpp +0 -276
- octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/VRender/VRender.h +0 -118
- octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/VRender/Vector2.cpp +0 -147
- octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/VRender/Vector2.h +0 -181
- octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/VRender/Vector3.cpp +0 -170
- octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/VRender/Vector3.h +0 -195
- octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/VRender/VisibilityOptimizer.cpp +0 -275
- octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/VRender/gpc.cpp +0 -2544
- octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/VRender/gpc.h +0 -179
- octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/VRenderInterface.ui +0 -217
- octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/camera.cpp +0 -2209
- octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/camera.h +0 -512
- octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/config.h +0 -104
- octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/constraint.cpp +0 -291
- octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/constraint.h +0 -338
- octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/domUtils.h +0 -161
- octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/frame.cpp +0 -1144
- octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/frame.h +0 -415
- octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/keyFrameInterpolator.cpp +0 -714
- octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/keyFrameInterpolator.h +0 -357
- octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/manipulatedCameraFrame.cpp +0 -469
- octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/manipulatedCameraFrame.h +0 -233
- octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/manipulatedFrame.cpp +0 -550
- octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/manipulatedFrame.h +0 -335
- octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/mouseGrabber.cpp +0 -76
- octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/mouseGrabber.h +0 -264
- octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/qglviewer-icon.xpm +0 -359
- octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/qglviewer.cpp +0 -3847
- octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/qglviewer.h +0 -1298
- octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/qglviewer.icns +0 -0
- octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/qglviewer_fr.qm +0 -0
- octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/qglviewer_fr.ts +0 -608
- octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/quaternion.cpp +0 -552
- octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/quaternion.h +0 -311
- octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/saveSnapshot.cpp +0 -638
- octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/vec.cpp +0 -164
- octomap-python-1.8.0.post12/src/octomap/octovis/src/extern/QGLViewer/vec.h +0 -390
- octomap-python-1.8.0.post12/src/octomap/octovis/src/icons/LICENSE.txt +0 -4
- octomap-python-1.8.0.post12/src/octomap/octovis/src/icons/application-exit.png +0 -0
- octomap-python-1.8.0.post12/src/octomap/octovis/src/icons/configure.png +0 -0
- octomap-python-1.8.0.post12/src/octomap/octovis/src/icons/document-open-folder.png +0 -0
- octomap-python-1.8.0.post12/src/octomap/octovis/src/icons/document-open.png +0 -0
- octomap-python-1.8.0.post12/src/octomap/octovis/src/icons/document-save-as.png +0 -0
- octomap-python-1.8.0.post12/src/octomap/octovis/src/icons/document-save.png +0 -0
- octomap-python-1.8.0.post12/src/octomap/octovis/src/icons/edit-clear-list.png +0 -0
- octomap-python-1.8.0.post12/src/octomap/octovis/src/icons/edit-undo.png +0 -0
- octomap-python-1.8.0.post12/src/octomap/octovis/src/icons/go-bottom.png +0 -0
- octomap-python-1.8.0.post12/src/octomap/octovis/src/icons/go-top.png +0 -0
- octomap-python-1.8.0.post12/src/octomap/octovis/src/icons/help-contents.png +0 -0
- octomap-python-1.8.0.post12/src/octomap/octovis/src/icons/lgpl-3.0.txt +0 -165
- octomap-python-1.8.0.post12/src/octomap/octovis/src/icons/list-add.png +0 -0
- octomap-python-1.8.0.post12/src/octomap/octovis/src/icons/list-remove.png +0 -0
- octomap-python-1.8.0.post12/src/octomap/octovis/src/icons/media-playback-start.png +0 -0
- octomap-python-1.8.0.post12/src/octomap/octovis/src/icons/media-seek-backward.png +0 -0
- octomap-python-1.8.0.post12/src/octomap/octovis/src/icons/media-seek-forward.png +0 -0
- octomap-python-1.8.0.post12/src/octomap/octovis/src/icons/media-skip-backward.png +0 -0
- octomap-python-1.8.0.post12/src/octomap/octovis/src/icons/media-skip-forward.png +0 -0
- octomap-python-1.8.0.post12/src/octomap/octovis/src/icons/system-restart.png +0 -0
- octomap-python-1.8.0.post12/src/octomap/octovis/src/icons/view-preview.png +0 -0
- octomap-python-1.8.0.post12/src/octomap/octovis/src/icons/view-refresh.png +0 -0
- octomap-python-1.8.0.post12/src/octomap/octovis/src/icons.qrc +0 -25
- octomap-python-1.8.0.post12/src/octomap/octovis/src/main.cpp +0 -41
- {octomap-python-1.8.0.post12 → octomap_python-1.8.0.13}/octomap/include_and_setting.h +0 -0
- {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 @@
|
|
|
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
|
+
[](https://pypi.org/project/octomap-python/)
|
|
22
|
+
[](https://pypi.org/project/octomap-python/)
|
|
23
|
+
[](https://github.com/wkentaro/octomap-python/actions/workflows/ci.yml)
|
|
24
|
+
[](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
|
+
[](https://pypi.org/project/octomap-python/)
|
|
4
|
+
[](https://pypi.org/project/octomap-python/)
|
|
5
|
+
[](https://github.com/wkentaro/octomap-python/actions/workflows/ci.yml)
|
|
6
|
+
[](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…_
|