|
@@ -709,6 +709,17 @@ Vector<Point2> Geometry2D::convex_hull(const Vector<Point2> &p_points) {
|
|
|
return ::Geometry2D::convex_hull(p_points);
|
|
|
}
|
|
|
|
|
|
+TypedArray<PackedVector2Array> Geometry2D::decompose_polygon_in_convex(const Vector<Vector2> &p_polygon) {
|
|
|
+ Vector<Vector<Point2>> decomp = ::Geometry2D::decompose_polygon_in_convex(p_polygon);
|
|
|
+
|
|
|
+ TypedArray<PackedVector2Array> ret;
|
|
|
+
|
|
|
+ for (int i = 0; i < decomp.size(); ++i) {
|
|
|
+ ret.push_back(decomp[i]);
|
|
|
+ }
|
|
|
+ return ret;
|
|
|
+}
|
|
|
+
|
|
|
TypedArray<PackedVector2Array> Geometry2D::merge_polygons(const Vector<Vector2> &p_polygon_a, const Vector<Vector2> &p_polygon_b) {
|
|
|
Vector<Vector<Point2>> polys = ::Geometry2D::merge_polygons(p_polygon_a, p_polygon_b);
|
|
|
|
|
@@ -840,6 +851,7 @@ void Geometry2D::_bind_methods() {
|
|
|
ClassDB::bind_method(D_METHOD("triangulate_polygon", "polygon"), &Geometry2D::triangulate_polygon);
|
|
|
ClassDB::bind_method(D_METHOD("triangulate_delaunay", "points"), &Geometry2D::triangulate_delaunay);
|
|
|
ClassDB::bind_method(D_METHOD("convex_hull", "points"), &Geometry2D::convex_hull);
|
|
|
+ ClassDB::bind_method(D_METHOD("decompose_polygon_in_convex", "polygon"), &Geometry2D::decompose_polygon_in_convex);
|
|
|
|
|
|
ClassDB::bind_method(D_METHOD("merge_polygons", "polygon_a", "polygon_b"), &Geometry2D::merge_polygons);
|
|
|
ClassDB::bind_method(D_METHOD("clip_polygons", "polygon_a", "polygon_b"), &Geometry2D::clip_polygons);
|