addvtk data now support tensor type (9 components)

This commit is contained in:
Chen 2016-09-01 12:47:26 -04:00 committed by chen
parent d529eae4a4
commit 6db0a42eae
1 changed files with 15 additions and 8 deletions

View File

@ -37,12 +37,17 @@ parser.add_option('-v', '--vector',
dest = 'vector',
action = 'extend', metavar = '<string LIST>',
help = 'vector value label(s)')
parser.add_option('-t', '--tensor',
dest = 'tensor',
action = 'extend', metavar = '<string LIST>',
help = 'tensor (3x3) value label(s)')
parser.add_option('-c', '--color', dest='color', action='extend',
metavar ='<string LIST>',
help = 'RGB color tuples')
parser.set_defaults(scalar = [],
vector = [],
tensor = [],
color = [],
inplace = False,
render = False,
@ -97,6 +102,7 @@ for name in filenames:
for datatype,dimension,label in [['scalar',1,options.scalar],
['vector',3,options.vector],
['tensor',9,options.tensor],
['color',3,options.color],
]:
for i,dim in enumerate(table.label_dimension(label)):
@ -107,7 +113,7 @@ for name in filenames:
remarks.append('adding {} "{}"...'.format(datatype,me))
active[datatype].append(me)
if datatype in ['scalar','vector']: VTKarray[me] = vtk.vtkDoubleArray()
if datatype in ['scalar','vector', 'tensor']: VTKarray[me] = vtk.vtkDoubleArray()
elif datatype == 'color': VTKarray[me] = vtk.vtkUnsignedCharArray()
VTKarray[me].SetNumberOfComponents(dimension)
@ -128,6 +134,7 @@ for name in filenames:
theData = [table.data[i] for i in table.label_indexrange(me)] # read strings
if datatype == 'color': VTKarray[me].InsertNextTuple3(*map(lambda x: int(255.*float(x)),theData))
elif datatype == 'vector': VTKarray[me].InsertNextTuple3(*map(float,theData))
elif datatype == 'tensor': VTKarray[me].InsertNextTuple9(*map(float,theData))
elif datatype == 'scalar': VTKarray[me].InsertNextValue(float(theData[0]))
table.input_close() # close input ASCII table