import sys
import gmsh

if len(sys.argv) != 5:
    print("usage: shift.py <mesh-file.msh> x-shift y-shift z-shift > out-nodes")
    exit(1)

fname = sys.argv[1]
x_shift = float(sys.argv[2])
y_shift = float(sys.argv[3])
z_shift = float(sys.argv[4])

gmsh.initialize()
gmsh.open(fname)

(nodes, coords, _) = gmsh.model.mesh.getNodes()

for i, tag in enumerate(nodes):
    gmsh.model.mesh.setNode(tag, [coords[3*i] + x_shift, coords[3*i+1] + y_shift, coords[3*i+2] + z_shift], [])

gmsh.fltk.run()

gmsh.finalize()
