diff options
Diffstat (limited to 'scene/resources/concave_polygon_shape_2d.cpp')
-rw-r--r-- | scene/resources/concave_polygon_shape_2d.cpp | 42 |
1 files changed, 17 insertions, 25 deletions
diff --git a/scene/resources/concave_polygon_shape_2d.cpp b/scene/resources/concave_polygon_shape_2d.cpp index f3dfa8a2b3..04a69d9c8e 100644 --- a/scene/resources/concave_polygon_shape_2d.cpp +++ b/scene/resources/concave_polygon_shape_2d.cpp @@ -31,9 +31,9 @@ #include "servers/physics_2d_server.h" #include "servers/visual_server.h" -void ConcavePolygonShape2D::set_segments(const PoolVector<Vector2>& p_segments) { +void ConcavePolygonShape2D::set_segments(const PoolVector<Vector2> &p_segments) { - Physics2DServer::get_singleton()->shape_set_data(get_rid(),p_segments); + Physics2DServer::get_singleton()->shape_set_data(get_rid(), p_segments); emit_changed(); } @@ -42,55 +42,47 @@ PoolVector<Vector2> ConcavePolygonShape2D::get_segments() const { return Physics2DServer::get_singleton()->shape_get_data(get_rid()); } -void ConcavePolygonShape2D::draw(const RID& p_to_rid,const Color& p_color) { - +void ConcavePolygonShape2D::draw(const RID &p_to_rid, const Color &p_color) { PoolVector<Vector2> s = get_segments(); - int len=s.size(); - if (len==0 || (len%2)==1) + int len = s.size(); + if (len == 0 || (len % 2) == 1) return; PoolVector<Vector2>::Read r = s.read(); - for(int i=0;i<len;i+=2) { - VisualServer::get_singleton()->canvas_item_add_line(p_to_rid,r[i],r[i+1],p_color,2); + for (int i = 0; i < len; i += 2) { + VisualServer::get_singleton()->canvas_item_add_line(p_to_rid, r[i], r[i + 1], p_color, 2); } - } Rect2 ConcavePolygonShape2D::get_rect() const { - PoolVector<Vector2> s = get_segments(); - int len=s.size(); - if (len==0) + int len = s.size(); + if (len == 0) return Rect2(); Rect2 rect; PoolVector<Vector2>::Read r = s.read(); - for(int i=0;i<len;i++) { - if (i==0) - rect.pos=r[i]; + for (int i = 0; i < len; i++) { + if (i == 0) + rect.pos = r[i]; else rect.expand_to(r[i]); } return rect; - } - void ConcavePolygonShape2D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_segments","segments"),&ConcavePolygonShape2D::set_segments); - ClassDB::bind_method(D_METHOD("get_segments"),&ConcavePolygonShape2D::get_segments); - - ADD_PROPERTY( PropertyInfo(Variant::POOL_VECTOR2_ARRAY,"segments"),"set_segments","get_segments") ; + ClassDB::bind_method(D_METHOD("set_segments", "segments"), &ConcavePolygonShape2D::set_segments); + ClassDB::bind_method(D_METHOD("get_segments"), &ConcavePolygonShape2D::get_segments); + ADD_PROPERTY(PropertyInfo(Variant::POOL_VECTOR2_ARRAY, "segments"), "set_segments", "get_segments"); } -ConcavePolygonShape2D::ConcavePolygonShape2D() : Shape2D( Physics2DServer::get_singleton()->shape_create(Physics2DServer::SHAPE_CONCAVE_POLYGON)) { - +ConcavePolygonShape2D::ConcavePolygonShape2D() + : Shape2D(Physics2DServer::get_singleton()->shape_create(Physics2DServer::SHAPE_CONCAVE_POLYGON)) { } - - |