| 20 | namespace py = pybind11; |
| 21 | |
| 22 | void init_CGAL(py::module &m) { |
| 23 | #if WITH_CGAL |
| 24 | using namespace PyMesh; |
| 25 | py::class_<SelfIntersection, std::shared_ptr<SelfIntersection> >(m, "SelfIntersection") |
| 26 | .def(py::init<const MatrixFr& , const MatrixIr&>()) |
| 27 | .def("detect_self_intersection", |
| 28 | &SelfIntersection::detect_self_intersection) |
| 29 | .def("clear", &SelfIntersection::clear) |
| 30 | .def("get_self_intersecting_pairs", |
| 31 | &SelfIntersection::get_self_intersecting_pairs) |
| 32 | .def("handle_intersection_candidate", |
| 33 | &SelfIntersection::handle_intersection_candidate); |
| 34 | |
| 35 | py::class_<Arrangement2, std::shared_ptr<Arrangement2> > arrangement(m, "Arrangement2"); |
| 36 | arrangement.def(py::init<>()) |
| 37 | .def_property("points", |
| 38 | &Arrangement2::get_points, |
| 39 | &Arrangement2::set_points, |
| 40 | py::return_value_policy::reference_internal) |
| 41 | .def_property("segments", |
| 42 | &Arrangement2::get_segments, |
| 43 | &Arrangement2::set_segments, |
| 44 | py::return_value_policy::reference_internal) |
| 45 | .def("run", &Arrangement2::run) |
| 46 | .def_property_readonly("vertices", |
| 47 | &Arrangement2::get_vertices, |
| 48 | py::return_value_policy::reference_internal) |
| 49 | .def_property_readonly("edges", |
| 50 | &Arrangement2::get_edges, |
| 51 | py::return_value_policy::reference_internal) |
| 52 | .def("query", &Arrangement2::query); |
| 53 | |
| 54 | py::enum_<Arrangement2::ElementType>(arrangement, "ElementType") |
| 55 | .value("POINT", Arrangement2::POINT) |
| 56 | .value("SEGMENT", Arrangement2::SEGMENT) |
| 57 | .value("CELL", Arrangement2::CELL) |
| 58 | .export_values(); |
| 59 | |
| 60 | py::class_<SnapRounding2, std::shared_ptr<SnapRounding2> >(m, "SnapRounding2") |
| 61 | .def(py::init<>()) |
| 62 | .def_property("points", |
| 63 | &SnapRounding2::get_points, |
| 64 | &SnapRounding2::set_points, |
| 65 | py::return_value_policy::reference_internal) |
| 66 | .def_property("segments", |
| 67 | &SnapRounding2::get_segments, |
| 68 | &SnapRounding2::set_segments, |
| 69 | py::return_value_policy::reference_internal) |
| 70 | .def("run", &SnapRounding2::run) |
| 71 | .def_property_readonly("vertices", |
| 72 | &SnapRounding2::get_vertices, |
| 73 | py::return_value_policy::reference_internal) |
| 74 | .def_property_readonly("edges", |
| 75 | &SnapRounding2::get_edges, |
| 76 | py::return_value_policy::reference_internal); |
| 77 | |
| 78 | py::class_<StraightSkeleton, std::shared_ptr<StraightSkeleton> >(m, "StraightSkeleton") |
| 79 | .def(py::init<>()) |
no test coverage detected