Download extensions/CUBVH/src/bindings.cpp from VAST-AI/AniGen: direct link, hf CLI and curl.
- Browser
- Download file 2.56 kB
-
https://huggingface.co/spaces/VAST-AI/AniGen/resolve/main/extensions/CUBVH/src/bindings.cpp
- Command line
-
hf download hf://spaces/VAST-AI/AniGen/extensions/CUBVH/src/bindings.cpp
-
curl -L -o bindings.cpp https://huggingface.co/spaces/VAST-AI/AniGen/resolve/main/extensions/CUBVH/src/bindings.cpp
2.56 kB
| // #include <pybind11/pybind11.h> | |
| namespace py = pybind11; | |
| using namespace cubvh; | |
| PYBIND11_MODULE(TORCH_EXTENSION_NAME, m) { | |
| // CUDA API | |
| py::class_<cuBVH>(m, "cuBVH") | |
| .def("ray_trace", &cuBVH::ray_trace) | |
| .def("unsigned_distance", &cuBVH::unsigned_distance) | |
| .def("signed_distance", &cuBVH::signed_distance) | |
| .def("export_state", &cuBVH::export_state); | |
| m.def("create_cuBVH", &create_cuBVH); | |
| m.def("create_cuBVH_from_state", &create_cuBVH_from_state); | |
| m.def("build_cuBVH_state", &build_cuBVH_state); | |
| m.def("floodfill", &floodfill); | |
| m.def("sparse_marching_cubes", &sparse_marching_cubes, | |
| py::arg("coords"), py::arg("corners"), | |
| py::arg("iso"), | |
| py::arg("ensure_consistency") = false | |
| ); | |
| // GPU Hash Table bindings | |
| py::class_<cuHashTable>(m, "cuHashTable") | |
| .def("set_num_dims", &cuHashTable::set_num_dims) | |
| .def("get_num_dims", &cuHashTable::get_num_dims) | |
| .def("resize", &cuHashTable::resize) | |
| .def("prepare", &cuHashTable::prepare) | |
| .def("insert", &cuHashTable::insert, py::arg("coords")) | |
| .def("build", &cuHashTable::build, py::arg("coords")) | |
| .def("search", &cuHashTable::search, py::arg("queries")); | |
| m.def("create_cuHashTable", &create_cuHashTable); | |
| // CPU API | |
| m.def("fill_holes", &fill_holes, | |
| py::arg("vertices"), py::arg("faces"), | |
| py::arg("return_added") = false, | |
| py::arg("check_containment") = true, | |
| py::arg("eps") = 1e-6, | |
| py::arg("verbose") = false | |
| ); | |
| m.def("merge_vertices", &merge_vertices, | |
| py::arg("vertices"), py::arg("faces"), | |
| py::arg("threshold") | |
| ); | |
| m.def("sparse_marching_cubes_cpu", &sparse_marching_cubes_cpu, | |
| py::arg("coords"), py::arg("corners"), | |
| py::arg("iso"), | |
| py::arg("ensure_consistency") = false | |
| ); | |
| // CPU decimator | |
| m.def("decimate", &decimate, | |
| py::arg("vertices"), py::arg("faces"), | |
| py::arg("target_vertices") | |
| ); | |
| m.def("parallel_decimate", ¶llel_decimate, | |
| py::arg("vertices"), py::arg("faces"), | |
| py::arg("target_vertices") | |
| ); | |
| // CPU Hash Table bindings | |
| py::class_<HashTable>(m, "HashTable") | |
| .def(py::init<>()) | |
| .def("set_num_dims", &HashTable::set_num_dims) | |
| .def("get_num_dims", &HashTable::get_num_dims) | |
| .def("resize", &HashTable::resize) | |
| .def("prepare", &HashTable::prepare) | |
| .def("insert", &HashTable::insert, py::arg("coords")) | |
| .def("build", &HashTable::build, py::arg("coords")) | |
| .def("search", &HashTable::search, py::arg("queries")); | |
| } |