]> SALOME platform Git repositories - modules/geom.git/blob - src/OBJECT/GEOM_DeviceActor.cxx
Salome HOME
Fix for IPAL19044 (4x REGRESS: vertex is not displayed in VTK and broken trihedron).
[modules/geom.git] / src / OBJECT / GEOM_DeviceActor.cxx
1 //  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
2 //
3 //  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 //  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
5 //
6 //  This library is free software; you can redistribute it and/or
7 //  modify it under the terms of the GNU Lesser General Public
8 //  License as published by the Free Software Foundation; either
9 //  version 2.1 of the License.
10 //
11 //  This library is distributed in the hope that it will be useful,
12 //  but WITHOUT ANY WARRANTY; without even the implied warranty of
13 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 //  Lesser General Public License for more details.
15 //
16 //  You should have received a copy of the GNU Lesser General Public
17 //  License along with this library; if not, write to the Free Software
18 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
19 //
20 //  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21 //
22 #include "GEOM_DeviceActor.h" 
23
24 #include <vtkObjectFactory.h> 
25  
26 #include <vtkPoints.h> 
27 #include <vtkPolyData.h> 
28 #include <vtkStripper.h>  
29 #include <vtkPolyDataMapper.h>  
30 #include <vtkPolyDataNormals.h>  
31 #include <vtkActor.h> 
32 #include <VTKViewer_Actor.h>
33 #include <vtkRenderer.h> 
34
35
36  
37 vtkStandardNewMacro(GEOM_DeviceActor);
38  
39 GEOM_DeviceActor::GEOM_DeviceActor(): 
40   myStripper(vtkStripper::New(),true), 
41   myPolyDataMapper(vtkPolyDataMapper::New(),true), 
42   myPolyDataNormals(vtkPolyDataNormals::New(),true), 
43   myActor(VTKViewer_Actor::New(),true) 
44
45   myStripper->SetInput(myPolyDataNormals->GetOutput()); 
46   myPolyDataMapper->SetInput(myStripper->GetOutput()); 
47  
48   myActor->SetMapper(myPolyDataMapper.Get()); 
49   myActor->PickableOff(); 
50
51  
52 GEOM_DeviceActor::~GEOM_DeviceActor() 
53
54
55  
56 void 
57 GEOM_DeviceActor:: 
58 SetInput(vtkPolyData* thePolyData, bool theUseStripper)
59
60   if(theUseStripper)
61     myPolyDataNormals->SetInput(thePolyData); 
62   else 
63     myPolyDataMapper->SetInput(thePolyData); 
64 }
65  
66 void 
67 GEOM_DeviceActor:: 
68 SetProperty(vtkProperty* theProperty)
69 {
70   myActor->SetProperty(theProperty);
71 }
72  
73 vtkProperty* 
74 GEOM_DeviceActor:: 
75 GetProperty()
76 {
77   return myActor->GetProperty();
78 }
79  
80 void 
81 GEOM_DeviceActor:: 
82 SetVisibility(int theVisibility)
83 {
84   myActor->SetVisibility(theVisibility);
85 }
86  
87 int 
88 GEOM_DeviceActor:: 
89 GetVisibility()
90 {
91   return myActor->GetVisibility();
92 }
93  
94 void 
95 GEOM_DeviceActor:: 
96 AddToRender(vtkRenderer* theRenderer)
97 {
98   theRenderer->AddActor(myActor.GetPointer());
99 }
100
101 void 
102 GEOM_DeviceActor:: 
103 RemoveFromRender(vtkRenderer* theRenderer)
104 {
105   theRenderer->RemoveActor(myActor.GetPointer());
106 }