35 lines
800 B
GDScript
35 lines
800 B
GDScript
extends MeshInstance3D
|
|
|
|
var pointcloud = PointCloud.new()
|
|
var visualize_again = false
|
|
|
|
func _ready():
|
|
pointcloud.subscribe("/map/pointcloud_map", true)
|
|
|
|
func _process(_delta):
|
|
if not (pointcloud.has_new() or visualize_again):
|
|
return
|
|
var arr = []
|
|
arr.resize(Mesh.ARRAY_MAX)
|
|
var verts = PackedVector3Array()
|
|
# var uvs = PoolVector2Array()
|
|
# var normals = PoolVector3Array()
|
|
# var indices = PoolIntArray()
|
|
|
|
verts = pointcloud.get_pointcloud("map")
|
|
|
|
arr[Mesh.ARRAY_VERTEX] = verts
|
|
# arr[Mesh.ARRAY_TEX_UV] = uvs
|
|
mesh.clear_surfaces()
|
|
mesh.add_surface_from_arrays(Mesh.PRIMITIVE_POINTS, arr)
|
|
visualize_again = false
|
|
pointcloud.set_old()
|
|
|
|
func _on_CheckButton_toggled(button_pressed):
|
|
|
|
visible = button_pressed
|
|
if not visible:
|
|
mesh.clear_surfaces()
|
|
elif visible:
|
|
visualize_again = true
|