You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
societer_utils/addons/PoissonDiscSampling/Demo/PolygonTester.gd

32 lines
769 B

extends Node2D
onready var polygon: Array = $Polygon2D.polygon
onready var n = polygon.size()
var radius: int = 20
var k: int = 0
var points := []
func _draw() -> void:
for i in n:
draw_line(polygon[i], polygon[(i+1)%n], Color(1,1,0), 2, 1)
draw_circle(points[k], radius / 2, Color( 1, 0, 0, 1 ))
draw_circle(points[k], 2, Color( 1, 1, 0, 1 ))
func _ready() -> void:
var pds = PoissonDiscSampling.new()
var start_time = OS.get_ticks_msec()
points = pds.generate_points(radius, $Polygon2D.polygon, 30)
print(points.size(), " points generated in ", OS.get_ticks_msec() - start_time, " miliseconds" )
get_viewport().render_target_clear_mode = Viewport.UPDATE_ONCE
func _process(delta: float) -> void:
if k < points.size() - 1:
update()
k += 1