Changeset 6537 for trunk


Ignore:
Timestamp:
Sep 13, 2016 10:35:13 AM (8 years ago)
Author:
ldelgass
Message:

Support reading VTK XML format in Field.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/gui/scripts/field.tcl

    r6410 r6537  
    11721172    package require vtk
    11731173
    1174     set reader $this-datasetreader
    1175     vtkDataSetReader $reader
    1176 
    1177     # Write the contents to a file just in case it's binary.
    1178     set tmpfile file[pid].vtk
    1179     set f [open "$tmpfile" "w"]
    1180     fconfigure $f -translation binary -encoding binary
    1181     puts $f $contents
    1182     close $f
    1183 
    1184     $reader SetFileName $tmpfile
    1185     $reader ReadAllNormalsOn
    1186     $reader ReadAllTCoordsOn
    1187     $reader ReadAllScalarsOn
    1188     $reader ReadAllColorScalarsOn
    1189     $reader ReadAllVectorsOn
    1190     $reader ReadAllTensorsOn
    1191     $reader ReadAllFieldsOn
    1192     $reader Update
    1193     file delete $tmpfile
    1194 
    1195     set dataset [$reader GetOutput]
     1174    if {[string index $contents 0] == "<"} {
     1175        set reader $this-xmlreader
     1176        vtkXMLGenericDataObjectReader $reader
     1177
     1178        # Write the contents to a file, since the XML reader
     1179        # can't read from a memory buffer
     1180        set tmpfile file[pid]-vtk.xml
     1181        set f [open "$tmpfile" "w"]
     1182        fconfigure $f -translation binary -encoding binary
     1183        puts $f $contents
     1184        close $f
     1185
     1186        $reader SetFileName $tmpfile
     1187        $reader Update
     1188        file delete $tmpfile
     1189
     1190        set dataset [$reader GetOutputAsDataSet]
     1191    } else {
     1192        set reader $this-datasetreader
     1193        vtkDataSetReader $reader
     1194
     1195        # Write the contents to a file just in case it's binary.
     1196        set tmpfile file[pid].vtk
     1197        set f [open "$tmpfile" "w"]
     1198        fconfigure $f -translation binary -encoding binary
     1199        puts $f $contents
     1200        close $f
     1201
     1202        $reader SetFileName $tmpfile
     1203        $reader ReadAllNormalsOn
     1204        $reader ReadAllTCoordsOn
     1205        $reader ReadAllScalarsOn
     1206        $reader ReadAllColorScalarsOn
     1207        $reader ReadAllVectorsOn
     1208        $reader ReadAllTensorsOn
     1209        $reader ReadAllFieldsOn
     1210        $reader Update
     1211        file delete $tmpfile
     1212
     1213        set dataset [$reader GetOutput]
     1214    }
    11961215    if { $dataset == "" } {
    11971216        puts stderr "Failed to parse VTK file"
Note: See TracChangeset for help on using the changeset viewer.