1from __future__ import print_function
2
3import vtk, os, sys
4
5ss = vtk.vtkSphereSource() #make mesh to test with
6
7af = vtk.vtkElevationFilter() #add some attributes
8af.SetInputConnection(ss.GetOutputPort())
9
10ef = vtk.vtkExtractEdges() #make lines to test
11ef.SetInputConnection(af.GetOutputPort())
12
13gf = vtk.vtkGlyph3D() #make verts to test
14pts = vtk.vtkPoints()
15pts.InsertNextPoint(0,0,0)
16verts = vtk.vtkCellArray()
17avert = vtk.vtkVertex()
18avert.GetPointIds().SetId(0, 0)
19verts.InsertNextCell(avert)
20onevertglyph = vtk.vtkPolyData()
21onevertglyph.SetPoints(pts)
22onevertglyph.SetVerts(verts)
23gf.SetSourceData(onevertglyph)
24gf.SetInputConnection(af.GetOutputPort())
25
26testwrites = ["points","lines","mesh"]
27failed = False
28for datasetString in testwrites:
29  if datasetString == "points":
30    toshow=gf
31  elif datasetString == "lines":
32    toshow = ef
33  else:
34    toshow = af
35  gw = vtk.vtkGeoJSONWriter()
36  fname = "sphere_"+datasetString+".json"
37  gw.SetInputConnection(toshow.GetOutputPort())
38  gw.SetFileName(fname)
39  gw.Write()
40  if (os.path.exists(fname) and
41     os.path.isfile(fname)):
42    os.remove(fname)
43  else:
44    print("Failed to write " + fname + " to file")
45    failed = True
46  gw.WriteToOutputStringOn()
47  gw.Write()
48  gj = "['"+str(gw.RegisterAndGetOutputString()).replace('\n','')+"']"
49  if len(gj) <= 1000:
50    print("Failed to write " + fname + " to buffer")
51    failed = True
52
53if failed:
54  sys.exit(1)
55sys.exit(0)
56