]> SALOME platform Git repositories - modules/visu.git/blob - src/VISU_I/VISU_View_i.hh
Salome HOME
Compiler errors on gcc 3.4.1 corrected:
[modules/visu.git] / src / VISU_I / VISU_View_i.hh
1 //  VISU OBJECT : interactive object for VISU entities implementation
2 //
3 //  Copyright (C) 2003  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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
21 //
22 //
23 //  File   : VISU_View_i.hh
24 //  Author : Alexey PETROV
25 //  Module : VISU
26
27 #ifndef VISU_View_i_HeaderFile
28 #define VISU_View_i_HeaderFile
29
30 #include "VISUConfig.hh"
31
32 class QWidget;
33
34 class SalomeApp_Application;
35
36 class SUIT_ViewManager;
37 class SUIT_ViewWindow;
38
39 class Plot2d_ViewFrame;
40
41 namespace VISU
42 {
43   class Prs3d_i;
44   class Curve_i;
45
46   class View_i : public virtual POA_VISU::View,
47                  public virtual Storable
48   {
49     SalomeApp_Application *myApplication;
50
51   public:
52     QWidget* myWorkspace;
53     SUIT_ViewWindow* myViewWindow;
54
55   protected:
56     SUIT_ViewManager* myViewManager;
57
58     View_i (SalomeApp_Application *theApplication,
59             SUIT_ViewManager* theViewManager);
60     virtual ~View_i();
61
62   public:
63     virtual void ShowPart( VISU::View::ViewRepresentation ViewRepr, CORBA::Boolean state  );
64     virtual CORBA::Boolean IsPartShown( VISU::View::ViewRepresentation ViewRepr );
65     virtual void SetViewWidth(CORBA::Long Width);
66     virtual void SetViewHeight(CORBA::Long Height);
67     virtual CORBA::Long GetViewWidth();
68     virtual CORBA::Long GetViewHeight();
69     virtual void SetViewPositionHorizontal(VISU::View::ViewPosition ViewPosHor);
70     virtual void SetViewPositionVertical(VISU::View::ViewPosition ViewPosVer);
71
72     virtual void SetRelativePosition( CORBA::Double x, CORBA::Double y );
73     virtual void SetRelativeSize( CORBA::Double x, CORBA::Double y );
74
75     virtual void SetBackground(const SALOMEDS::Color& theColor);
76     virtual SALOMEDS::Color GetBackground();
77     virtual void Minimize();
78     virtual void Restore();
79     virtual void Maximize();
80     virtual void EraseAll();
81     virtual void DisplayAll();
82     virtual void Erase(PrsObject_ptr thePrsObj);
83     virtual void Display(PrsObject_ptr thePrsObj);
84     virtual void DisplayOnly(PrsObject_ptr thePrsObj);
85     virtual void Update();
86
87     virtual CORBA::Boolean SavePicture(const char* theFileName);
88
89     virtual void Close() = 0;
90     virtual void ToStream(std::ostringstream& theStr);
91     virtual const char* GetComment() const;
92   };
93
94
95   //===========================================================================
96   class XYPlot_i : public virtual POA_VISU::XYPlot,
97                    public virtual View_i
98   {
99   public:
100     typedef VISU::XYPlot TInterface;
101
102     XYPlot_i (SalomeApp_Application *theApplication);
103     virtual ~XYPlot_i();
104
105     virtual VISU::VISUType GetType() { return VISU::TXYPLOT; };
106
107     virtual void SetTitle (const char* theTitle);
108     virtual char* GetTitle();
109
110     virtual void SetSubTitle (const char* theTitle);
111     virtual char* GetSubTitle();
112
113     virtual void SetCurveType (VISU::XYPlot::CurveType theType);
114     virtual VISU::XYPlot::CurveType GetCurveType();
115
116     virtual void SetMarkerSize (CORBA::Long theSize);
117     virtual CORBA::Long GetMarkerSize();
118
119     virtual void EnableXGrid (CORBA::Boolean theMajor, CORBA::Long theNumMajor,
120                               CORBA::Boolean theMinor, CORBA::Long theNumMinor);
121     virtual void EnableYGrid (CORBA::Boolean theMajor, CORBA::Long theNumMajor,
122                               CORBA::Boolean theMinor, CORBA::Long theNumMinor);
123
124     virtual void SetHorScaling (VISU::Scaling theScaling);
125     virtual VISU::Scaling GetHorScaling();
126     virtual void SetVerScaling (VISU::Scaling theScaling);
127     virtual VISU::Scaling GetVerScaling();
128
129     virtual void SetXTitle (const char* theTitle);
130     virtual char* GetXTitle();
131
132     virtual void SetYTitle (const char* theTitle);
133     virtual char* GetYTitle();
134
135     virtual void ShowLegend (CORBA::Boolean theShowing);
136
137     virtual void EraseAll();
138     virtual void Erase (PrsObject_ptr thePrsObj);
139     virtual void Display (PrsObject_ptr thePrsObj);
140     virtual void DisplayOnly (PrsObject_ptr thePrsObj);
141     virtual void Update();
142
143     virtual CORBA::Boolean SavePicture (const char* theFileName);
144
145     virtual void FitAll();
146
147     virtual void Close();
148   protected:
149     Plot2d_ViewFrame* myView;
150   public:
151     virtual Storable* Create (int theNew);
152   };
153
154
155   //===========================================================================
156   class TableView_i : public virtual POA_VISU::TableView,
157                       public virtual View_i
158   {
159   public:
160     typedef VISU::TableView TInterface;
161
162     TableView_i (SalomeApp_Application *theApplication);
163     virtual ~TableView_i();
164
165     virtual VISU::VISUType GetType() { return VISU::TTABLEVIEW; };
166
167     virtual void SetTitle (const char* theTitle);
168     virtual char* GetTitle();
169
170     virtual void Close();
171   protected:
172     //SALOMEGUI_TableDlg* myView;
173   public:
174     virtual Storable* Create (VISU::Table_ptr theTable);
175   };
176
177
178   //===========================================================================
179   class View3D_i : public virtual POA_VISU::View3D,
180                    public virtual View_i
181   {
182   public:
183     typedef VISU::View3D TInterface;
184
185     View3D_i (SalomeApp_Application *theApplication);
186     virtual ~View3D_i();
187
188     virtual VISU::VISUType GetType() { return VISU::TVIEW3D; };
189
190     //View interface
191     virtual void SetTitle (const char* theTitle);
192     virtual char* GetTitle();
193
194     static  void SetBackground (SUIT_ViewWindow* theStudyFrame,
195                                 const SALOMEDS::Color& theColor);
196
197     static  SALOMEDS::Color GetBackground (SUIT_ViewWindow* theStudyFrame);
198
199     virtual void EraseAll();
200     virtual void DisplayAll();
201     virtual void Erase (PrsObject_ptr thePrsObj);
202     virtual void Display (PrsObject_ptr thePrsObj);
203     virtual void DisplayOnly (PrsObject_ptr thePrsObj);
204     virtual void Update();
205
206     virtual CORBA::Boolean SavePicture (const char* theFileName);
207
208     //View3D interface
209     virtual void FitAll();
210     virtual void SetView (VISU::View3D::ViewType theType);
211
212     static  void SetPointOfView (SUIT_ViewWindow* theStudyFrame,
213                                  const CORBA::Double thePosition[3]);
214     virtual void SetPointOfView (const VISU::View3D::XYZ theCoord);
215
216     static  void GetPointOfView (SUIT_ViewWindow* theStudyFrame,
217                                  CORBA::Double thePosition[3]);
218     virtual VISU::View3D::XYZ_slice* GetPointOfView();
219
220     static  void SetViewUp (SUIT_ViewWindow* theStudyFrame,
221                             const CORBA::Double theViewUp[3]);
222     virtual void SetViewUp (const VISU::View3D::XYZ theDir);
223
224     static  void GetViewUp (SUIT_ViewWindow* theStudyFrame, CORBA::Double theViewUp[3]);
225     virtual VISU::View3D::XYZ_slice* GetViewUp();
226
227     static  void SetFocalPoint (SUIT_ViewWindow* theStudyFrame, const CORBA::Double theFocalPnt[3]);
228     virtual void SetFocalPoint (const VISU::View3D::XYZ theCoord);
229
230     static  void View3D_i::GetFocalPoint (SUIT_ViewWindow* theStudyFrame, CORBA::Double theFocalPnt[3]);
231     virtual VISU::View3D::XYZ_slice* GetFocalPoint();
232
233     static  void SetParallelScale (SUIT_ViewWindow* theStudyFrame, CORBA::Double theScale);
234     virtual void SetParallelScale (CORBA::Double theScale);
235
236     static  CORBA::Double GetParallelScale (SUIT_ViewWindow* theStudyFrame);
237     virtual CORBA::Double GetParallelScale ();
238
239     static  void ScaleView (SUIT_ViewWindow* theStudyFrame,
240                             VISU::View3D::Axis theAxis, CORBA::Double theParam);
241     virtual void ScaleView (VISU::View3D::Axis theAxis, CORBA::Double theParam);
242     virtual void RemoveScale();
243
244     static std::string ToString (SUIT_ViewWindow* theStudyFrame);
245
246     static void ToStream (SUIT_ViewWindow* theStudyFrame, std::ostringstream& theStr);
247
248     static  bool           SaveViewParams (SUIT_ViewManager* theViewManager,
249                                            const char* theName);
250     virtual CORBA::Boolean SaveViewParams (const char* theName);
251
252     static  bool           RestoreViewParams (SUIT_ViewManager* theViewManager,
253                                               const char* theName);
254     virtual CORBA::Boolean RestoreViewParams (const char* theName);
255
256     static QString GenerateViewParamsName();
257
258     static  void Restore (SUIT_ViewWindow* theStudyFrame,
259                           const Storable::TRestoringMap& theMap);
260
261     virtual void Close();
262
263   protected:
264     static int myNbViewParams;
265
266   public:
267     virtual Storable* Create (int theNew);
268     virtual void ToStream (std::ostringstream& theStr);
269     virtual const char* GetComment() const;
270     static const std::string myComment;
271   };
272 }
273
274 #endif