Hello,<br><br>this mail only about my customs use vtkSmartPointer<br><br>I think many people declare vtkSmartPointer<vtkXXX> like this<br><br>vtkSmartPointer<vtkPoints>   m_points;<br>vtkSmartPointer<vtkFloatArray>        m_volcolors;<br>
vtkSmartPointer<vtkUnsignedCharArray>        m_colors;<br>vtkSmartPointer<vtkPolyData>    m_polydata;<br>vtkSmartPointer<vtkOrientationMarkerWidget>    m_AxesWidget;<br>...<br><br>and<br>"new" vtkobject like this<br>
<br>m_points = vtkSmartPointer<vtkPoints>::New();<br>m_volcolors = vtkSmartPointer<vtkFloatArray>::New();<br>m_colors = vtkSmartPointer<vtkUnsignedCharArray>::New();<br>m_polydata = vtkSmartPointer<vtkPolyData>::New();<br>
m_AxesWidget = vtkSmartPointer<vtkOrientationMarkerWidget>::New();<br>....<br><br>but I often use template function like this <br>to "new" vtkobject<br><br>template <class T><br>void vtkSmartNew(vtkSmartPointer<T>& Ptr)<br>
{<br>    Ptr = vtkSmartPointer<T>::New();<br>    assert(Ptr.GetPointer() != 0);<br>}<br><br>vtkSmartPointer<vtkPoints>   m_points;<br>vtkSmartNew(m_points);<br><br>because I think vtkSmartPointer<vtkOrientationMarkerWidget><br>
is so long, I use ctrl+c ctrl+v so many times to copy type<br><br>I think maybe vtk can provide some function like this on "vtkSmartPointer.h"<br>