#!/usr/bin/env python

import sys

if len(sys.argv) != 2:
    print "\nwritevtkpoints: Create a VTK PolyData file of particle positions."
    print "Usage: writevtkpoints <position file>"
    print "Output: <positionfile>.vtp"
    print "Exiting\n"
    sys.exit(1)

import array
import struct
import vtk

fname = sys.argv[1]

fin = open(fname,'rb')
x = array.array('d')
y = array.array('d')
z = array.array('d')
np = struct.unpack('=i',fin.read(4))[0]

x.read(fin,np)
y.read(fin,np)
z.read(fin,np)
fin.close()

points = vtk.vtkPoints()
scalars = vtk.vtkFloatArray()
data = vtk.vtkPolyData()

for i in range(0,np):

    scalars.InsertNextValue(1.0)
    points.InsertNextPoint(x[i], y[i], z[i])

data.SetPoints(points)
data.GetPointData().SetScalars(scalars)

writer = vtk.vtkXMLPolyDataWriter()
writer.SetInput(data)
writer.SetFileName(fname + '.vtp')
writer.Write()
sys.exit(0)
