閉じた面でクリップする †(V5.7では失敗するので注意) 可視化ソフトウェアParaViewにおいて、"Programmable Filter"を使用して、任意の閉じた面で形状をクリップする方法を説明します。 通常、ParaViewでのクリップ機能は、Clip filterを使用しますが、クリップするタイプは
しか用意されておらず、形状を任意の閉じた面でクリップすることは出来ません。 任意の閉じた面でクリップするには、"Programmable Filter"を使用する必要があります。 ここでは、メニューバーのSourcesにあるWavelet(画像データ)を、Superquadric(超二次関数、閉じたポリゴンデータになる)で切り取る例で説明します。 Waveletソースの作成 †メニューバーの Sources >> Wavelet と進み、そのままの設定で、"Apply"しますと、各点にwavelet値を計算した3次元の画像データが作成されます。表示を"Surface"にし、色付けの変数を"RTData"にすれば、waveletのコンターを見ることができます。 Superquadricソースの作成 †次に、Superquadricソースを作成します。メニューバーから sources >> superquadric と進み、 Scale: 15 15 15 とし、"Apply"します。Waveletの表示を"Outline"にすると、waveletソース内に収まったsuperquadricソースであるトーラス形状が見えます。 Programmable Filter †上記で作成した、Waveletソースをトーラスで切り取ります。 まず、Ctrlキーを押しながら、Pipeline Browserで 1.Wavelet1 2.Superquadric1 の順に左クリックで選択します。選択されると、名前の背景が濃い青色になります。(選択する順番が大事です) 選択された状態で Filters >> Alphabetical >> Programmable Filter と進みます。 次に、Programmable FilerのPropertiesタブで Output Data Set Type: VtkUnstructuredGrid に変更します。これは、Clipで作成されるデータタイプである"VtkUnstructuredGrid"を指定する必要があります。次に、"Script"に以下を記述します。
そして、"Apply"すると、Waveletをトーラスで切り取った、形状が現れます。 このトーラスはWaveletを切り取っているので、中身が詰まっていることに注意しましょう。実際、これを"Clip Filter"で切り取ると中身が詰まっていることを確認できます。 また、切り取る領域を逆にしたい場合は、"Script"内で clipper.SetInsideOut(False) と変更し、"Apply"します。結果をさらに"Clip Filter"で切り取るとWaveletの内部がトーラス上に切り取られていることを確認できます。 |