diff --git a/tdcgal/plane/plane.cpp b/tdcgal/plane/plane.cpp index 3a4c94d..7d2e1cb 100644 --- a/tdcgal/plane/plane.cpp +++ b/tdcgal/plane/plane.cpp @@ -16,8 +16,10 @@ typedef Kernel::Ray_2 Ray_2; typedef Kernel::Line_2 Line_2; typedef Kernel::Circle_2 Circle_2; typedef Kernel::Triangle_2 Triangle_2; +typedef Kernel::Bbox_2 Bbox_2; typedef Kernel::FT FT; typedef Kernel::RT RT; +typedef Kernel::Iso_rectangle_2 Iso_rectangle_2; template FT squared_distance(const T &a, const U &b) { return CGAL::squared_distance(a, b); @@ -205,7 +207,7 @@ void init_plane(py::module_ &m) { .def("orthogonal_transform", &Circle_2::orthogonal_transform) .def("bbox", &Circle_2::bbox, "返回圆的边界框"); - py::module_(m, "Triangle_2") + py::class_(m, "Triangle_2") .def(py::init()) .def("vertex", &Triangle_2::vertex, "返回第`i % 3`个顶点, `i`是参数") .def("vertices", &Triangle_2::vertices, "返回三角形的三个顶点") @@ -231,6 +233,36 @@ void init_plane(py::module_ &m) { .def("bbox", &Triangle_2::bbox, "返回三角形的边界框") .def("transform", &Triangle_2::transform, "返回经过变换后的三角形") + py::class_(m, "Iso_rectangle_2") + .def(py::init()) + .def(py::init()) + .def(py::init()) + .def(py::init()) + .def(py::init()) + .def(py::self == py::self) + .def(py::self != py::self) + .def("vertex", &Iso_rectangle_2::vertex, "返回第`i % 4`个顶点, `i`是参数") + .def("min", &Iso_rectangle_2::min, "返回左下角顶点") + .def("max", &Iso_rectangle_2::max, "返回右上角顶点") + .def("xmin", &Iso_rectangle_2::xmin, "返回左下角顶点的x坐标") + .def("ymin", &Iso_rectangle_2::ymin, "返回左下角顶点的y坐标") + .def("xmax", &Iso_rectangle_2::xmax, "返回右上角顶点的x坐标") + .def("ymax", &Iso_rectangle_2::ymax, "返回右上角顶点的y坐标") + .def("min_coord", &Iso_rectangle_2::min_coord, "返回左下角顶点的坐标") + .def("max_coord", &Iso_rectangle_2::max_coord, "返回右上角顶点的坐标") + .def("is_degenerate", &Iso_rectangle_2::is_degenerate, "判断矩形是否退化") + .def("bounded_side", &Iso_rectangle_2::bounded_side, "判断点和矩形的边界位置关系") + .def("has_on_bounded_side", &Iso_rectangle_2::has_on_bounded_side, + "判断点是否在矩形的边界上") + .def("has_on_unbounded_side", &Iso_rectangle_2::has_on_unbounded_side, + "判断点是否在矩形的内部") + .def("has_on_boundary", &Iso_rectangle_2::has_on_boundary, + "判断点是否在矩形的边界上") + .def("bbox", &Iso_rectangle_2::bbox, "返回矩形的边界框") + .def("area", &Iso_rectangle_2::area, "返回矩形的面积") + .def("transform", &Iso_rectangle_2::transform, "返回经过变换后的矩形"); + + m.def("squared_distance", &squared_distance, "返回两个点的平方距离"); m.def("squared_distance", &squared_distance,