Merge pull request #66096 from 4d49/decompose-polygon-in-convex
Add method bind for `Geometry2D.decompose_polygon_in_convex`
This commit is contained in:
commit
85a46d36b5
3 changed files with 20 additions and 0 deletions
|
@ -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);
|
||||
|
|
|
@ -289,6 +289,7 @@ public:
|
|||
Vector<int> triangulate_polygon(const Vector<Vector2> &p_polygon);
|
||||
Vector<int> triangulate_delaunay(const Vector<Vector2> &p_points);
|
||||
Vector<Point2> convex_hull(const Vector<Point2> &p_points);
|
||||
TypedArray<PackedVector2Array> decompose_polygon_in_convex(const Vector<Vector2> &p_polygon);
|
||||
|
||||
enum PolyBooleanOperation {
|
||||
OPERATION_UNION,
|
||||
|
|
|
@ -33,6 +33,13 @@
|
|||
Given an array of [Vector2]s, returns the convex hull as a list of points in counterclockwise order. The last point is the same as the first one.
|
||||
</description>
|
||||
</method>
|
||||
<method name="decompose_polygon_in_convex">
|
||||
<return type="PackedVector2Array[]" />
|
||||
<param index="0" name="polygon" type="PackedVector2Array" />
|
||||
<description>
|
||||
Decomposes the [param polygon] into multiple convex hulls and returns an array of [PackedVector2Array].
|
||||
</description>
|
||||
</method>
|
||||
<method name="exclude_polygons">
|
||||
<return type="PackedVector2Array[]" />
|
||||
<param index="0" name="polygon_a" type="PackedVector2Array" />
|
||||
|
|
Loading…
Reference in a new issue