1 // VISU OBJECT : interactive object for VISU entities implementation
3 // Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
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.
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.
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
20 // See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
23 // File : VISU_View_i.hh
24 // Author : Alexey PETROV
27 #ifndef VISU_View_i_HeaderFile
28 #define VISU_View_i_HeaderFile
30 #include "VISUConfig.hh"
34 class SalomeApp_Application;
36 class SUIT_ViewManager;
37 class SUIT_ViewWindow;
39 class Plot2d_ViewFrame;
46 class View_i : public virtual POA_VISU::View,
47 public virtual Storable
49 SalomeApp_Application *myApplication;
53 SUIT_ViewWindow* myViewWindow;
56 SUIT_ViewManager* myViewManager;
58 View_i (SalomeApp_Application *theApplication,
59 SUIT_ViewManager* theViewManager);
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);
72 virtual void SetRelativePosition( CORBA::Double x, CORBA::Double y );
73 virtual void SetRelativeSize( CORBA::Double x, CORBA::Double y );
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();
87 virtual CORBA::Boolean SavePicture(const char* theFileName);
89 virtual void Close() = 0;
90 virtual void ToStream(std::ostringstream& theStr);
91 virtual const char* GetComment() const;
95 //===========================================================================
96 class XYPlot_i : public virtual POA_VISU::XYPlot,
100 typedef VISU::XYPlot TInterface;
102 XYPlot_i (SalomeApp_Application *theApplication);
105 virtual VISU::VISUType GetType() { return VISU::TXYPLOT; };
107 virtual void SetTitle (const char* theTitle);
108 virtual char* GetTitle();
110 virtual void SetSubTitle (const char* theTitle);
111 virtual char* GetSubTitle();
113 virtual void SetCurveType (VISU::XYPlot::CurveType theType);
114 virtual VISU::XYPlot::CurveType GetCurveType();
116 virtual void SetMarkerSize (CORBA::Long theSize);
117 virtual CORBA::Long GetMarkerSize();
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);
124 virtual void SetHorScaling (VISU::Scaling theScaling);
125 virtual VISU::Scaling GetHorScaling();
126 virtual void SetVerScaling (VISU::Scaling theScaling);
127 virtual VISU::Scaling GetVerScaling();
129 virtual void SetXTitle (const char* theTitle);
130 virtual char* GetXTitle();
132 virtual void SetYTitle (const char* theTitle);
133 virtual char* GetYTitle();
135 virtual void ShowLegend (CORBA::Boolean theShowing);
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();
143 virtual CORBA::Boolean SavePicture (const char* theFileName);
145 virtual void FitAll();
147 virtual void Close();
149 Plot2d_ViewFrame* myView;
151 virtual Storable* Create (int theNew);
155 //===========================================================================
156 class TableView_i : public virtual POA_VISU::TableView,
157 public virtual View_i
160 typedef VISU::TableView TInterface;
162 TableView_i (SalomeApp_Application *theApplication);
163 virtual ~TableView_i();
165 virtual VISU::VISUType GetType() { return VISU::TTABLEVIEW; };
167 virtual void SetTitle (const char* theTitle);
168 virtual char* GetTitle();
170 virtual void Close();
172 //SALOMEGUI_TableDlg* myView;
174 virtual Storable* Create (VISU::Table_ptr theTable);
178 //===========================================================================
179 class View3D_i : public virtual POA_VISU::View3D,
180 public virtual View_i
183 typedef VISU::View3D TInterface;
185 View3D_i (SalomeApp_Application *theApplication);
188 virtual VISU::VISUType GetType() { return VISU::TVIEW3D; };
191 virtual void SetTitle (const char* theTitle);
192 virtual char* GetTitle();
194 static void SetBackground (SUIT_ViewWindow* theStudyFrame,
195 const SALOMEDS::Color& theColor);
197 static SALOMEDS::Color GetBackground (SUIT_ViewWindow* theStudyFrame);
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();
206 virtual CORBA::Boolean SavePicture (const char* theFileName);
209 virtual void FitAll();
210 virtual void SetView (VISU::View3D::ViewType theType);
212 static void SetPointOfView (SUIT_ViewWindow* theStudyFrame,
213 const CORBA::Double thePosition[3]);
214 virtual void SetPointOfView (const VISU::View3D::XYZ theCoord);
216 static void GetPointOfView (SUIT_ViewWindow* theStudyFrame,
217 CORBA::Double thePosition[3]);
218 virtual VISU::View3D::XYZ_slice* GetPointOfView();
220 static void SetViewUp (SUIT_ViewWindow* theStudyFrame,
221 const CORBA::Double theViewUp[3]);
222 virtual void SetViewUp (const VISU::View3D::XYZ theDir);
224 static void GetViewUp (SUIT_ViewWindow* theStudyFrame, CORBA::Double theViewUp[3]);
225 virtual VISU::View3D::XYZ_slice* GetViewUp();
227 static void SetFocalPoint (SUIT_ViewWindow* theStudyFrame, const CORBA::Double theFocalPnt[3]);
228 virtual void SetFocalPoint (const VISU::View3D::XYZ theCoord);
230 static void View3D_i::GetFocalPoint (SUIT_ViewWindow* theStudyFrame, CORBA::Double theFocalPnt[3]);
231 virtual VISU::View3D::XYZ_slice* GetFocalPoint();
233 static void SetParallelScale (SUIT_ViewWindow* theStudyFrame, CORBA::Double theScale);
234 virtual void SetParallelScale (CORBA::Double theScale);
236 static CORBA::Double GetParallelScale (SUIT_ViewWindow* theStudyFrame);
237 virtual CORBA::Double GetParallelScale ();
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();
244 static std::string ToString (SUIT_ViewWindow* theStudyFrame);
246 static void ToStream (SUIT_ViewWindow* theStudyFrame, std::ostringstream& theStr);
248 static bool SaveViewParams (SUIT_ViewManager* theViewManager,
249 const char* theName);
250 virtual CORBA::Boolean SaveViewParams (const char* theName);
252 static bool RestoreViewParams (SUIT_ViewManager* theViewManager,
253 const char* theName);
254 virtual CORBA::Boolean RestoreViewParams (const char* theName);
256 static QString GenerateViewParamsName();
258 static void Restore (SUIT_ViewWindow* theStudyFrame,
259 const Storable::TRestoringMap& theMap);
261 virtual void Close();
264 static int myNbViewParams;
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;