passage en octets

pull/4/head
Valentin Stark 3 years ago
parent 2d1ba7b5e3
commit e5b3e2f9ec
  1. 16
      Poisson.gd
  2. 10
      Previsualisation.gd

@ -11,13 +11,13 @@ var data = {
} }
var poisson_disc_sampling: PoissonDiscSampling = PoissonDiscSampling.new() var poisson_disc_sampling: PoissonDiscSampling = PoissonDiscSampling.new()
var points = [] var points = PoolByteArray()
var poissons = []
signal new_poisson(points) signal new_poisson(points)
func _ready(): func _ready():
reset_options(default_width, default_height, default_spacing) reset_options(default_width, default_height, default_spacing)
pass
func reset_options(width, height, spacing): func reset_options(width, height, spacing):
$HBoxContainer/Properties/width/width_edit.text = str(width) $HBoxContainer/Properties/width/width_edit.text = str(width)
@ -29,6 +29,10 @@ func set_data(width, height, spacing):
data.height = height data.height = height
data.spacing = spacing data.spacing = spacing
func init_points():
points.resize(data.width * data.height)
points.fill(0)
func _on_Button_pressed(): func _on_Button_pressed():
set_data( set_data(
int($HBoxContainer/Properties/width/width_edit.text), int($HBoxContainer/Properties/width/width_edit.text),
@ -36,8 +40,14 @@ func _on_Button_pressed():
int($HBoxContainer/Properties/spacing/spacing_edit.text) int($HBoxContainer/Properties/spacing/spacing_edit.text)
) )
init_points()
var rect = Rect2(Vector2(0, 0), Vector2(data.width, data.height)) 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) emit_signal("new_poisson", points)

@ -3,13 +3,15 @@ extends TextureRect
var image var image
func create_image(points): func create_image(points):
var width = get_parent().get_parent().data.width
var height = get_parent().get_parent().data.height
image = Image.new() 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.fill(Color.white)
image.lock() image.lock()
for point in points: for i in width * height:
image.set_pixel(point.x, point.y, Color.black) if(points[i]):
image.set_pixel(i % width, i / height, Color.black)
image.unlock() image.unlock()
func update_texture(): func update_texture():

Loading…
Cancel
Save