diff --git a/Poisson.gd b/Poisson.gd index f2f01f8..fe47ae9 100644 --- a/Poisson.gd +++ b/Poisson.gd @@ -11,13 +11,13 @@ var data = { } var poisson_disc_sampling: PoissonDiscSampling = PoissonDiscSampling.new() -var points = [] +var points = PoolByteArray() +var poissons = [] signal new_poisson(points) func _ready(): reset_options(default_width, default_height, default_spacing) - pass func reset_options(width, height, spacing): $HBoxContainer/Properties/width/width_edit.text = str(width) @@ -29,6 +29,10 @@ func set_data(width, height, spacing): data.height = height data.spacing = spacing +func init_points(): + points.resize(data.width * data.height) + points.fill(0) + func _on_Button_pressed(): set_data( int($HBoxContainer/Properties/width/width_edit.text), @@ -36,8 +40,14 @@ func _on_Button_pressed(): int($HBoxContainer/Properties/spacing/spacing_edit.text) ) + init_points() + var rect = Rect2(Vector2(0, 0), Vector2(data.width, data.height)) - points = poisson_disc_sampling.generate_points(data.spacing, rect, 20) + poissons = poisson_disc_sampling.generate_points(data.spacing, rect, 20) + + for poisson in poissons: + points.set(int(poisson.x) + int(poisson.y) * data.width, 1) + emit_signal("new_poisson", points) diff --git a/Previsualisation.gd b/Previsualisation.gd index 0b6bf1d..443084a 100644 --- a/Previsualisation.gd +++ b/Previsualisation.gd @@ -3,13 +3,15 @@ extends TextureRect var image func create_image(points): + var width = get_parent().get_parent().data.width + var height = get_parent().get_parent().data.height image = Image.new() - image.create(get_parent().get_parent().data.width, get_parent().get_parent().data.height, false, Image.FORMAT_RGBA8) + image.create(width, height, false, Image.FORMAT_RGBA8) image.fill(Color.white) image.lock() - for point in points: - image.set_pixel(point.x, point.y, Color.black) - + for i in width * height: + if(points[i]): + image.set_pixel(i % width, i / height, Color.black) image.unlock() func update_texture():