gitextract_n08c_ker/ ├── .clang-format ├── .gersemirc ├── .git-blame-ignore-revs ├── .gitattributes ├── .github/ │ ├── dependabot.yml │ └── workflows/ │ ├── check-changelog.yml │ ├── dockgen.yml │ ├── macos-linux-pip.yml │ ├── macos-linux-windows-pixi.yml │ ├── nix.yml │ ├── ros_ci.yml │ ├── update-flake-lock.yml │ └── update_pixi_lockfile.yml ├── .gitignore ├── .gitlab-ci.yml ├── .gitmodules ├── .pre-commit-config.yaml ├── CHANGELOG.md ├── CITATION.bib ├── CITATION.cff ├── CMakeLists.txt ├── LICENSE ├── README.md ├── colcon.pkg ├── development/ │ ├── build.md │ ├── release.md │ └── scripts/ │ └── pixi/ │ ├── activation.bat │ └── activation.sh ├── doc/ │ ├── CMakeLists.txt │ ├── Doxyfile.extra.in │ ├── generate_distance_plot.py │ ├── gjk.py │ ├── mesh-mesh-collision-call.dot │ ├── notes │ ├── python/ │ │ ├── doxygen-boost.hh │ │ ├── doxygen.hh │ │ ├── doxygen_xml_parser.py │ │ └── xml_docstring.py │ ├── shape-mesh-collision-call.dot │ └── shape-shape-collision-call.dot ├── dockgen.toml ├── flake.nix ├── hpp-fclConfig.cmake ├── include/ │ ├── coal/ │ │ ├── BV/ │ │ │ ├── AABB.h │ │ │ ├── BV.h │ │ │ ├── BV_node.h │ │ │ ├── OBB.h │ │ │ ├── OBBRSS.h │ │ │ ├── RSS.h │ │ │ ├── kDOP.h │ │ │ └── kIOS.h │ │ ├── BVH/ │ │ │ ├── BVH_front.h │ │ │ ├── BVH_internal.h │ │ │ ├── BVH_model.h │ │ │ └── BVH_utility.h │ │ ├── alloca.h │ │ ├── broadphase/ │ │ │ ├── broadphase.h │ │ │ ├── broadphase_SSaP.h │ │ │ ├── broadphase_SaP.h │ │ │ ├── broadphase_bruteforce.h │ │ │ ├── broadphase_callbacks.h │ │ │ ├── broadphase_collision_manager.h │ │ │ ├── broadphase_continuous_collision_manager-inl.h │ │ │ ├── broadphase_continuous_collision_manager.h │ │ │ ├── broadphase_dynamic_AABB_tree-inl.h │ │ │ ├── broadphase_dynamic_AABB_tree.h │ │ │ ├── broadphase_dynamic_AABB_tree_array-inl.h │ │ │ ├── broadphase_dynamic_AABB_tree_array.h │ │ │ ├── broadphase_interval_tree.h │ │ │ ├── broadphase_spatialhash-inl.h │ │ │ ├── broadphase_spatialhash.h │ │ │ ├── default_broadphase_callbacks.h │ │ │ └── detail/ │ │ │ ├── hierarchy_tree-inl.h │ │ │ ├── hierarchy_tree.h │ │ │ ├── hierarchy_tree_array-inl.h │ │ │ ├── hierarchy_tree_array.h │ │ │ ├── interval_tree.h │ │ │ ├── interval_tree_node-inl.h │ │ │ ├── interval_tree_node.h │ │ │ ├── morton-inl.h │ │ │ ├── morton.h │ │ │ ├── node_base-inl.h │ │ │ ├── node_base.h │ │ │ ├── node_base_array-inl.h │ │ │ ├── node_base_array.h │ │ │ ├── simple_hash_table-inl.h │ │ │ ├── simple_hash_table.h │ │ │ ├── simple_interval-inl.h │ │ │ ├── simple_interval.h │ │ │ ├── sparse_hash_table-inl.h │ │ │ ├── sparse_hash_table.h │ │ │ ├── spatial_hash-inl.h │ │ │ └── spatial_hash.h │ │ ├── collision.h │ │ ├── collision_data.h │ │ ├── collision_func_matrix.h │ │ ├── collision_object.h │ │ ├── collision_utility.h │ │ ├── contact_patch/ │ │ │ ├── contact_patch_simplifier.h │ │ │ ├── contact_patch_solver.h │ │ │ ├── contact_patch_solver.hxx │ │ │ └── polygon_convex_hull.h │ │ ├── contact_patch.h │ │ ├── contact_patch_func_matrix.h │ │ ├── data_types.h │ │ ├── distance.h │ │ ├── distance_func_matrix.h │ │ ├── doc.hh │ │ ├── fwd.hh │ │ ├── hfield.h │ │ ├── internal/ │ │ │ ├── BV_fitter.h │ │ │ ├── BV_splitter.h │ │ │ ├── intersect.h │ │ │ ├── intersect.hxx │ │ │ ├── shape_shape_contact_patch_func.h │ │ │ ├── shape_shape_func.h │ │ │ ├── tools.h │ │ │ ├── traversal.h │ │ │ ├── traversal_node_base.h │ │ │ ├── traversal_node_bvh_hfield.h │ │ │ ├── traversal_node_bvh_shape.h │ │ │ ├── traversal_node_bvhs.h │ │ │ ├── traversal_node_hfield_shape.h │ │ │ ├── traversal_node_octree.h │ │ │ ├── traversal_node_setup.h │ │ │ ├── traversal_node_shapes.h │ │ │ └── traversal_recurse.h │ │ ├── logging.h │ │ ├── math/ │ │ │ ├── matrix_3f.h │ │ │ ├── transform.h │ │ │ ├── types.h │ │ │ └── vec_3f.h │ │ ├── mesh_loader/ │ │ │ ├── assimp.h │ │ │ └── loader.h │ │ ├── narrowphase/ │ │ │ ├── gjk.h │ │ │ ├── minkowski_difference.h │ │ │ ├── narrowphase.h │ │ │ ├── narrowphase_defaults.h │ │ │ ├── support_data.h │ │ │ └── support_functions.h │ │ ├── octree.h │ │ ├── serialization/ │ │ │ ├── AABB.h │ │ │ ├── BVH_model.h │ │ │ ├── BV_node.h │ │ │ ├── BV_splitter.h │ │ │ ├── OBB.h │ │ │ ├── OBBRSS.h │ │ │ ├── RSS.h │ │ │ ├── archive.h │ │ │ ├── collision_data.h │ │ │ ├── collision_object.h │ │ │ ├── contact_patch.h │ │ │ ├── convex.h │ │ │ ├── eigen.h │ │ │ ├── fwd.h │ │ │ ├── geometric_shapes.h │ │ │ ├── hfield.h │ │ │ ├── kDOP.h │ │ │ ├── kIOS.h │ │ │ ├── memory.h │ │ │ ├── octree.h │ │ │ ├── quadrilateral.h │ │ │ ├── serializer.h │ │ │ ├── transform.h │ │ │ └── triangle.h │ │ ├── shape/ │ │ │ ├── convex.h │ │ │ ├── convex.hxx │ │ │ ├── geometric_shape_to_BVH_model.h │ │ │ ├── geometric_shapes.h │ │ │ ├── geometric_shapes.hxx │ │ │ ├── geometric_shapes_traits.h │ │ │ └── geometric_shapes_utility.h │ │ ├── shared_ptr_comparison.h │ │ ├── third_party/ │ │ │ └── boost/ │ │ │ └── core/ │ │ │ ├── data.hpp │ │ │ ├── detail/ │ │ │ │ └── assert.hpp │ │ │ ├── make_span.hpp │ │ │ └── span.hpp │ │ └── timings.h │ └── hpp/ │ └── fcl/ │ ├── BV/ │ │ ├── AABB.h │ │ ├── BV.h │ │ ├── BV_node.h │ │ ├── OBB.h │ │ ├── OBBRSS.h │ │ ├── RSS.h │ │ ├── kDOP.h │ │ └── kIOS.h │ ├── BVH/ │ │ ├── BVH_front.h │ │ ├── BVH_internal.h │ │ ├── BVH_model.h │ │ └── BVH_utility.h │ ├── broadphase/ │ │ ├── broadphase.h │ │ ├── broadphase_SSaP.h │ │ ├── broadphase_SaP.h │ │ ├── broadphase_bruteforce.h │ │ ├── broadphase_callbacks.h │ │ ├── broadphase_collision_manager.h │ │ ├── broadphase_continuous_collision_manager-inl.h │ │ ├── broadphase_continuous_collision_manager.h │ │ ├── broadphase_dynamic_AABB_tree-inl.h │ │ ├── broadphase_dynamic_AABB_tree.h │ │ ├── broadphase_dynamic_AABB_tree_array-inl.h │ │ ├── broadphase_dynamic_AABB_tree_array.h │ │ ├── broadphase_interval_tree.h │ │ ├── broadphase_spatialhash-inl.h │ │ ├── broadphase_spatialhash.h │ │ ├── default_broadphase_callbacks.h │ │ └── detail/ │ │ ├── hierarchy_tree-inl.h │ │ ├── hierarchy_tree.h │ │ ├── hierarchy_tree_array-inl.h │ │ ├── hierarchy_tree_array.h │ │ ├── interval_tree.h │ │ ├── interval_tree_node.h │ │ ├── morton-inl.h │ │ ├── morton.h │ │ ├── node_base-inl.h │ │ ├── node_base.h │ │ ├── node_base_array-inl.h │ │ ├── node_base_array.h │ │ ├── simple_hash_table-inl.h │ │ ├── simple_hash_table.h │ │ ├── simple_interval-inl.h │ │ ├── simple_interval.h │ │ ├── sparse_hash_table-inl.h │ │ ├── sparse_hash_table.h │ │ ├── spatial_hash-inl.h │ │ └── spatial_hash.h │ ├── coal.hpp │ ├── collision.h │ ├── collision_data.h │ ├── collision_func_matrix.h │ ├── collision_object.h │ ├── collision_utility.h │ ├── config.hh │ ├── contact_patch/ │ │ ├── contact_patch_solver.h │ │ └── contact_patch_solver.hxx │ ├── contact_patch.h │ ├── contact_patch_func_matrix.h │ ├── data_types.h │ ├── deprecated.hh │ ├── distance.h │ ├── distance_func_matrix.h │ ├── fwd.hh │ ├── hfield.h │ ├── internal/ │ │ ├── BV_fitter.h │ │ ├── BV_splitter.h │ │ ├── intersect.h │ │ ├── shape_shape_contact_patch_func.h │ │ ├── shape_shape_func.h │ │ ├── tools.h │ │ ├── traversal.h │ │ ├── traversal_node_base.h │ │ ├── traversal_node_bvh_shape.h │ │ ├── traversal_node_bvhs.h │ │ ├── traversal_node_hfield_shape.h │ │ ├── traversal_node_octree.h │ │ ├── traversal_node_setup.h │ │ ├── traversal_node_shapes.h │ │ └── traversal_recurse.h │ ├── logging.h │ ├── math/ │ │ ├── matrix_3f.h │ │ ├── transform.h │ │ ├── types.h │ │ └── vec_3f.h │ ├── mesh_loader/ │ │ ├── assimp.h │ │ └── loader.h │ ├── narrowphase/ │ │ ├── gjk.h │ │ ├── minkowski_difference.h │ │ ├── narrowphase.h │ │ ├── narrowphase_defaults.h │ │ ├── support_data.h │ │ ├── support_functions.h │ │ └── support_functions.hxx │ ├── octree.h │ ├── serialization/ │ │ ├── AABB.h │ │ ├── BVH_model.h │ │ ├── BV_node.h │ │ ├── BV_splitter.h │ │ ├── OBB.h │ │ ├── OBBRSS.h │ │ ├── RSS.h │ │ ├── archive.h │ │ ├── collision_data.h │ │ ├── collision_object.h │ │ ├── contact_patch.h │ │ ├── convex.h │ │ ├── eigen.h │ │ ├── fwd.h │ │ ├── geometric_shapes.h │ │ ├── hfield.h │ │ ├── kDOP.h │ │ ├── kIOS.h │ │ ├── memory.h │ │ ├── octree.h │ │ ├── quadrilateral.h │ │ ├── serializer.h │ │ ├── transform.h │ │ └── triangle.h │ ├── shape/ │ │ ├── convex.h │ │ ├── convex.hxx │ │ ├── geometric_shape_to_BVH_model.h │ │ ├── geometric_shapes.h │ │ ├── geometric_shapes.hxx │ │ ├── geometric_shapes_traits.h │ │ └── geometric_shapes_utility.h │ ├── timings.h │ └── warning.hh ├── package.xml ├── pixi.toml ├── python/ │ ├── CMakeLists.txt │ ├── broadphase/ │ │ ├── broadphase.cc │ │ ├── broadphase_callbacks.hh │ │ ├── broadphase_collision_manager.hh │ │ └── fwd.hh │ ├── coal/ │ │ ├── __init__.py │ │ ├── viewer.py │ │ └── windows_dll_manager.py │ ├── coal.cc │ ├── coal.hh │ ├── collision-geometries.cc │ ├── collision.cc │ ├── contact_patch.cc │ ├── deprecation.hh │ ├── distance.cc │ ├── fwd.hh │ ├── gjk.cc │ ├── hppfcl/ │ │ ├── __init__.py │ │ └── viewer.py │ ├── math.cc │ ├── octree.cc │ ├── pickle.hh │ ├── printable.hh │ ├── serializable.hh │ ├── utils/ │ │ └── std-pair.hh │ └── version.cc ├── python-nb/ │ ├── CMakeLists.txt │ ├── aabb.cc │ ├── broadphase/ │ │ ├── broadphase.cc │ │ └── broadphase_callbacks_collision_manager.hh │ ├── bvh.cc │ ├── coal/ │ │ ├── __init__.py │ │ └── windows_dll_manager.py │ ├── collision-geometries.cc │ ├── collision.cc │ ├── contact_patch.cc │ ├── distance.cc │ ├── fwd.h │ ├── gjk.cc │ ├── height_field.cc │ ├── math.cc │ ├── memory-footprint.cc │ ├── module.cc │ ├── octree.cc │ ├── pickle.hh │ ├── serializable.hh │ └── shapes.cc ├── src/ │ ├── BV/ │ │ ├── AABB.cpp │ │ ├── OBB.cpp │ │ ├── OBB.h │ │ ├── OBBRSS.cpp │ │ ├── RSS.cpp │ │ ├── kDOP.cpp │ │ └── kIOS.cpp │ ├── BVH/ │ │ ├── BVH_model.cpp │ │ ├── BVH_utility.cpp │ │ ├── BV_fitter.cpp │ │ └── BV_splitter.cpp │ ├── CMakeLists.txt │ ├── broadphase/ │ │ ├── broadphase_SSaP.cpp │ │ ├── broadphase_SaP.cpp │ │ ├── broadphase_bruteforce.cpp │ │ ├── broadphase_collision_manager.cpp │ │ ├── broadphase_dynamic_AABB_tree.cpp │ │ ├── broadphase_dynamic_AABB_tree_array.cpp │ │ ├── broadphase_interval_tree.cpp │ │ ├── default_broadphase_callbacks.cpp │ │ └── detail/ │ │ ├── interval_tree.cpp │ │ ├── interval_tree_node.cpp │ │ ├── morton-inl.h │ │ ├── morton.cpp │ │ ├── simple_interval.cpp │ │ └── spatial_hash.cpp │ ├── collision.cpp │ ├── collision_data.cpp │ ├── collision_func_matrix.cpp │ ├── collision_node.cpp │ ├── collision_node.h │ ├── collision_object.cpp │ ├── collision_utility.cpp │ ├── contact_patch/ │ │ ├── contact_patch_simplifier.cpp │ │ ├── contact_patch_solver.cpp │ │ └── polygon_convex_hull.cpp │ ├── contact_patch.cpp │ ├── contact_patch_func_matrix.cpp │ ├── distance/ │ │ ├── box_halfspace.cpp │ │ ├── box_plane.cpp │ │ ├── box_sphere.cpp │ │ ├── capsule_capsule.cpp │ │ ├── capsule_halfspace.cpp │ │ ├── capsule_plane.cpp │ │ ├── cone_halfspace.cpp │ │ ├── cone_plane.cpp │ │ ├── convex_halfspace.cpp │ │ ├── convex_plane.cpp │ │ ├── cylinder_halfspace.cpp │ │ ├── cylinder_plane.cpp │ │ ├── ellipsoid_halfspace.cpp │ │ ├── ellipsoid_plane.cpp │ │ ├── halfspace_halfspace.cpp │ │ ├── halfspace_plane.cpp │ │ ├── plane_plane.cpp │ │ ├── sphere_capsule.cpp │ │ ├── sphere_cylinder.cpp │ │ ├── sphere_halfspace.cpp │ │ ├── sphere_plane.cpp │ │ ├── sphere_sphere.cpp │ │ ├── triangle_halfspace.cpp │ │ ├── triangle_plane.cpp │ │ ├── triangle_sphere.cpp │ │ └── triangle_triangle.cpp │ ├── distance.cpp │ ├── distance_func_matrix.cpp │ ├── hfield.cpp │ ├── intersect.cpp │ ├── math/ │ │ └── transform.cpp │ ├── mesh_loader/ │ │ ├── assimp.cpp │ │ └── loader.cpp │ ├── narrowphase/ │ │ ├── details.h │ │ ├── gjk.cpp │ │ ├── minkowski_difference.cpp │ │ └── support_functions.cpp │ ├── octree.cpp │ ├── serialization/ │ │ └── serialization.cpp │ ├── shape/ │ │ ├── geometric_shapes.cpp │ │ └── geometric_shapes_utility.cpp │ ├── traits_traversal.h │ └── traversal/ │ └── traversal_recurse.cpp └── test/ ├── CMakeLists.txt ├── accelerated_gjk.cpp ├── alloca.cpp ├── benchmark/ │ └── test_fcl_gjk.output ├── benchmark.cpp ├── box_box_collision.cpp ├── box_box_distance.cpp ├── broadphase.cpp ├── broadphase_collision_1.cpp ├── broadphase_collision_2.cpp ├── broadphase_dynamic_AABB_tree.cpp ├── bvh_models.cpp ├── capsule_box_1.cpp ├── capsule_box_2.cpp ├── capsule_capsule.cpp ├── collision.cpp ├── collision_node_asserts.cpp ├── contact_patch.cpp ├── convex.cpp ├── distance.cpp ├── distance_lower_bound.cpp ├── fcl_resources/ │ ├── config.h.in │ ├── env.obj │ ├── env.octree │ ├── illformated_mesh.dae │ ├── rob.obj │ └── staircases_koroibot_hr.dae ├── frontlist.cpp ├── geometric_shapes.cpp ├── gjk-geometric-tools-benchmark ├── gjk.cpp ├── gjk_asserts.cpp ├── gjk_convergence_criterion.cpp ├── hfields.cpp ├── math.cpp ├── normal_and_nearest_points.cpp ├── obb.cpp ├── octree.cpp ├── patch_simplifier.cpp ├── pixi_build/ │ └── CMakeLists.txt ├── polygon_convex_hull.cpp ├── profiling.cpp ├── python_unit/ │ ├── CMakeLists.txt │ ├── api.py │ ├── collision.py │ ├── collision_manager.py │ ├── geometric_shapes.py │ ├── pickling.py │ └── test_case.py ├── scripts/ │ ├── collision-bench.py │ ├── collision.py │ ├── distance_lower_bound.py │ ├── geometric_shapes.py │ ├── gjk.py │ ├── obb.py │ └── octree.py ├── security_margin.cpp ├── serialization.cpp ├── shape_inflation.cpp ├── shape_mesh_consistency.cpp ├── simple.cpp ├── swept_sphere_radius.cpp ├── utility.cpp └── utility.h