Files
src_old/doc/tetrahedron_refinements/text2vtk.py
T

77 lines
1.7 KiB
Python
Executable File

#!/usr/bin/python
import sys
import re
pts = []
tet = []
tets = []
tet_no = 0
fh = open ( sys.argv[1] )
def append_tet ( tet ):
if tet == []:
return
if len(tet) != 4:
print tet
print ( "Wrong number of points in tet %d!" % len ( tets ) )
sys.exit ( 1 )
tets.append ( tet )
def write_vtk_header ():
print "# vtk DataFile Version 2.0"
print "VTK LEGACY FILE FORMAT ASCII - tetrahedral sample file for H5FED test"
print "ASCII"
print "DATASET UNSTRUCTURED_GRID"
print
def write_vtk_points_double ( pts ):
print "POINTS %d DOUBLE" % ( len(pts) )
for pt in pts:
print "%s %s %s" % ( pt[0], pt[1], pt[2] )
print
def write_vtk_cells ( cells ):
num_cells = len ( cells )
size = num_cells
for cell in cells:
size += len ( cell )
print "CELLS %d %d" % ( num_cells, size )
for cell in cells:
print "%d\t" % (len(cell)),
for el in cell:
print "%d " % (el),
print
print
def write_vtk_cell_types ( cells ):
print "CELL_TYPES %d" % ( len(cells) )
for cell in cells:
print "10"
print
def write_vtk_fooder ( cells ):
print "CELL_DATA %d" % ( len(cells) )
print "SCALARS cell_attribute_data float 1"
print "LOOKUP_TABLE default"
for i in range(len(cells)):
print "%d" % (i)
for line in fh:
line = line.rstrip('\n')
if line[0:3] == "TET":
append_tet ( tet )
tet = []
else:
pt = re.sub ( ' ', '', line).split(',')
if not pt in pts:
pts.append ( pt )
tet.append ( pts.index ( pt ) )
append_tet ( tet )
write_vtk_header()
write_vtk_points_double ( pts )
write_vtk_cells ( tets )
write_vtk_cell_types ( tets )
write_vtk_fooder ( tets )