Kitware.VTK.RenderWindowControlに表示した3Dを削除し、
RenderWindowControl内に何も表示されていない状態にしたいです。
VTKマニュアルを調べていますが、削除の仕方がわからないためアドバイスをいただきたいです。
mapperや、actorをDisposeしてもRenderWindowControl内に表示された3Dは消えませんでした。
C#
1 static Kitware.VTK.vtkSTLReader reader; 2 static Kitware.VTK.vtkCompositePolyDataMapper mapper; 3 static Kitware.VTK.vtkActor actor; 4 static Kitware.VTK.vtkRenderWindowInteractor iren; 5 6 private void STLDispButton_Click(object sender, EventArgs e) 7 { 8 //190210 stl表示 9 //表示させたい3Dモデルファイル 10 using (reader = new Kitware.VTK.vtkSTLReader()) 11 using (mapper = new Kitware.VTK.vtkCompositePolyDataMapper()) 12 using (actor = new Kitware.VTK.vtkActor()) 13 using (iren = new Kitware.VTK.vtkRenderWindowInteractor()) 14 { 15 //stlを含むフォルダの存在確認 16 if (System.IO.File.Exists(stlFolderName)) 17 { 18 stlOfd.InitialDirectory = stlFolderName; 19 stlOfd.Filter = "stlファイル(*.stl)|*.stl|"; 20 stlOfd.Title = "開くファイルを選択してください"; 21 stlOfd.FileName = IDComboBox.Text + "_" + recTime + ".stl"; 22 23 } 24 else 25 { 26 MessageBox.Show("Folderがありません。", "Can not found.", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); 27 //return; 28 } 29 30 if (stlOfd.ShowDialog() == DialogResult.OK) 31 { 32 // 表示させたい3Dモデルファイル 33 reader.SetFileName(stlOfd.FileName); 34 // Mapperにオブジェクトを写像する 35 mapper.SetInputConnection(reader.GetOutputPort()); 36 // ActorにMapperをセットする 37 actor.SetMapper(mapper); 38 // 描画ウィンドウにActorを追加する 39 renderWindowControl1.RenderWindow.GetRenderers().GetFirstRenderer().AddActor(actor); 40 } 41 } 42 } 43 44 private void STLClearButton_Click(object sender, EventArgs e) 45 { 46 //STL表示をクリアにしたい 47 reader.Dispose(); 48 mapper.Dispose(); 49 actor.Dispose(); 50 51 }
あなたの回答
tips
プレビュー