]> SALOME platform Git repositories - modules/visu.git/blob - src/VISU_I/VISU_ViewManager_i.hh
Salome HOME
NRI : Merge from V1_2.
[modules/visu.git] / src / VISU_I / VISU_ViewManager_i.hh
1 //  Copyright (C) 2003  CEA/DEN, EDF R&D
2 //
3 //
4 //
5 //  File   : VISU_ViewManager_i.hxx
6 //  Author : Alexey PETROV
7 //  Module : VISU
8
9 #ifndef VISU_ViewManager_i_HeaderFile
10 #define VISU_ViewManager_i_HeaderFile
11
12 #include "VISUConfig.hh"
13 class QAD_Study;
14 class QAD_StudyFrame;
15 class VTKViewer_ViewFrame;
16 class Plot2d_ViewFrame;
17 class SALOMEGUI_TableDlg;
18 class VISU_Actor;
19 class vtkRenderer;
20 class vtkCamera;
21
22 namespace VISU{
23   class Prs3d_i;
24   class ViewManager_i : public virtual POA_VISU::ViewManager,
25                         public virtual Base_i
26   {
27   public:
28     ViewManager_i(SALOMEDS::Study_ptr theStudy);
29     virtual ~ViewManager_i() {};
30     virtual VISU::VISUType GetType() { return VISU::TVIEWMANAGER;};
31
32     virtual View3D_ptr Create3DView();
33     virtual View_ptr   GetCurrentView();
34     virtual TableView_ptr CreateTableView(VISU::Table_ptr theTable);
35     virtual XYPlot_ptr CreateXYPlot();
36     virtual void Destroy(View_ptr theView);
37
38   protected:
39     SALOMEDS::Study_var myStudyDocument;
40   };
41
42   //===========================================================================
43   class View_i : public virtual POA_VISU::View,
44                  public virtual Storable
45   {
46   protected:
47     QAD_Study* myStudy;
48     string myName;
49   public:
50     View_i(SALOMEDS::Study_ptr theStudy);
51     virtual ~View_i();
52     virtual void SetBackground(const SALOMEDS::Color& theColor);
53     virtual SALOMEDS::Color GetBackground();
54     virtual void Minimize();
55     virtual void Restore();
56     virtual void Maximize();
57     virtual void EraseAll();
58     virtual void DisplayAll();
59     virtual void Erase(PrsObject_ptr thePrsObj);
60     virtual void Display(PrsObject_ptr thePrsObj);
61     virtual void DisplayOnly(PrsObject_ptr thePrsObj);
62     virtual void Update();
63
64     virtual CORBA::Boolean SavePicture(const char* theFileName);
65
66     virtual void Close() = 0;
67     virtual void ToStream(std::ostringstream& theStr);
68     virtual const char* GetComment() const;
69   public:
70     virtual const char* View_i::GetEntry();
71   };
72
73   //===========================================================================
74   class XYPlot_i : public virtual POA_VISU::XYPlot,
75                    public virtual View_i
76   {
77   public:
78     XYPlot_i(SALOMEDS::Study_ptr theStudy);
79     virtual ~XYPlot_i();
80     virtual VISU::VISUType GetType() { return VISU::TXYPLOT;};
81
82     virtual void SetTitle(const char* theTitle);
83     virtual char* GetTitle();
84
85     virtual void SetSubTitle(const char* theTitle);
86     virtual char* GetSubTitle();
87
88     virtual void SetCurveType(VISU::XYPlot::CurveType theType);
89     virtual VISU::XYPlot::CurveType GetCurveType();
90
91     virtual void SetMarkerSize(CORBA::Long theSize);
92     virtual CORBA::Long GetMarkerSize();
93
94     virtual void EnableXGrid(CORBA::Boolean theMajor, CORBA::Long theNumMajor, 
95                              CORBA::Boolean theMinor, CORBA::Long theNumMinor);
96     virtual void EnableYGrid(CORBA::Boolean theMajor, CORBA::Long theNumMajor, 
97                              CORBA::Boolean theMinor, CORBA::Long theNumMinor);
98
99     virtual void SetHorScaling(VISU::Scaling theScaling);
100     virtual VISU::Scaling GetHorScaling();
101     virtual void SetVerScaling(VISU::Scaling theScaling);
102     virtual VISU::Scaling GetVerScaling();
103
104     virtual void SetXTitle(const char* theTitle);
105     virtual char* GetXTitle();
106
107     virtual void SetYTitle(const char* theTitle);
108     virtual char* GetYTitle();
109
110     virtual void ShowLegend(CORBA::Boolean theShowing);
111
112     virtual void SetBackground(const SALOMEDS::Color& theColor);
113     virtual SALOMEDS::Color GetBackground();
114     virtual void Minimize();
115     virtual void Restore();
116     virtual void Maximize();
117     virtual void EraseAll();
118     virtual void Erase(PrsObject_ptr thePrsObj);
119     virtual void Display(PrsObject_ptr thePrsObj);
120     virtual void DisplayOnly(PrsObject_ptr thePrsObj);
121     virtual void Update();
122
123     virtual CORBA::Boolean SavePicture(const char* theFileName);
124
125     virtual void FitAll();
126
127     virtual void Close();
128   protected:
129     QAD_StudyFrame*   myStudyFrame;
130     Plot2d_ViewFrame* myView;
131   public:
132     virtual Storable* Create(int theNew);
133   };
134
135   //===========================================================================
136   class TableView_i : public virtual POA_VISU::TableView,
137                       public virtual View_i
138   {
139   public:
140     TableView_i(SALOMEDS::Study_ptr theStudy);
141     virtual ~TableView_i();
142     virtual VISU::VISUType GetType() { return VISU::TTABLEVIEW;};
143
144     virtual void SetTitle(const char* theTitle);
145     virtual char* GetTitle();
146
147     virtual void Close();
148   protected:
149     SALOMEGUI_TableDlg* myView;
150   public:
151     virtual Storable* Create(VISU::Table_var theTable);
152   };
153
154   //===========================================================================
155   class View3D_i : public virtual POA_VISU::View3D,
156                    public virtual View_i
157   {
158   public:
159     View3D_i(SALOMEDS::Study_ptr theStudy);
160     virtual ~View3D_i();
161     virtual VISU::VISUType GetType() { return VISU::TVIEW3D;};
162
163     //View interface
164     virtual void SetTitle(const char* theTitle);
165     virtual char* GetTitle();
166
167     static void SetBackground(QAD_StudyFrame* theStudyFrame, const SALOMEDS::Color& theColor);
168     virtual void SetBackground(const SALOMEDS::Color& theColor);
169
170     static SALOMEDS::Color GetBackground(QAD_StudyFrame* theStudyFrame);
171     virtual SALOMEDS::Color GetBackground();
172
173     virtual void Minimize();
174     virtual void Restore();
175     virtual void Maximize();
176     virtual void EraseAll();
177     virtual void DisplayAll();
178     virtual void Erase(PrsObject_ptr thePrsObj);
179     virtual void Display(PrsObject_ptr thePrsObj);
180     virtual void DisplayOnly(PrsObject_ptr thePrsObj);
181     virtual void Update();
182
183     virtual CORBA::Boolean SavePicture(const char* theFileName);
184     
185     //View3D interface
186     virtual void FitAll();
187     virtual void SetView(VISU::View3D::ViewType theType);
188
189     static void SetPointOfView(QAD_StudyFrame* theStudyFrame, const CORBA::Double thePosition[3]);
190     virtual void SetPointOfView(const VISU::View3D::XYZ theCoord);
191
192     static void GetPointOfView(QAD_StudyFrame* theStudyFrame, CORBA::Double thePosition[3]);
193     virtual VISU::View3D::XYZ_slice* GetPointOfView();
194
195     static void SetViewUp(QAD_StudyFrame* theStudyFrame, const CORBA::Double theViewUp[3]);
196     virtual void SetViewUp(const VISU::View3D::XYZ theDir);
197
198     static void GetViewUp(QAD_StudyFrame* theStudyFrame, CORBA::Double theViewUp[3]);
199     virtual VISU::View3D::XYZ_slice* GetViewUp();
200
201     static void SetFocalPoint(QAD_StudyFrame* theStudyFrame, const CORBA::Double theFocalPnt[3]);
202     virtual void SetFocalPoint(const VISU::View3D::XYZ theCoord);
203     
204     static void View3D_i::GetFocalPoint(QAD_StudyFrame* theStudyFrame, CORBA::Double theFocalPnt[3]);
205     virtual VISU::View3D::XYZ_slice* GetFocalPoint();
206
207     static void SetParallelScale(QAD_StudyFrame* theStudyFrame, CORBA::Double theScale);
208     virtual void SetParallelScale(CORBA::Double theScale);
209     
210     static CORBA::Double GetParallelScale(QAD_StudyFrame* theStudyFrame);
211     virtual CORBA::Double GetParallelScale();
212
213     static void ScaleView(QAD_StudyFrame* theStudyFrame, VISU::View3D::Axis theAxis, CORBA::Double theParam);
214     virtual void ScaleView(VISU::View3D::Axis theAxis, CORBA::Double theParam);
215     virtual void RemoveScale();
216
217     virtual QString GenerateViewParamsName();
218     virtual CORBA::Boolean SaveViewParams(const char* theName);
219     virtual CORBA::Boolean RestoreViewParams(const char* theName);
220
221     virtual void Close();
222   protected:
223     QAD_StudyFrame* myStudyFrame;
224     //SALOMEDS::Color myColor;
225     //CORBA::Double myPosition[3], myFocalPnt[3], myViewUp[3], myParallelScale, myScaleFactor[3];
226
227     //Storable* Build(int theRestoring);
228     static int myNbViewParams;
229
230   public:
231     virtual Storable* Create(int theNew);
232     virtual Storable* Restore(const Storable::TRestoringMap& theMap) throw(std::logic_error&);
233     virtual void ToStream(std::ostringstream& theStr);
234     virtual const char* GetComment() const;
235     static const string myComment;
236     QAD_StudyFrame* GetStudyFrame() const { return myStudyFrame;}
237   };
238   //Storable* View3DRestore(SALOMEDS::SComponent_var& theSComponent, SALOMEDS::Study_var& theStudy,
239   //                      const char* thePrefix, const Storable::TRestoringMap& theMap);
240
241   VTKViewer_ViewFrame* GetViewFrame(QAD_StudyFrame* theStudyFrame);
242   vtkRenderer* GetRenderer(QAD_StudyFrame* theStudyFrame);
243   vtkCamera* GetCamera(QAD_StudyFrame* theStudyFrame);
244   void RepaintView(QAD_StudyFrame* theStudyFrame);
245
246   enum Displaing {eDisplayAll, eDisplay, eDisplayOnly, eErase, eEraseAll};
247   VISU_Actor* UpdateViewer(QAD_StudyFrame* theStudyFrame, int theDisplaing, Prs3d_i* thePrs = NULL);
248 }
249
250 #endif