OverviewFilesCommitsIssuesDocsReleasesPeers

proc-nodes / demo / island_diag.gd

31 lines · gd ref:
extends SceneTree
func _init() -> void:
	print("PositionNode exists: ", ClassDB.class_exists("PositionNode"))
	print("MathNode exists: ", ClassDB.class_exists("MathNode"))
	var g := ProcNodeGraph.new()
	var sphere := g.add_node(SphereSdfNode.new())
	g.get_node(sphere).set_input_default(1, 90.0)
	var noise := g.add_node(NoiseTextureNode.new())
	var pos_node := g.add_node(PositionNode.new())
	g.connect_sockets(pos_node, 0, noise, 0)
	var bite := g.add_node(MathNode.new())
	g.get_node(bite).set("operation", 2)
	g.connect_sockets(noise, 0, bite, 0)
	g.get_node(bite).set_input_default(1, 34.0)
	var carve := g.add_node(VolumeBooleanNode.new())
	g.get_node(carve).set("operation", 2)
	g.connect_sockets(sphere, 0, carve, 0)
	g.connect_sockets(bite, 0, carve, 1)
	var vtm := g.add_node(VolumeToMeshNode.new())
	g.connect_sockets(carve, 0, vtm, 0)
	print("node count: ", g.get_node_count(), "  vtm idx: ", vtm)
	var geo = g.evaluate_socket(vtm, 0)
	print("evaluate_socket -> ", geo)
	# And the same graph WITHOUT the noise branch, to isolate.
	var g2 := ProcNodeGraph.new()
	var s2 := g2.add_node(SphereSdfNode.new())
	var v2 := g2.add_node(VolumeToMeshNode.new())
	g2.connect_sockets(s2, 0, v2, 0)
	print("sphere-only -> ", g2.evaluate_socket(v2, 0))
	quit()