ball_radius = 20
ball_spacing = 60
shaft_radius = 14
shaft_length = 120
dome_radius = shaft_radius + 1
shaft_offset_factor = 0.5

scale_ball_radius = 3
scale_factor = scale_ball_radius / ball_radius

function round(n)
	return math.floor(n + 0.499)
end

ball_radius = round(ball_radius * scale_factor)
ball_spacing = round(ball_spacing * scale_factor)
shaft_radius = round(shaft_radius * scale_factor)
shaft_length = round(shaft_length * scale_factor)
shaft_offset = round(shaft_radius * shaft_offset_factor)
dome_radius = shaft_radius + 1

print("ball_radius " .. ball_radius)
print("ball_spacing " .. ball_spacing)
print("shaft_radius " .. shaft_radius)
print("shaft_length " .. shaft_length)
print("dome_radius " .. dome_radius)
print("shaft_offset " .. shaft_offset)

comp = pcons_compound.create()

ball = pcons_sphere.prov(ball_radius)
pcons_compound.add(comp, ball, shaft_offset, 0, 0 - round(ball_spacing / 2))
pcons_compound.add(comp, ball, shaft_offset, 0, 0 - round(ball_spacing / 2) + ball_spacing)

shaft = pcons_circle.prov(shaft_radius, 1, false, shaft_length)
pcons_compound.add(comp, shaft, 0, 0, 0)

dome = pcons_sphere.prov(dome_radius, 1, true)
pcons_compound.add(comp, dome, 0, shaft_length, 0)

domedisc = pcons_circle.prov(dome_radius, 1, true, 1)
pcons_compound.add(comp, domedisc, 0, shaft_length, 0)

shaftdisc = pcons_circle.prov(shaft_radius, 1, true, 1)
pcons_compound.add(comp, shaftdisc, 0, 0, 0)

prov = pcons_compound.prov(comp)
pcons_parallel_master.start(prov, 10, 0, 0)


