Salome HOME
IMP 0016175: EDF455: Save GUIState don't redisplay the objects.
[modules/geom.git] / src / OBJECT / GEOM_SmartPtr.h
1 #ifndef GEOM_SMARTPTR_H 
2 #define GEOM_SMARTPTR_H 
3  
4 #include <vtkSmartPointer.h> 
5  
6 template <class T>
7 class GEOM_SmartPtr: public vtkSmartPointer<T>
8 {
9 public:
10   GEOM_SmartPtr() {}
11   GEOM_SmartPtr(T* r, bool theIsOwner = false): vtkSmartPointer<T>(r) { 
12     if(r && theIsOwner) 
13       r->Delete();
14   }
15   GEOM_SmartPtr& operator()(T* r, bool theIsOwner = false){ 
16     vtkSmartPointer<T>::operator=(r); 
17     if(r && theIsOwner) 
18       r->Delete();
19     return *this;
20   }
21   GEOM_SmartPtr& operator=(T* r){ vtkSmartPointer<T>::operator=(r); return *this;}
22   T* Get() const { return this->GetPointer();} 
23 }; 
24  
25  
26 class GEOM_DeviceActor; 
27 typedef GEOM_SmartPtr<GEOM_DeviceActor> PDeviceActor; 
28  
29 class vtkPolyDataMapper; 
30 typedef GEOM_SmartPtr<vtkPolyDataMapper> PPolyDataMapper; 
31  
32  
33 #endif //GEOM_SMARTPTR_H