Salome HOME
445ab14709e0f70392fdff63ab1d449a7cfcafa2
[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  
33 #include <vtkRenderer.h> 
34  
35 vtkStandardNewMacro(GEOM_DeviceActor);
36  
37 GEOM_DeviceActor::GEOM_DeviceActor(): 
38   myStripper(vtkStripper::New(),true), 
39   myPolyDataMapper(vtkPolyDataMapper::New(),true), 
40   myPolyDataNormals(vtkPolyDataNormals::New(),true), 
41   myActor(vtkActor::New(),true) 
42
43   myStripper->SetInput(myPolyDataNormals->GetOutput()); 
44   myPolyDataMapper->SetInput(myStripper->GetOutput()); 
45  
46   myActor->SetMapper(myPolyDataMapper.Get()); 
47   myActor->PickableOff(); 
48
49  
50 GEOM_DeviceActor::~GEOM_DeviceActor() 
51
52
53  
54 void 
55 GEOM_DeviceActor:: 
56 SetInput(vtkPolyData* thePolyData, bool theUseStripper)
57
58   if(theUseStripper)
59     myPolyDataNormals->SetInput(thePolyData); 
60   else 
61     myPolyDataMapper->SetInput(thePolyData); 
62 }
63  
64 void 
65 GEOM_DeviceActor:: 
66 SetProperty(vtkProperty* theProperty)
67 {
68   myActor->SetProperty(theProperty);
69 }
70  
71 vtkProperty* 
72 GEOM_DeviceActor:: 
73 GetProperty()
74 {
75   return myActor->GetProperty();
76 }
77  
78 void 
79 GEOM_DeviceActor:: 
80 SetVisibility(int theVisibility)
81 {
82   myActor->SetVisibility(theVisibility);
83 }
84  
85 int 
86 GEOM_DeviceActor:: 
87 GetVisibility()
88 {
89   return myActor->GetVisibility();
90 }
91  
92 void 
93 GEOM_DeviceActor:: 
94 AddToRender(vtkRenderer* theRenderer)
95 {
96   theRenderer->AddActor(myActor.GetPointer());
97 }
98
99 void 
100 GEOM_DeviceActor:: 
101 RemoveFromRender(vtkRenderer* theRenderer)
102 {
103   theRenderer->RemoveActor(myActor.GetPointer());
104 }