tool extends ImmediateGeometry class_name SummerDayInteractionHint var canvas_state: SummerDayCanvasState # Provided through Canvas. func draw_dot(position: Vector3, color: Color): var transformation = SummerDay.canvas_state.clip_space_view_transform var transformed_position = transformation.xform(position) var radius = 3.0 var vertex_count = 12.0 begin(Mesh.PRIMITIVE_TRIANGLE_FAN) set_color(color) for i in range(vertex_count): var weight = i / vertex_count var offset = Vector3(sin(weight * TAU), cos(weight * TAU), 0.0) add_vertex(transformed_position + offset) end() func draw_line(position_1: Vector3, position_2: Vector3, color: Color): var transformation = SummerDay.canvas_state.clip_space_view_transform var transformed_position_1 = transformation.xform(position_1) var transformed_position_2 = transformation.xform(position_2) begin(Mesh.PRIMITIVE_LINES) set_color(color) add_vertex(transformed_position_1) add_vertex(transformed_position_2) end()