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()