Improve visualisation of worldboundary2d editor
This commit is contained in:
parent
a586e860e5
commit
8bed36e4bb
1 changed files with 35 additions and 4 deletions
|
@ -86,10 +86,41 @@ void WorldBoundaryShape2D::draw(const RID &p_to_rid, const Color &p_color) {
|
|||
Vector2 point = distance * normal;
|
||||
real_t line_width = 3.0;
|
||||
|
||||
Vector2 l1[2] = { point - normal.orthogonal() * 100, point + normal.orthogonal() * 100 };
|
||||
RS::get_singleton()->canvas_item_add_line(p_to_rid, l1[0], l1[1], p_color, line_width);
|
||||
Vector2 l2[2] = { point + normal.normalized() * (0.5 * line_width), point + normal * 30 };
|
||||
RS::get_singleton()->canvas_item_add_line(p_to_rid, l2[0], l2[1], p_color, line_width);
|
||||
// Draw collision shape line.
|
||||
PackedVector2Array line_points = {
|
||||
point - normal.orthogonal() * 100,
|
||||
point - normal.orthogonal() * 60,
|
||||
point + normal.orthogonal() * 60,
|
||||
point + normal.orthogonal() * 100
|
||||
};
|
||||
|
||||
Color transparent_color = Color(p_color, 0);
|
||||
PackedColorArray line_colors = {
|
||||
transparent_color,
|
||||
p_color,
|
||||
p_color,
|
||||
transparent_color
|
||||
};
|
||||
|
||||
RS::get_singleton()->canvas_item_add_polyline(p_to_rid, line_points, line_colors, line_width);
|
||||
|
||||
// Draw arrow.
|
||||
Color arrow_color = p_color.inverted();
|
||||
|
||||
Transform2D xf;
|
||||
xf.rotate(normal.angle());
|
||||
|
||||
Vector<Vector2> arrow_points = {
|
||||
xf.xform(Vector2(distance + line_width / 2, -2.5)),
|
||||
xf.xform(Vector2(distance + 20, -2.5)),
|
||||
xf.xform(Vector2(distance + 20, -10)),
|
||||
xf.xform(Vector2(distance + 40, 0)),
|
||||
xf.xform(Vector2(distance + 20, 10)),
|
||||
xf.xform(Vector2(distance + 20, 2.5)),
|
||||
xf.xform(Vector2(distance + line_width / 2, 2.5)),
|
||||
};
|
||||
|
||||
RS::get_singleton()->canvas_item_add_polyline(p_to_rid, arrow_points, { arrow_color }, line_width / 2);
|
||||
}
|
||||
|
||||
Rect2 WorldBoundaryShape2D::get_rect() const {
|
||||
|
|
Loading…
Reference in a new issue