Salome HOME
d42756802b60ea25aceb4490b2b8a7c53f8f6ae7
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_Actor.cxx
1
2 #include <HYDROGUI_Actor.h>
3 #include <GEOM_PainterPolyDataMapper.h>
4 #include <GEOM_DeviceActor.h>
5 #include <GEOM_VertexSource.h>
6 #include <GEOM_EdgeSource.h>
7 #include <GEOM_WireframeFace.h>
8 #include <GEOM_ShadingFace.h>
9 #include <VTKViewer_TransformFilter.h>
10 #include <vtkAppendPolyData.h>
11 #include <VTKViewer_Transform.h>
12
13 HYDROGUI_Actor::HYDROGUI_Actor()
14
15   myVertexActor->GetDeviceActor()->SetMapper( myVertexActor->GetDeviceActor()->GetMapper() );
16   myIsolatedEdgeActor->GetDeviceActor()->SetMapper( myIsolatedEdgeActor->GetDeviceActor()->GetMapper() );
17   myOneFaceEdgeActor->GetDeviceActor()->SetMapper( myOneFaceEdgeActor->GetDeviceActor()->GetMapper() );
18   mySharedEdgeActor->GetDeviceActor()->SetMapper( mySharedEdgeActor->GetDeviceActor()->GetMapper() );
19   myWireframeFaceActor->GetDeviceActor()->SetMapper( myWireframeFaceActor->GetDeviceActor()->GetMapper() );
20   myShadingFaceActor->SetInput(myShadingFaceSource->GetOutputPort(),false); 
21   myShadingFaceActor->GetDeviceActor()->SetMapper( myShadingFaceActor->GetDeviceActor()->GetMapper() );
22   GEOM_Actor::myHighlightActor->GetDeviceActor()->SetMapper( GEOM_Actor::myHighlightActor->GetDeviceActor()->GetMapper() );
23
24  
25  
26 HYDROGUI_Actor::~HYDROGUI_Actor() 
27
28
29
30 HYDROGUI_Actor* HYDROGUI_Actor::New()
31 {
32   HYDROGUI_Actor* anObject = new HYDROGUI_Actor(); 
33   anObject->SetMapper( anObject->myPolyDataMapper.Get()); 
34   return anObject; 
35 }
36
37 void HYDROGUI_Actor::SetMapper( vtkMapper* theMapper )
38 {
39   SALOME_Actor::SetMapper( theMapper );
40 }
41
42 void HYDROGUI_Actor::SetTransform( VTKViewer_Transform* theTransform )
43 {
44   Superclass::SetTransform(theTransform);
45   myVertexActor       ->GetDeviceActor()->SetTransform( theTransform );
46   myIsolatedEdgeActor ->GetDeviceActor()->SetTransform( theTransform );
47   myOneFaceEdgeActor  ->GetDeviceActor()->SetTransform( theTransform );
48   mySharedEdgeActor   ->GetDeviceActor()->SetTransform( theTransform );
49   myWireframeFaceActor->GetDeviceActor()->SetTransform( theTransform );
50   myShadingFaceActor  ->GetDeviceActor()->SetTransform( theTransform );
51   GEOM_Actor::myHighlightActor->GetDeviceActor()->SetTransform( theTransform );
52 }
53
54 void HYDROGUI_Actor::SetShape( const TopoDS_Shape& theShape,
55                                float theDeflection,
56                                bool theIsVector )
57 {
58   GEOM_Actor::SetShape( theShape, theDeflection, theIsVector ); 
59
60   if( myIsolatedEdgeSource->IsEmpty() )
61     myIsolatedEdgeActor->GetDeviceActor()->SetInfinitive( true );
62
63   if( myOneFaceEdgeSource->IsEmpty() )
64     myOneFaceEdgeActor->GetDeviceActor()->SetInfinitive( true );
65
66   if( mySharedEdgeSource->IsEmpty() )
67     mySharedEdgeActor->GetDeviceActor()->SetInfinitive( true );
68
69   if( myWireframeFaceSource->IsEmpty() )
70     myWireframeFaceActor->GetDeviceActor()->SetInfinitive( true );
71
72   if( myShadingFaceSource->IsEmpty() )
73   {
74     myShadingFaceActor->GetDeviceActor()->SetInfinitive( true );
75   }
76   else
77   {
78     myShadingFaceSource->Update();
79   }
80 }