Version: 9.16.0
GEOM_SmartPtr.h
Go to the documentation of this file.
1// Copyright (C) 2007-2026 CEA, EDF, OPEN CASCADE
2//
3// This library is free software; you can redistribute it and/or
4// modify it under the terms of the GNU Lesser General Public
5// License as published by the Free Software Foundation; either
6// version 2.1 of the License, or (at your option) any later version.
7//
8// This library is distributed in the hope that it will be useful,
9// but WITHOUT ANY WARRANTY; without even the implied warranty of
10// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11// Lesser General Public License for more details.
12//
13// You should have received a copy of the GNU Lesser General Public
14// License along with this library; if not, write to the Free Software
15// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16//
17// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18//
19
20#ifndef GEOM_SMARTPTR_H
21#define GEOM_SMARTPTR_H
22
23#include <vtkSmartPointer.h>
24
25template <class T>
26class GEOM_SmartPtr: public vtkSmartPointer<T>
27{
28public:
30 GEOM_SmartPtr(T* r, bool theIsOwner = false): vtkSmartPointer<T>(r) {
31 if(r && theIsOwner)
32 r->Delete();
33 }
34 GEOM_SmartPtr& operator()(T* r, bool theIsOwner = false){
35 vtkSmartPointer<T>::operator=(r);
36 if(r && theIsOwner)
37 r->Delete();
38 return *this;
39 }
40 GEOM_SmartPtr& operator=(T* r){ vtkSmartPointer<T>::operator=(r); return *this;}
41 T* Get() const { return this->GetPointer();}
42};
43
44class GEOM_DeviceActor;
46
47class vtkPolyDataMapper;
49
52
53
54#endif //GEOM_SMARTPTR_H
GEOM_SmartPtr< GEOM_PainterPolyDataMapper > PPolyGeomPainterDataMapper
Definition: GEOM_SmartPtr.h:51
GEOM_SmartPtr< vtkPolyDataMapper > PPolyDataMapper
Definition: GEOM_SmartPtr.h:48
GEOM_SmartPtr< GEOM_DeviceActor > PDeviceActor
Definition: GEOM_SmartPtr.h:45
Definition: GEOM_DeviceActor.h:52
Definition: GEOM_PainterPolyDataMapper.h:40
Definition: GEOM_SmartPtr.h:27
GEOM_SmartPtr & operator=(T *r)
Definition: GEOM_SmartPtr.h:40
GEOM_SmartPtr()
Definition: GEOM_SmartPtr.h:29
GEOM_SmartPtr(T *r, bool theIsOwner=false)
Definition: GEOM_SmartPtr.h:30
GEOM_SmartPtr & operator()(T *r, bool theIsOwner=false)
Definition: GEOM_SmartPtr.h:34
T * Get() const
Definition: GEOM_SmartPtr.h:41