1 // File : VTKViewer_ViewFrame.h
2 // Created : Wed Mar 20 11:27:26 2002
3 // Author : Nicolas REJNERI
6 // Copyright : Open CASCADE 2002
9 #ifndef VTKViewer_ViewFrame_H
10 #define VTKViewer_ViewFrame_H
12 #include "VTKViewer_RenderWindowInteractor.h"
13 #include "VTKViewer_RenderWindow.h"
14 #include "VTKViewer_NonIsometricTransform.h"
17 #include "QAD_ViewFrame.h"
21 #include <vtkPolyDataMapper.h>
23 #include <vtkRenderer.h>
25 class QAD_EXPORT VTKViewer_ViewFrame : public QAD_ViewFrame
30 VTKViewer_ViewFrame(QWidget* parent, const char* name=0 );
31 ~VTKViewer_ViewFrame();
33 ViewType getTypeView() const{ return VIEW_VTK;};
34 QWidget* getViewWidget();
35 vtkRenderer* getRenderer() {return m_Renderer;}
37 void setRW(VTKViewer_RenderWindow* rw);
38 VTKViewer_RenderWindow* getRW() {return m_RW;}
39 VTKViewer_RenderWindowInteractor* getRWInteractor() {return m_RWInteractor;}
41 bool isTrihedronDisplayed();
42 void SetTrihedronSize( int dim );
44 void setBackgroundColor( const QColor& );
45 QColor backgroundColor() const;
47 void SetSelectionMode( int mode );
49 /* popup management */
50 void setPopupServer( QAD_Application* );
52 /* interactive object management */
53 void highlight( const Handle(SALOME_InteractiveObject)& IObject,
54 bool highlight, bool immediatly = true );
55 void unHighlightAll();
56 void rename( const Handle(SALOME_InteractiveObject)& IObject,
58 bool isInViewer( const Handle(SALOME_InteractiveObject)& IObject );
59 bool isVisible( const Handle(SALOME_InteractiveObject)& IObject );
61 /* undo/redo management */
62 void undo(SALOMEDS::Study_var aStudy,
63 const char* StudyFrameEntry);
64 void redo(SALOMEDS::Study_var aStudy,
65 const char* StudyFrameEntry);
69 Handle(SALOME_InteractiveObject) FindIObject(const char* Entry);
72 void Display(const Handle(SALOME_InteractiveObject)& IObject, bool immediatly = true);
73 void DisplayOnly(const Handle(SALOME_InteractiveObject)& IObject);
74 void Erase(const Handle(SALOME_InteractiveObject)& IObject, bool immediatly = true);
79 /* non-isometric transformation */
80 void setNonIsometricTransform (VTKViewer_NonIsometricTransform *NonIsometricTransform)
82 m_NonIsometricTransform = NonIsometricTransform;
84 VTKViewer_NonIsometricTransform * getNonIsometricTransform ()
86 if ( m_NonIsometricTransform == NULL )
87 m_NonIsometricTransform = VTKViewer_NonIsometricTransform::New();
88 return m_NonIsometricTransform;
90 //apply existing transformation on adding SALOME_Actor
91 void AddActor(SALOME_Actor*, bool update = false);
94 void AddVector(float* o,float* p,vtkRenderer* renderer);
95 void AddAxis(vtkRenderer* renderer);
101 void onViewFitArea();
102 void onViewGlobalPan();
111 void onViewTrihedron();
115 double m_ViewNormal[3];
119 vtkRenderer* m_Renderer;
120 VTKViewer_RenderWindow* m_RW;
121 VTKViewer_RenderWindowInteractor* m_RWInteractor;
123 Standard_Boolean m_TriedronVisible;
124 vtkActorCollection* m_Triedron;
126 VTKViewer_NonIsometricTransform *m_NonIsometricTransform;