gitextract_waem9xm7/ ├── .clang-format ├── .clang-tidy ├── .gitignore ├── 3rdparty/ │ └── 3es-core/ │ └── 3esservermacros.h ├── CMakeLists.txt ├── LICENSE ├── OpenCL.md ├── clearance-performance-notes.md ├── clu/ │ ├── 3rdparty/ │ │ └── CL/ │ │ └── opencl.hpp │ ├── CMakeLists.txt │ ├── clu.cpp │ ├── clu.h │ ├── cluBuffer.h │ ├── cluConfig.in.h │ ├── cluConstraint.cpp │ ├── cluConstraint.h │ ├── cluKernel.cpp │ ├── cluKernel.h │ ├── cluProgram.cpp │ └── cluProgram.h ├── cmake/ │ ├── ClangTidy.cmake │ ├── FindLASZIP.cmake │ ├── FindLIBLAS.cmake │ ├── FindOctomap.cmake │ ├── FindTBB.cmake │ ├── Findglm.cmake │ ├── LeakTrack.cmake │ ├── OhmCuda.cmake │ ├── OhmGTest.cmake │ ├── TextFileResource.cmake │ ├── TextFileResource.py │ ├── compilerSetup.cmake │ ├── doxyfile.in │ ├── doxygen.cmake │ ├── ohm-config.cmake │ ├── ohm-packages.cmake │ ├── tidy/ │ │ ├── clang-tidy-names.yaml │ │ └── wrap-clang-tidy.py │ └── utils.cmake ├── docs/ │ ├── docglossary.md │ ├── docmain.h │ ├── docusage.md │ ├── docutils.md │ ├── docvoxellayers.md │ └── gpu/ │ ├── docgpualgorithm.md │ └── docgpudetail.md ├── gputil/ │ ├── CMakeLists.txt │ ├── cl/ │ │ ├── gpuApiExceptionCode.cpp │ │ ├── gpuBuffer.cpp │ │ ├── gpuBufferDetail.h │ │ ├── gpuDevice.cpp │ │ ├── gpuDeviceDetail.h │ │ ├── gpuEvent.cpp │ │ ├── gpuEventDetail.h │ │ ├── gpuKernel.cpp │ │ ├── gpuKernel2.h │ │ ├── gpuKernelDetail.h │ │ ├── gpuPinnedBuffer.cpp │ │ ├── gpuPlatform2.h │ │ ├── gpuProgram.cpp │ │ ├── gpuProgramDetail.h │ │ ├── gpuQueue.cpp │ │ └── gpuQueueDetail.h │ ├── cuda/ │ │ ├── cutil_atomic.h │ │ ├── cutil_decl.h │ │ ├── cutil_importcl.h │ │ ├── cutil_math.h │ │ ├── gpuApiExceptionCode.cpp │ │ ├── gpuBuffer.cpp │ │ ├── gpuBufferDetail.h │ │ ├── gpuDevice.cpp │ │ ├── gpuDeviceDetail.h │ │ ├── gpuDirtyRegion │ │ ├── gpuEvent.cpp │ │ ├── gpuEventDetail.h │ │ ├── gpuKernel.cpp │ │ ├── gpuKernel2.h │ │ ├── gpuKernelDetail.h │ │ ├── gpuMemRegion.cpp │ │ ├── gpuMemRegion.h │ │ ├── gpuPinnedBuffer.cpp │ │ ├── gpuPlatform2.h │ │ ├── gpuProgram.cpp │ │ ├── gpuProgramDetail.h │ │ ├── gpuQueue.cpp │ │ ├── gpuQueueDetail.h │ │ └── ref.h │ ├── gpuApiException.cpp │ ├── gpuApiException.h │ ├── gpuBuffer.h │ ├── gpuConfig.in.h │ ├── gpuDevice.h │ ├── gpuDeviceInfo.h │ ├── gpuEvent.h │ ├── gpuEventList.cpp │ ├── gpuEventList.h │ ├── gpuException.cpp │ ├── gpuException.h │ ├── gpuKernel.h │ ├── gpuPinMode.h │ ├── gpuPinnedBuffer.h │ ├── gpuPlatform.h │ ├── gpuProgram.h │ ├── gpuQueue.h │ ├── gpuThrow.cpp │ ├── gpuThrow.h │ ├── gpuVersion.h │ └── gpu_ext.h ├── logutil/ │ ├── CMakeLists.txt │ ├── LogUtil.cpp │ ├── LogUtil.h │ ├── LogUtilConfig.in.h │ ├── Logger.cpp │ ├── Logger.h │ └── LoggerDetail.h ├── ohm/ │ ├── Aabb.h │ ├── CMakeLists.txt │ ├── CalculateSegmentKeys.cpp │ ├── CalculateSegmentKeys.h │ ├── ClearingPattern.cpp │ ├── ClearingPattern.h │ ├── CompareMaps.cpp │ ├── CompareMaps.h │ ├── CopyUtil.cpp │ ├── CopyUtil.h │ ├── CovarianceVoxel.cpp │ ├── CovarianceVoxel.h │ ├── CovarianceVoxelCompute.h │ ├── DataType.cpp │ ├── DataType.h │ ├── DebugDraw.cpp │ ├── DebugDraw.h │ ├── DebugIDs.h │ ├── DefaultLayer.cpp │ ├── DefaultLayer.h │ ├── Density.cpp │ ├── Density.h │ ├── Key.cpp │ ├── Key.h │ ├── KeyHash.cpp │ ├── KeyHash.h │ ├── KeyList.cpp │ ├── KeyList.h │ ├── KeyRange.cpp │ ├── KeyRange.h │ ├── KeyStream.h │ ├── LineKeysQuery.cpp │ ├── LineKeysQuery.h │ ├── LineQuery.cpp │ ├── LineQuery.h │ ├── LineWalk.h │ ├── LineWalkCompute.h │ ├── MapChunk.cpp │ ├── MapChunk.h │ ├── MapChunkFlag.h │ ├── MapCoord.h │ ├── MapFlag.cpp │ ├── MapFlag.h │ ├── MapInfo.cpp │ ├── MapInfo.h │ ├── MapLayer.cpp │ ├── MapLayer.h │ ├── MapLayout.cpp │ ├── MapLayout.h │ ├── MapLayoutMatch.h │ ├── MapProbability.h │ ├── MapRegion.cpp │ ├── MapRegion.h │ ├── MapRegionCache.cpp │ ├── MapRegionCache.h │ ├── MapSerialise.cpp │ ├── MapSerialise.h │ ├── Mapper.cpp │ ├── Mapper.h │ ├── MappingProcess.cpp │ ├── MappingProcess.h │ ├── Mutex.cpp │ ├── Mutex.h │ ├── NdtMap.cpp │ ├── NdtMap.h │ ├── NdtMode.cpp │ ├── NdtMode.h │ ├── NearestNeighbours.cpp │ ├── NearestNeighbours.h │ ├── OccupancyMap.cpp │ ├── OccupancyMap.h │ ├── OccupancyType.cpp │ ├── OccupancyType.h │ ├── OccupancyUtil.cpp │ ├── OccupancyUtil.h │ ├── OhmConfig.in.h │ ├── Query.cpp │ ├── Query.h │ ├── QueryFlag.h │ ├── RayFilter.cpp │ ├── RayFilter.h │ ├── RayFlag.h │ ├── RayMapper.cpp │ ├── RayMapper.h │ ├── RayMapperNdt.cpp │ ├── RayMapperNdt.h │ ├── RayMapperOccupancy.cpp │ ├── RayMapperOccupancy.h │ ├── RayMapperSecondarySample.cpp │ ├── RayMapperSecondarySample.h │ ├── RayMapperTrace.cpp │ ├── RayMapperTrace.h │ ├── RayMapperTsdf.cpp │ ├── RayMapperTsdf.h │ ├── RayPattern.cpp │ ├── RayPattern.h │ ├── RayPatternConical.cpp │ ├── RayPatternConical.h │ ├── RaysQuery.cpp │ ├── RaysQuery.h │ ├── Stream.cpp │ ├── Stream.h │ ├── Trace.cpp │ ├── Trace.h │ ├── Voxel.cpp │ ├── Voxel.h │ ├── VoxelBlock.cpp │ ├── VoxelBlock.h │ ├── VoxelBlockCompressionQueue.cpp │ ├── VoxelBlockCompressionQueue.h │ ├── VoxelBuffer.cpp │ ├── VoxelBuffer.h │ ├── VoxelData.h │ ├── VoxelIncident.h │ ├── VoxelIncidentCompute.h │ ├── VoxelLayout.cpp │ ├── VoxelLayout.h │ ├── VoxelMean.h │ ├── VoxelMeanCompute.h │ ├── VoxelOccupancy.h │ ├── VoxelOccupancyCompute.h │ ├── VoxelSecondarySample.h │ ├── VoxelTouchTime.h │ ├── VoxelTouchTimeCompute.h │ ├── VoxelTsdf.cpp │ ├── VoxelTsdf.h │ ├── VoxelTsdfCompute.h │ ├── private/ │ │ ├── ClearingPatternDetail.h │ │ ├── LineKeysQueryDetail.h │ │ ├── LineQueryDetail.h │ │ ├── MapLayerDetail.h │ │ ├── MapLayoutDetail.h │ │ ├── MapperDetail.h │ │ ├── NdtMapDetail.h │ │ ├── NearestNeighboursDetail.h │ │ ├── OccupancyMapDetail.cpp │ │ ├── OccupancyMapDetail.h │ │ ├── OccupancyQueryAlg.h │ │ ├── QueryDetail.h │ │ ├── RayPatternDetail.h │ │ ├── RaysQueryDetail.h │ │ ├── SerialiseUtil.h │ │ ├── VoxelAlgorithms.cpp │ │ ├── VoxelAlgorithms.h │ │ ├── VoxelBlockCompressionQueueDetail.h │ │ └── VoxelLayoutDetail.h │ └── serialise/ │ ├── MapSerialiseV0.1.cpp │ ├── MapSerialiseV0.1.h │ ├── MapSerialiseV0.2.cpp │ ├── MapSerialiseV0.2.h │ ├── MapSerialiseV0.4.cpp │ ├── MapSerialiseV0.4.h │ ├── MapSerialiseV0.5.cpp │ ├── MapSerialiseV0.5.h │ ├── MapSerialiseV0.cpp │ └── MapSerialiseV0.h ├── ohm.natvis ├── ohmapp/ │ ├── CMakeLists.txt │ ├── DataSource.cpp │ ├── DataSource.h │ ├── MapHarness.cpp │ ├── MapHarness.h │ ├── OhmAppConfig.in.h │ ├── OhmAppCpu.cpp │ ├── OhmAppCpu.h │ ├── OhmAppGpu.cpp │ ├── OhmAppGpu.h │ ├── OhmAppGpuConfig.in.h │ ├── SlamIOSource.cpp │ ├── SlamIOSource.h │ └── ohmappmain.inl ├── ohmgpu/ │ ├── CMakeLists.txt │ ├── ClearanceProcess.cpp │ ├── ClearanceProcess.h │ ├── GpuCache.cpp │ ├── GpuCache.h │ ├── GpuCachePostSyncHandler.h │ ├── GpuCacheStats.h │ ├── GpuKey.h │ ├── GpuLayerCache.cpp │ ├── GpuLayerCache.h │ ├── GpuLayerCacheParams.cpp │ ├── GpuLayerCacheParams.h │ ├── GpuMap.cpp │ ├── GpuMap.h │ ├── GpuNdtMap.cpp │ ├── GpuNdtMap.h │ ├── GpuTransformSamples.cpp │ ├── GpuTransformSamples.h │ ├── GpuTsdfMap.cpp │ ├── GpuTsdfMap.h │ ├── LineKeysQueryGpu.cpp │ ├── LineKeysQueryGpu.h │ ├── LineQueryGpu.cpp │ ├── LineQueryGpu.h │ ├── OhmGpu.cpp │ ├── OhmGpu.h │ ├── OhmGpuConfig.in.h │ ├── RayItem.h │ ├── RaysQueryGpu.cpp │ ├── RaysQueryGpu.h │ ├── gpu/ │ │ ├── AdjustNdt.cl │ │ ├── AdjustOccupancy.cl │ │ ├── CovarianceHitNdt.cl │ │ ├── CovarianceHitNdt.cu │ │ ├── CovarianceHitNdt_h.cl │ │ ├── LineKeys.cl │ │ ├── LineKeys.cu │ │ ├── LineWalk.cl │ │ ├── LineWalkMarkers.cl │ │ ├── RaysQuery.cl │ │ ├── RaysQuery.cu │ │ ├── RaysQueryResult.h │ │ ├── RegionUpdate.cl │ │ ├── RegionUpdate.cu │ │ ├── RegionUpdateNdt.cu │ │ ├── Regions.cl │ │ ├── RoiRangeFill.cl │ │ ├── RoiRangeFill.cu │ │ ├── TransformSamples.cl │ │ ├── TransformSamples.cu │ │ ├── Traversal.cl │ │ ├── TsdfUpdate.cl │ │ ├── TsdfUpdate.cu │ │ ├── VoxelIncident.cl │ │ └── VoxelMean.cl │ └── private/ │ ├── ClearanceProcessDetail.cpp │ ├── ClearanceProcessDetail.h │ ├── GpuMapDetail.cpp │ ├── GpuMapDetail.h │ ├── GpuNdtMapDetail.h │ ├── GpuProgramRef.cpp │ ├── GpuProgramRef.h │ ├── GpuTransformSamplesDetail.h │ ├── GpuTsdfMapDetail.h │ ├── LineKeysQueryDetailGpu.h │ ├── LineQueryDetailGpu.h │ ├── RaysQueryDetailGpu.cpp │ ├── RaysQueryDetailGpu.h │ ├── RoiRangeFill.cpp │ └── RoiRangeFill.h ├── ohmheightmap/ │ ├── 3rdparty/ │ │ └── delaunator.hpp │ ├── CMakeLists.txt │ ├── Heightmap.cpp │ ├── Heightmap.h │ ├── HeightmapMesh.cpp │ ├── HeightmapMesh.h │ ├── HeightmapMode.cpp │ ├── HeightmapMode.h │ ├── HeightmapSerialise.cpp │ ├── HeightmapSerialise.h │ ├── HeightmapUtil.cpp │ ├── HeightmapUtil.h │ ├── HeightmapVoxel.cpp │ ├── HeightmapVoxel.h │ ├── HeightmapVoxelType.h │ ├── OhmHeightmapConfig.in.h │ ├── PlaneFillLayeredWalker.cpp │ ├── PlaneFillLayeredWalker.h │ ├── PlaneFillWalker.cpp │ ├── PlaneFillWalker.h │ ├── PlaneWalkVisitMode.h │ ├── PlaneWalker.cpp │ ├── PlaneWalker.h │ ├── TriangleEdge.h │ ├── TriangleNeighbours.h │ ├── UpAxis.h │ └── private/ │ ├── HeightmapDetail.cpp │ ├── HeightmapDetail.h │ ├── HeightmapOperations.cpp │ └── HeightmapOperations.h ├── ohmheightmapimage/ │ ├── CMakeLists.txt │ ├── HeightmapImage.cpp │ ├── HeightmapImage.h │ └── OhmHeightmapImageConfig.in.h ├── ohmtools/ │ ├── CMakeLists.txt │ ├── OhmCloud.cpp │ ├── OhmCloud.h │ ├── OhmGen.cpp │ ├── OhmGen.h │ └── OhmToolsConfig.in.h ├── ohmutil/ │ ├── 3rdparty/ │ │ ├── cxxopts/ │ │ │ └── cxxopts.hpp │ │ └── ska/ │ │ ├── bytell_hash_map.hpp │ │ ├── flat_hash_map.hpp │ │ ├── ska_sort.hpp │ │ └── unordered_map.hpp │ ├── CMakeLists.txt │ ├── Colour.cpp │ ├── Colour.h │ ├── GlmStream.h │ ├── OhmUtilConfig.in.h │ ├── Options.h │ ├── PlyMesh.cpp │ ├── PlyMesh.h │ ├── PlyPointStream.cpp │ ├── PlyPointStream.h │ ├── Profile.cpp │ ├── Profile.h │ ├── ProfileMarker.cpp │ ├── ProfileMarker.h │ ├── ProgressMonitor.cpp │ ├── ProgressMonitor.h │ ├── SafeIO.cpp │ ├── SafeIO.h │ ├── ScopedTimeDisplay.cpp │ ├── ScopedTimeDisplay.h │ ├── VectorHash.h │ └── p2p.h ├── package.xml ├── readme.md ├── scripts/ │ ├── ohm-parse-timing.py │ ├── ohm-timing-run.py │ └── setup.cfg ├── slamio/ │ ├── CMakeLists.txt │ ├── DataChannel.h │ ├── PointCloudReader.cpp │ ├── PointCloudReader.h │ ├── PointCloudReaderPdal.cpp │ ├── PointCloudReaderPdal.h │ ├── PointCloudReaderPly.cpp │ ├── PointCloudReaderPly.h │ ├── PointCloudReaderTraj.cpp │ ├── PointCloudReaderTraj.h │ ├── PointCloudReaderXyz.cpp │ ├── PointCloudReaderXyz.h │ ├── Points.cpp │ ├── Points.h │ ├── SlamCloudLoader.cpp │ ├── SlamCloudLoader.h │ ├── SlamIO.cpp │ ├── SlamIO.h │ ├── SlamIOConfig.in.h │ ├── pdal/ │ │ ├── PointStream.cpp │ │ └── PointStream.h │ └── rply/ │ ├── LICENSE │ ├── rply.c │ ├── rply.h │ └── rplyfile.h ├── tests/ │ ├── CMakeLists.txt │ ├── data/ │ │ ├── CMakeLists.txt │ │ ├── readme.md │ │ ├── test-map.0.1.0.ohm │ │ ├── test-map.0.2.0.ohm │ │ ├── test-map.0.3.0.ohm │ │ ├── test-map.0.4.0.ohm │ │ └── test-map.0.ohm │ ├── gputiltest/ │ │ ├── CMakeLists.txt │ │ ├── GpuBufferTest.cpp │ │ ├── GpuDeviceTest.cpp │ │ ├── KernelTest.cpp │ │ ├── TestMain.cpp │ │ ├── cuda/ │ │ │ └── matrix_kernel.cu │ │ └── matrix.cl │ ├── ohmtest/ │ │ ├── CMakeLists.txt │ │ ├── CompressionTests.cpp │ │ ├── CopyTests.cpp │ │ ├── IncidentsTests.cpp │ │ ├── KeyTests.cpp │ │ ├── LayoutTests.cpp │ │ ├── LineQueryTests.cpp │ │ ├── LineWalkTests.cpp │ │ ├── MapTests.cpp │ │ ├── MathsTests.cpp │ │ ├── NdtTests.cpp │ │ ├── OhmConfig.in.h │ │ ├── OhmTestConfig.in.h │ │ ├── RayPatternTests.cpp │ │ ├── RayValidation.cpp │ │ ├── RayValidation.h │ │ ├── RaysQueryTests.cpp │ │ ├── SecondarySampleTests.cpp │ │ ├── SerialisationTests.cpp │ │ ├── TestMain.cpp │ │ ├── TouchTimeTests.cpp │ │ ├── TraversalTests.cpp │ │ ├── TsdfTests.cpp │ │ └── VoxelMeanTests.cpp │ ├── ohmtestcommon/ │ │ ├── CMakeLists.txt │ │ ├── CovarianceTestUtil.cpp │ │ ├── CovarianceTestUtil.h │ │ ├── OhmTestUtil.cpp │ │ ├── OhmTestUtil.h │ │ ├── RayPatternTestUtil.h │ │ ├── TraversalTest.cpp │ │ ├── TraversalTest.h │ │ ├── WalkSegmentKeysLegacy.cpp │ │ └── WalkSegmentKeysLegacy.h │ ├── ohmtestgpu/ │ │ ├── CMakeLists.txt │ │ ├── GpuCopyTests.cpp │ │ ├── GpuIncidentsTests.cpp │ │ ├── GpuLineKeysTests.cpp │ │ ├── GpuLineQueryTests.cpp │ │ ├── GpuMapTest.cpp │ │ ├── GpuMapperTests.cpp │ │ ├── GpuNdtTests.cpp │ │ ├── GpuRangesTests.cpp │ │ ├── GpuRayPatternTests.cpp │ │ ├── GpuRaysQueryTests.cpp │ │ ├── GpuSerialisationTests.cpp │ │ ├── GpuTestMain.cpp │ │ ├── GpuTests.cpp │ │ ├── GpuTouchTimeTests.cpp │ │ ├── GpuTraversalTests.cpp │ │ ├── GpuTsdfTests.cpp │ │ └── GpuVoxelMeanTests.cpp │ ├── ohmtestheightmap/ │ │ ├── CMakeLists.txt │ │ └── HeightmapTests.cpp │ └── slamiotest/ │ ├── CMakeLists.txt │ ├── Loader.cpp │ └── SlamCloudLoader.cpp ├── todo.md ├── utils/ │ ├── CMakeLists.txt │ ├── ohm2ply/ │ │ ├── CMakeLists.txt │ │ └── ohm2ply.cpp │ ├── ohmcmp/ │ │ ├── CMakeLists.txt │ │ └── ohmcmp.cpp │ ├── ohmfilter/ │ │ ├── CMakeLists.txt │ │ └── ohmfilter.cpp │ ├── ohmheightmap/ │ │ ├── CMakeLists.txt │ │ └── ohmheightmap.cpp │ ├── ohmhm2img/ │ │ ├── CMakeLists.txt │ │ └── ohmhm2img.cpp │ ├── ohminfo/ │ │ ├── CMakeLists.txt │ │ └── ohminfo.cpp │ ├── ohmpop/ │ │ ├── CMakeLists.txt │ │ ├── OhmPopConfig.in.h │ │ ├── ohmpopmaincpu.cpp │ │ └── ohmpopmaingpu.cpp │ ├── ohmprob/ │ │ ├── CMakeLists.txt │ │ └── ohmprob.cpp │ ├── ohmquery/ │ │ ├── CMakeLists.txt │ │ ├── OhmQueryConfig.in.h │ │ └── ohmquery.cpp │ └── ohmsubmap/ │ ├── CMakeLists.txt │ └── ohmsubmap.cpp └── vcpkg.json