Visualization Tool Kit(VTK)など

×
vtkSmartPointer<vtkObject>というクラスがあります。これを使うことでvtkで起こりがちなDeleteし忘れによるメモリリークを予防できます。
vtkSmartPointer<vtkActor> pvtkActor = vtkSmartPointer<vtkActor>::New();

面倒なのでよく使うものはtypedefしてもいいかもしれません。
typedef vtkSmartPointer<vtkActor> vtkActorPointer;

ただし自分でNewしないもの(= Deleteしないもの)についてはvtkSmartPointerを使う必要はありません。
vtkSmartPointer<vtkPolyDataReader> pvtkPolyDataReader = vtkSmartPointer<vtkPolyDataReader>::New();
pvtkPolyDataReader->SetFileName(filename);
pvtkPolyDataReader->Update();
vtkPolyData* pvtkPolyData = pvtkPolyDataReader->GetOutput();
この場合、pvtkPolyDataReaderが破棄されるとvtkPolyDataもDeleteされてしまいますが、vtkPolyDataMapperにSetInput等するとvtkPolyDataはRegisterされるのでなくなりません。
手動の参照カウンタがついているのがvtkのポインタ管理です。

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Menu

メニュー

チュートリアル

アルゴリズム(数学)

並列計算

STL

#include<memory> #include<string> #include<sstream> #include<algorithm> #include<functional> #include<numeric>

Media Foundation

【メニュー編集】
Wiki記法ガイド

メンバーのみ編集できます

広告募集中