2022-01-02 03:09:18 +01:00
tool
extends ImmediateGeometry
class_name SummerDayInteractionHint
var canvas_state : SummerDayCanvasState # Provided through Canvas.
func draw_dot ( position : Vector3 , color : Color ) :
2022-01-02 16:42:55 +01:00
var transformation = SummerDay . canvas_state . clip_space_view_transform
var transformed_position = transformation . xform ( position )
2022-01-02 03:09:18 +01:00
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 ) :
2022-01-02 16:42:55 +01:00
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 )
2022-01-02 03:09:18 +01:00
begin ( Mesh . PRIMITIVE_LINES )
set_color ( color )
add_vertex ( transformed_position_1 )
add_vertex ( transformed_position_2 )
end ( )