1 // File: VISU_ViewManager_i.hxx
2 // Created: Wed Jan 22 17:52:40 2003
3 // Author: Alexey PETROV
4 // <apo@ivanox.nnov.matra-dtv.fr>
7 #ifndef VISU_ViewManager_i_HeaderFile
8 #define VISU_ViewManager_i_HeaderFile
10 #include "VISUConfig.hh"
13 class VTKViewer_ViewFrame;
14 class Plot2d_ViewFrame;
15 class SALOMEGUI_TableDlg;
22 class ViewManager_i : public virtual POA_VISU::ViewManager,
26 ViewManager_i(SALOMEDS::Study_ptr theStudy);
27 virtual ~ViewManager_i() {};
28 virtual VISU::VISUType GetType() { return VISU::TVIEWMANAGER;};
30 virtual View3D_ptr Create3DView();
31 virtual View_ptr GetCurrentView();
32 virtual TableView_ptr CreateTableView(VISU::Table_ptr theTable);
33 virtual XYPlot_ptr CreateXYPlot();
34 virtual void Destroy(View_ptr theView);
37 SALOMEDS::Study_var myStudyDocument;
40 //===========================================================================
41 class View_i : public virtual POA_VISU::View,
42 public virtual Storable
48 View_i(SALOMEDS::Study_ptr theStudy);
50 virtual void SetBackground(const SALOMEDS::Color& theColor);
51 virtual SALOMEDS::Color GetBackground();
52 virtual void Minimize();
53 virtual void Restore();
54 virtual void Maximize();
55 virtual void EraseAll();
56 virtual void DisplayAll();
57 virtual void Erase(PrsObject_ptr thePrsObj);
58 virtual void Display(PrsObject_ptr thePrsObj);
59 virtual void DisplayOnly(PrsObject_ptr thePrsObj);
60 virtual void Update();
62 virtual CORBA::Boolean SavePicture(const char* theFileName);
64 virtual void Close() = 0;
65 virtual void ToStream(ostrstream& theStr);
66 virtual const char* GetComment() const;
68 virtual const char* View_i::GetEntry();
71 //===========================================================================
72 class XYPlot_i : public virtual POA_VISU::XYPlot,
76 XYPlot_i(SALOMEDS::Study_ptr theStudy);
78 virtual VISU::VISUType GetType() { return VISU::TXYPLOT;};
80 virtual void SetTitle(const char* theTitle);
81 virtual char* GetTitle();
83 virtual void SetSubTitle(const char* theTitle);
84 virtual char* GetSubTitle();
86 virtual void SetCurveType(VISU::XYPlot::CurveType theType);
87 virtual VISU::XYPlot::CurveType GetCurveType();
89 virtual void SetMarkerSize(CORBA::Long theSize);
90 virtual CORBA::Long GetMarkerSize();
92 virtual void EnableXGrid(CORBA::Boolean theMajor, CORBA::Long theNumMajor,
93 CORBA::Boolean theMinor, CORBA::Long theNumMinor);
94 virtual void EnableYGrid(CORBA::Boolean theMajor, CORBA::Long theNumMajor,
95 CORBA::Boolean theMinor, CORBA::Long theNumMinor);
97 virtual void SetHorScaling(VISU::Scaling theScaling);
98 virtual VISU::Scaling GetHorScaling();
99 virtual void SetVerScaling(VISU::Scaling theScaling);
100 virtual VISU::Scaling GetVerScaling();
102 virtual void SetXTitle(const char* theTitle);
103 virtual char* GetXTitle();
105 virtual void SetYTitle(const char* theTitle);
106 virtual char* GetYTitle();
108 virtual void ShowLegend(CORBA::Boolean theShowing);
110 virtual void SetBackground(const SALOMEDS::Color& theColor);
111 virtual SALOMEDS::Color GetBackground();
112 virtual void Minimize();
113 virtual void Restore();
114 virtual void Maximize();
115 virtual void EraseAll();
116 virtual void Erase(PrsObject_ptr thePrsObj);
117 virtual void Display(PrsObject_ptr thePrsObj);
118 virtual void DisplayOnly(PrsObject_ptr thePrsObj);
119 virtual void Update();
121 virtual CORBA::Boolean SavePicture(const char* theFileName);
123 virtual void FitAll();
125 virtual void Close();
127 QAD_StudyFrame* myStudyFrame;
128 Plot2d_ViewFrame* myView;
130 virtual Storable* Create(int theNew);
133 //===========================================================================
134 class TableView_i : public virtual POA_VISU::TableView,
135 public virtual View_i
138 TableView_i(SALOMEDS::Study_ptr theStudy);
139 virtual ~TableView_i();
140 virtual VISU::VISUType GetType() { return VISU::TTABLEVIEW;};
142 virtual void SetTitle(const char* theTitle);
143 virtual char* GetTitle();
145 virtual void Close();
147 SALOMEGUI_TableDlg* myView;
149 virtual Storable* Create(VISU::Table_var theTable);
152 //===========================================================================
153 class View3D_i : public virtual POA_VISU::View3D,
154 public virtual View_i
157 View3D_i(SALOMEDS::Study_ptr theStudy);
159 virtual VISU::VISUType GetType() { return VISU::TVIEW3D;};
162 virtual void SetTitle(const char* theTitle);
163 virtual char* GetTitle();
164 virtual void SetBackground(const SALOMEDS::Color& theColor);
165 virtual SALOMEDS::Color GetBackground();
166 virtual void Minimize();
167 virtual void Restore();
168 virtual void Maximize();
169 virtual void EraseAll();
170 virtual void DisplayAll();
171 virtual void Erase(PrsObject_ptr thePrsObj);
172 virtual void Display(PrsObject_ptr thePrsObj);
173 virtual void DisplayOnly(PrsObject_ptr thePrsObj);
174 virtual void Update();
176 virtual CORBA::Boolean SavePicture(const char* theFileName);
179 virtual void FitAll();
180 virtual void SetView(VISU::View3D::ViewType theType);
182 virtual void SetPointOfView(const VISU::View3D::XYZ theCoord);
183 virtual VISU::View3D::XYZ_slice* GetPointOfView();
185 virtual void SetViewUp(const VISU::View3D::XYZ theDir);
186 virtual VISU::View3D::XYZ_slice* GetViewUp();
188 virtual void SetFocalPoint(const VISU::View3D::XYZ theCoord);
189 virtual VISU::View3D::XYZ_slice* GetFocalPoint();
191 virtual void SetParallelScale(CORBA::Double theScale);
192 virtual CORBA::Double GetParallelScale();
194 virtual void ScaleView(VISU::View3D::Axis theAxis, CORBA::Double theParam);
195 virtual void RemoveScale();
197 virtual const char* GenerateViewParamsName();
198 virtual CORBA::Boolean SaveViewParams(const char* theName);
199 virtual CORBA::Boolean RestoreViewParams(const char* theName);
201 virtual void Close();
203 QAD_StudyFrame* myStudyFrame;
204 SALOMEDS::Color myColor;
205 CORBA::Double myPosition[3], myFocalPnt[3], myViewUp[3], myParallelScale, myScaleFactor[3];
207 Storable* Build(int theRestoring);
208 static int myNbViewParams;
211 virtual Storable* Create(int theNew);
212 virtual Storable* Restore(const Storable::TRestoringMap& theMap) throw(std::logic_error&);
213 virtual void ToStream(ostrstream& theStr);
214 virtual const char* GetComment() const;
215 static const string myComment;
217 Storable* View3DRestore(SALOMEDS::SComponent_var& theSComponent, SALOMEDS::Study_var& theStudy,
218 const char* thePrefix, const Storable::TRestoringMap& theMap);
220 VTKViewer_ViewFrame* GetViewFrame(QAD_StudyFrame* theStudyFrame);
221 vtkRenderer* GetRenderer(QAD_StudyFrame* theStudyFrame);
222 vtkCamera* GetCamera(QAD_StudyFrame* theStudyFrame);
223 void RepaintView(QAD_StudyFrame* theStudyFrame);
225 enum Displaing {eDisplayAll, eDisplay, eDisplayOnly, eErase, eEraseAll};
226 VISU_Actor* UpdateViewer(QAD_StudyFrame* theStudyFrame, int theDisplaing, Prs3d_i* thePrs = NULL);