1 // Copyright (C) 2003 CEA/DEN, EDF R&D
5 // File : VISU_ViewManager_i.hxx
6 // Author : Alexey PETROV
9 #ifndef VISU_ViewManager_i_HeaderFile
10 #define VISU_ViewManager_i_HeaderFile
12 #include "VISUConfig.hh"
15 class VTKViewer_ViewFrame;
16 class Plot2d_ViewFrame;
17 class SALOMEGUI_TableDlg;
24 class ViewManager_i : public virtual POA_VISU::ViewManager,
28 ViewManager_i(SALOMEDS::Study_ptr theStudy);
29 virtual ~ViewManager_i() {};
30 virtual VISU::VISUType GetType() { return VISU::TVIEWMANAGER;};
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);
39 SALOMEDS::Study_var myStudyDocument;
42 //===========================================================================
43 class View_i : public virtual POA_VISU::View,
44 public virtual Storable
50 View_i(SALOMEDS::Study_ptr theStudy);
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();
64 virtual CORBA::Boolean SavePicture(const char* theFileName);
66 virtual void Close() = 0;
67 virtual void ToStream(std::ostringstream& theStr);
68 virtual const char* GetComment() const;
70 virtual const char* View_i::GetEntry();
73 //===========================================================================
74 class XYPlot_i : public virtual POA_VISU::XYPlot,
78 XYPlot_i(SALOMEDS::Study_ptr theStudy);
80 virtual VISU::VISUType GetType() { return VISU::TXYPLOT;};
82 virtual void SetTitle(const char* theTitle);
83 virtual char* GetTitle();
85 virtual void SetSubTitle(const char* theTitle);
86 virtual char* GetSubTitle();
88 virtual void SetCurveType(VISU::XYPlot::CurveType theType);
89 virtual VISU::XYPlot::CurveType GetCurveType();
91 virtual void SetMarkerSize(CORBA::Long theSize);
92 virtual CORBA::Long GetMarkerSize();
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);
99 virtual void SetHorScaling(VISU::Scaling theScaling);
100 virtual VISU::Scaling GetHorScaling();
101 virtual void SetVerScaling(VISU::Scaling theScaling);
102 virtual VISU::Scaling GetVerScaling();
104 virtual void SetXTitle(const char* theTitle);
105 virtual char* GetXTitle();
107 virtual void SetYTitle(const char* theTitle);
108 virtual char* GetYTitle();
110 virtual void ShowLegend(CORBA::Boolean theShowing);
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();
123 virtual CORBA::Boolean SavePicture(const char* theFileName);
125 virtual void FitAll();
127 virtual void Close();
129 QAD_StudyFrame* myStudyFrame;
130 Plot2d_ViewFrame* myView;
132 virtual Storable* Create(int theNew);
135 //===========================================================================
136 class TableView_i : public virtual POA_VISU::TableView,
137 public virtual View_i
140 TableView_i(SALOMEDS::Study_ptr theStudy);
141 virtual ~TableView_i();
142 virtual VISU::VISUType GetType() { return VISU::TTABLEVIEW;};
144 virtual void SetTitle(const char* theTitle);
145 virtual char* GetTitle();
147 virtual void Close();
149 SALOMEGUI_TableDlg* myView;
151 virtual Storable* Create(VISU::Table_var theTable);
154 //===========================================================================
155 class View3D_i : public virtual POA_VISU::View3D,
156 public virtual View_i
159 View3D_i(SALOMEDS::Study_ptr theStudy);
161 virtual VISU::VISUType GetType() { return VISU::TVIEW3D;};
164 virtual void SetTitle(const char* theTitle);
165 virtual char* GetTitle();
167 static void SetBackground(QAD_StudyFrame* theStudyFrame, const SALOMEDS::Color& theColor);
168 virtual void SetBackground(const SALOMEDS::Color& theColor);
170 static SALOMEDS::Color GetBackground(QAD_StudyFrame* theStudyFrame);
171 virtual SALOMEDS::Color GetBackground();
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();
183 virtual CORBA::Boolean SavePicture(const char* theFileName);
186 virtual void FitAll();
187 virtual void SetView(VISU::View3D::ViewType theType);
189 static void SetPointOfView(QAD_StudyFrame* theStudyFrame, const CORBA::Double thePosition[3]);
190 virtual void SetPointOfView(const VISU::View3D::XYZ theCoord);
192 static void GetPointOfView(QAD_StudyFrame* theStudyFrame, CORBA::Double thePosition[3]);
193 virtual VISU::View3D::XYZ_slice* GetPointOfView();
195 static void SetViewUp(QAD_StudyFrame* theStudyFrame, const CORBA::Double theViewUp[3]);
196 virtual void SetViewUp(const VISU::View3D::XYZ theDir);
198 static void GetViewUp(QAD_StudyFrame* theStudyFrame, CORBA::Double theViewUp[3]);
199 virtual VISU::View3D::XYZ_slice* GetViewUp();
201 static void SetFocalPoint(QAD_StudyFrame* theStudyFrame, const CORBA::Double theFocalPnt[3]);
202 virtual void SetFocalPoint(const VISU::View3D::XYZ theCoord);
204 static void View3D_i::GetFocalPoint(QAD_StudyFrame* theStudyFrame, CORBA::Double theFocalPnt[3]);
205 virtual VISU::View3D::XYZ_slice* GetFocalPoint();
207 static void SetParallelScale(QAD_StudyFrame* theStudyFrame, CORBA::Double theScale);
208 virtual void SetParallelScale(CORBA::Double theScale);
210 static CORBA::Double GetParallelScale(QAD_StudyFrame* theStudyFrame);
211 virtual CORBA::Double GetParallelScale();
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();
217 virtual QString GenerateViewParamsName();
218 virtual CORBA::Boolean SaveViewParams(const char* theName);
219 virtual CORBA::Boolean RestoreViewParams(const char* theName);
221 virtual void Close();
223 QAD_StudyFrame* myStudyFrame;
224 //SALOMEDS::Color myColor;
225 //CORBA::Double myPosition[3], myFocalPnt[3], myViewUp[3], myParallelScale, myScaleFactor[3];
227 //Storable* Build(int theRestoring);
228 static int myNbViewParams;
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;}
238 //Storable* View3DRestore(SALOMEDS::SComponent_var& theSComponent, SALOMEDS::Study_var& theStudy,
239 // const char* thePrefix, const Storable::TRestoringMap& theMap);
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);
246 enum Displaing {eDisplayAll, eDisplay, eDisplayOnly, eErase, eEraseAll};
247 VISU_Actor* UpdateViewer(QAD_StudyFrame* theStudyFrame, int theDisplaing, Prs3d_i* thePrs = NULL);