33 lines
839 B
GDScript
33 lines
839 B
GDScript
extends Control
|
|
class_name FunctionPlotter
|
|
|
|
var function: Function
|
|
var x_domain: Dictionary
|
|
var y_domain: Dictionary
|
|
|
|
func _init(function: Function) -> void:
|
|
self.function = function
|
|
|
|
func _ready() -> void:
|
|
set_process_input(get_chart_properties().interactive)
|
|
|
|
func update_values(x_domain: Dictionary, y_domain: Dictionary) -> void:
|
|
self.visible = self.function.get_visibility()
|
|
if not self.function.get_visibility():
|
|
return
|
|
self.x_domain = x_domain
|
|
self.y_domain = y_domain
|
|
queue_redraw()
|
|
|
|
func _draw() -> void:
|
|
return
|
|
|
|
func get_box() -> Rect2:
|
|
return get_parent().get_parent().get_plot_box()
|
|
|
|
func get_chart_properties() -> ChartProperties:
|
|
return get_parent().get_parent().chart_properties
|
|
|
|
func get_relative_position(position: Vector2) -> Vector2:
|
|
return position - global_position
|