vtkSmartPointer::New()可以生成一个智能指针管理vtk的对象,在使用过程中因为有引用计数的概念存在,所以可以自动管理对象的回收和释放。
比如:
vtkSmartPointer<vtkMatrix4x4> matrix1 = vtkSmartPointer<vtkMatrix4x4>::New();
此时matrix1 引用计数为1,当vtkSmartPointer<vtkMatrix4x4> matrix2=matrix1
时,matrix1和matrix2的计数都为2.
也可以用于vtkMatrix4x4* matrix3=matrix1
,是将matrix1的object对象赋值给了matrix3,matrix1的计数不增加,这就出现一个问题,当matrix1的计数为0时,会被析构释放,这时matrix3就变成了nullptr,会导致后续使用崩溃,所以有类似这种操作时,一定要保证matrix1计数不为0,直到matrix3使用结束。