LoginSignup
0
1

More than 3 years have passed since last update.

vtkXMLUnstructuredGridReaderまとめ(随時更新)

Last updated at Posted at 2020-04-27

vtkXMLUnstructuredGridReaderについて

classリファレンス
https://vtk.org/doc/nightly/html/classvtkXMLUnstructuredGridReader.html
欲しい機能がない場合は親クラスであるvtkXMLUnstructuredDataReaderも調査するとよいでしょう。

vtkXMLUnstructuredGridReaderを用いることで、vtm形式のファイルをvtkライブラリで読みこむことができます

今回はOpenFOAMの結果を用いてvtuファイルを作成します

terminal
$ git clone https://github.com/matsubaraDaisuke/vtk-data-set.git
$ cd openfoam_case
$ foamTovkt -ascii

openfoam_caseの直下にVTKが作成され、OpenFOAMの出力時間ごとにフォルダが作成されます。vtmファイルは、そこフォルダ内にあります。

基本コード

import vtk

# reader
reader = vtk.vtkXMLUnstructuredGridReader () 
reader.SetFileName("VTK/src_283/internal.vtu"); # vtuファイルのパス
reader.Update()

# filter
filter = vtk.vtkGeometryFilter()
filter.SetInputConnection(reader.GetOutputPort())
filter.Update()

# mapper
mapper = vtk.vtkCompositePolyDataMapper2()
mapper.SetInputConnection(filter.GetOutputPort()) #mapperにfilterを設定

# actor
actor = vtk.vtkActor()
actor.SetMapper(mapper)             #actorにmapperを設定
actor.GetProperty().EdgeVisibilityOn()

# renderer
renderer = vtk.vtkRenderer()
renderer.AddActor(actor)            #rendererにactorを設定

##背景色の設定
renderer.GradientBackgroundOn()      #グラデーション背景を設定
renderer.SetBackground2(0.2,0.4,0.6) #上面の色
renderer.SetBackground(1,1,1)        #下面の色

#Window
renWin = vtk.vtkRenderWindow()
renWin.AddRenderer(renderer)         #Windowにrendererを設定
iren = vtk.vtkRenderWindowInteractor();
iren.SetRenderWindow(renWin);
renWin.SetSize(850, 850)
renWin.Render()
iren.Start();

image.png

printで情報を見ることができます

print(reader)
>>
vtkXMLUnstructuredGridReader (0x7ff031cf9b50)
  Debug: Off
  Modified Time: 9623
  Reference Count: 2
  Registered Events: (none)
  Executive: 0x7ff031cf3c90
  ErrorCode: Undefined error: 0
  Information: 0x7ff031ce3700
  AbortExecute: Off
  Progress: 1
  Progress Text: (None)
  FileName: VTK/src_283/internal.vtu
  CellDataArraySelection: 0x7ff031ce3b20
  PointDataArraySelection: 0x7ff031cef0e0
  ColumnArraySelection: 0x7ff031cef0e0
  Stream: (none)
  TimeStep:0
  NumberOfTimeSteps:0
  TimeStepRange:(0,0)

メソッド

実際にはvtkXMLUnstructuredDataReaderに実装されています。

GetNumberOfPoints

部品数?の取得

reader.GetNumberOfPoints() 
>> 1

GetNumberOfCells

セル数の取得

reader.GetNumberOfCells () 
>> 12225

GetNumberOfPoints

節点数の取得

GetNumberOfPoints 
>> 25012
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1