日々鍛錬

日本で一番?わかり易い??システムの落書き帳???を目指し????,日々鍛錬中な元SEさん主婦によるデベロッパとユーザと自分のための雑記帳

VTKの各ディレクトリの関係について理解する.

VTKが無事インストールされたなら,VTKのSourceとVTKをBuild*1したディレクトリの2つが出来上がるはず.
今回はこの中身について考えてみる

Source以下にある,Exampleというディレクトリの構成*2を示す.

├─Examples
│ ├─AMR
│ │ └─Cxx
│ ├─Annotation
│ │ ├─Cxx
│ │ │ └─LabeledMesh
│ │ ├─Python
│ │ └─Tcl
│ ├─Array
│ │ └─Cxx
│ ├─Build
│ │ ├─vtkLocal
│ │ │ └─Testing
│ │ │ └─Cxx
│ │ └─vtkMy
│ │ ├─Common
│ │ ├─Examples
│ │ │ ├─Cxx
│ │ │ │ ├─Ex1
│ │ │ │ └─Ex2
│ │ │ └─Tcl
│ │ ├─Imaging
│ │ ├─Unsorted
│ │ ├─Utilities
│ │ │ └─Doxygen
│ │ └─Wrapping
│ │ └─Tcl
│ │ ├─vtkmy
│ │ ├─vtkmycommon
│ │ ├─vtkmyimaging
│ │ └─vtkmyunsorted
│ ├─Charts
│ │ └─Cxx
│ ├─DataManipulation
│ │ ├─Cxx
│ │ ├─Python
│ │ └─Tcl
│ ├─Graphics
│ │ └─Python
│ ├─GUI
│ │ ├─Cocoa
│ │ │ ├─Documentation
│ │ │ └─SimpleCocoaVTK.xcodeproj
│ │ ├─Motif
│ │ ├─Python
│ │ ├─Qt
│ │ │ ├─Events
│ │ │ ├─FourPaneViewer
│ │ │ ├─GraphicsView
│ │ │ ├─GraphicsViewPython
│ │ │ ├─ImageViewer
│ │ │ └─SimpleView
│ │ │ └─Icons
│ │ ├─Tcl
│ │ └─Win32
│ │ ├─SampleMFC
│ │ │ └─res
│ │ ├─SimpleCxx
│ │ ├─vtkBorland
│ │ │ ├─Package
│ │ │ └─ProjectDemo
│ │ └─vtkMFC
│ │ ├─vtkDLG
│ │ │ └─res
│ │ ├─vtkMDI
│ │ │ └─res
│ │ └─vtkSDI
│ │ └─res
│ ├─Hybrid
│ │ ├─Cxx
│ │ └─Python
│ ├─ImageProcessing
│ │ ├─Cxx
│ │ ├─Python
│ │ └─Tcl
│ ├─Infovis
│ │ ├─Cxx
│ │ │ ├─ChartView
│ │ │ │ └─Icons
│ │ │ ├─CustomLinkView
│ │ │ │ └─Icons
│ │ │ ├─EasyView
│ │ │ │ └─Icons
│ │ │ └─StatsView
│ │ │ └─Icons
│ │ ├─Java
│ │ ├─Python
│ │ └─Tcl
│ ├─IO
│ │ ├─Cxx
│ │ ├─Python
│ │ └─Tcl
│ ├─MangledMesa
│ │ └─Tcl
│ ├─Medical
│ │ ├─Cxx
│ │ ├─Python
│ │ └─Tcl
│ ├─Modelling
│ │ ├─Cxx
│ │ ├─Python
│ │ └─Tcl
│ ├─MultiBlock
│ │ └─Cxx
│ ├─ParallelProcessing
│ │ ├─Generic
│ │ │ └─Cxx
│ │ └─MPI
│ │ ├─Python
│ │ └─Tcl
│ ├─Rendering
│ │ ├─Cxx
│ │ ├─Python
│ │ └─Tcl
│ ├─Tutorial
│ │ ├─Step1
│ │ │ ├─Cxx
│ │ │ ├─Java
│ │ │ ├─Python
│ │ │ └─Tcl
│ │ ├─Step2
│ │ │ ├─Cxx
│ │ │ ├─Java
│ │ │ ├─Python
│ │ │ └─Tcl
│ │ ├─Step3
│ │ │ ├─Cxx
│ │ │ ├─Java
│ │ │ ├─Python
│ │ │ └─Tcl
│ │ ├─Step4
│ │ │ ├─Cxx
│ │ │ ├─Java
│ │ │ ├─Python
│ │ │ └─Tcl
│ │ ├─Step5
│ │ │ ├─Cxx
│ │ │ ├─Java
│ │ │ ├─Python
│ │ │ └─Tcl
│ │ └─Step6
│ │ ├─Cxx
│ │ ├─Python
│ │ └─Tcl
│ ├─VisualizationAlgorithms
│ │ ├─Cxx
│ │ ├─Python
│ │ └─Tcl
│ ├─VolumeRendering
│ │ ├─Cxx
│ │ ├─Python
│ │ └─Tcl
│ └─Widgets
│ └─Cxx

この例からも確認出来るように,VTKにはたくさんのサンプルコードを持っており.
基本はこのサンプルコードをどのようにいじっていくのかがポイントとなる.
また,上記からも確認できるよう,cxxだけでなく,Java, Python, Tcl についても揃っているので,試して行きたい.

また,導入として,上記のExample 以下にある,Tutorialのディレクトリを見てみると,最初のステップのレクチャからプリミティブ形状(Cone)を用いて,
VTKによるレンダリングから少々難しいインタラクションまでのコードを取り揃えている.
VTKによる勉強を始める前に,まずこれを最初は見ていくようにしたい.

│ ├─Tutorial 
│ │ ├─Step1  Hello World のように,簡単にVTK内のコード利用についての説明 (レンダリングとアニメーション)
│ │ │ ├─Cxx
│ │ │ ├─Java
│ │ │ ├─Python
│ │ │ └─Tcl
│ │ ├─Step2  Step 1 にTime call back関数をいれこんで,もう少しテクニカルにしたコードの内容を紹介
│ │ │ ├─Cxx
│ │ │ ├─Java
│ │ │ ├─Python
│ │ │ └─Tcl
│ │ ├─Step3  Step 2のコードに複数のプリミティブな情報を入れた場合におけるコードの内容を紹介 
│ │ │ ├─Cxx
│ │ │ ├─Java
│ │ │ ├─Python
│ │ │ └─Tcl
│ │ ├─Step4  プリミティブに対して,各プロパティの情報を変更する場合におけるコードの紹介
│ │ │ ├─Cxx
│ │ │ ├─Java
│ │ │ ├─Python
│ │ │ └─Tcl
│ │ ├─Step5  任意のインタラクションを行った場合におけるコードの紹介
│ │ │ ├─Cxx
│ │ │ ├─Java
│ │ │ ├─Python
│ │ │ └─Tcl
│ │ └─Step6  3次元空間上におけるインタラクションコードを紹介
│ │ ├─Cxx
│ │ ├─Python
│ │ └─Tcl

このように,たくさんのコードが用意されているらしいのでサンプルコードから手をつけていくといいかもしれません.
特にTutorialには,各項目において,どのような手順に従って処理を施すかが記述されている.
しっかりと理解して進むようにしたい.

*1:こちらについては,以前掲載している記事を参照に

*2:スペースの関係上,CMake関連のディレクトリは除外