00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef VISU_View_i_HeaderFile
00029 #define VISU_View_i_HeaderFile
00030
00031 #include "VISUConfig.hh"
00032 #include "SALOME_GenericObj_i.hh"
00033
00034 class QWidget;
00035
00036 class VISU_TableDlg;
00037
00038 class SalomeApp_Application;
00039
00040 class SUIT_ViewManager;
00041 class SUIT_ViewWindow;
00042
00043 class Plot2d_ViewFrame;
00044
00045 namespace VISU
00046 {
00047 class Prs3d_i;
00048 class Curve_i;
00049
00050 class VISU_I_EXPORT View_i : public virtual POA_VISU::View,
00051 public virtual SALOME::GenericObj_i,
00052 public virtual Storable
00053 {
00054 public:
00055 View_i (SalomeApp_Application *theApplication,
00056 SUIT_ViewManager* theViewManager);
00057 virtual ~View_i();
00058
00059 public:
00060 virtual void ShowPart( VISU::View::ViewRepresentation ViewRepr, CORBA::Boolean state );
00061 virtual CORBA::Boolean IsPartShown( VISU::View::ViewRepresentation ViewRepr );
00062
00063
00064 virtual void SplitRight();
00065 virtual void SplitLeft();
00066 virtual void SplitBottom();
00067 virtual void SplitTop();
00068
00069 virtual void OnTop();
00070
00071 virtual void Attract (VISU::View_ptr theView);
00072 virtual void AttractAll(VISU::View_ptr theView);
00073
00074 virtual void SetRelativePositionInSplitter(CORBA::Double thePosition);
00075 virtual void SetRelativeSizeInSplitter(CORBA::Double theSize);
00076
00077 virtual void SetRelativePositionX(CORBA::Double thePosition);
00078 virtual void SetRelativePositionY(CORBA::Double thePosition);
00079
00080 virtual void SetRelativeSizeX(CORBA::Double theSize);
00081 virtual void SetRelativeSizeY(CORBA::Double theSize);
00082
00083
00084
00085 virtual void SetViewWidth(CORBA::Long Width);
00086 virtual void SetViewHeight(CORBA::Long Height);
00087 virtual CORBA::Long GetViewWidth();
00088 virtual CORBA::Long GetViewHeight();
00089 virtual void SetViewPositionHorizontal(VISU::View::ViewPosition ViewPosHor);
00090 virtual void SetViewPositionVertical(VISU::View::ViewPosition ViewPosVer);
00091 virtual void SetRelativePosition( CORBA::Double x, CORBA::Double y );
00092 virtual void SetRelativeSize( CORBA::Double x, CORBA::Double y );
00093 virtual void Minimize();
00094 virtual void Restore();
00095 virtual void Maximize();
00096
00097
00098 virtual void SetBackground(const SALOMEDS::Color& theColor);
00099 virtual SALOMEDS::Color GetBackground();
00100
00101 virtual void EraseAll();
00102 virtual void DisplayAll();
00103 virtual void Erase(PrsObject_ptr thePrsObj);
00104 virtual void Display(PrsObject_ptr thePrsObj);
00105 virtual void DisplayOnly(PrsObject_ptr thePrsObj);
00106
00107 virtual void Update();
00108
00109 virtual CORBA::Boolean SavePicture(const char* theFileName);
00110
00111 virtual void Close() = 0;
00112 virtual void ToStream(std::ostringstream& theStr);
00113 virtual const char* GetComment() const;
00114
00115 SUIT_ViewWindow* GetViewWindow();
00116 void SetViewWindow(SUIT_ViewWindow* theViewWindow);
00117
00118 public:
00119 QWidget *myWorkspace;
00120
00121 SalomeApp_Application *myApplication;
00122 SUIT_ViewManager *myViewManager;
00123
00124 private:
00125 SUIT_ViewWindow *myViewWindow;
00126 };
00127
00128
00129
00130 class VISU_I_EXPORT XYPlot_i : public virtual POA_VISU::XYPlot,
00131 public virtual View_i
00132 {
00133 public:
00134 typedef VISU::XYPlot TInterface;
00135
00136 XYPlot_i (SalomeApp_Application *theApplication);
00137 virtual ~XYPlot_i();
00138
00139 virtual VISU::VISUType GetType() { return VISU::TXYPLOT; };
00140
00141 virtual void SetTitle (const char* theTitle);
00142 virtual char* GetTitle();
00143
00144 virtual void SetSubTitle (const char* theTitle);
00145 virtual char* GetSubTitle();
00146
00147 virtual void SetCurveType (VISU::XYPlot::CurveType theType);
00148 virtual VISU::XYPlot::CurveType GetCurveType();
00149
00150 virtual void SetMarkerSize (CORBA::Long theSize);
00151 virtual CORBA::Long GetMarkerSize();
00152
00153 virtual void EnableXGrid (CORBA::Boolean theMajor, CORBA::Long theNumMajor,
00154 CORBA::Boolean theMinor, CORBA::Long theNumMinor);
00155 virtual void EnableYGrid (CORBA::Boolean theMajor, CORBA::Long theNumMajor,
00156 CORBA::Boolean theMinor, CORBA::Long theNumMinor);
00157
00158 virtual void EnableYGrid (CORBA::Boolean theMajor, CORBA::Long theNumMajor,
00159 CORBA::Boolean theMinor, CORBA::Long theNumMinor,
00160 CORBA::Boolean the2Major, CORBA::Long the2NumMajor,
00161 CORBA::Boolean the2Minor, CORBA::Long the2NumMinor);
00162
00163 virtual void SetHorScaling (VISU::Scaling theScaling);
00164 virtual VISU::Scaling GetHorScaling();
00165 virtual void SetVerScaling (VISU::Scaling theScaling);
00166 virtual VISU::Scaling GetVerScaling();
00167
00168 virtual void SetXTitle (const char* theTitle);
00169 virtual char* GetXTitle();
00170
00171 virtual void SetYTitle (const char* theTitle);
00172 virtual char* GetYTitle();
00173
00174 virtual void ShowLegend (CORBA::Boolean theShowing);
00175
00176 virtual void EraseAll();
00177 virtual void Erase (PrsObject_ptr thePrsObj);
00178 virtual void Display (PrsObject_ptr thePrsObj);
00179 virtual void DisplayOnly (PrsObject_ptr thePrsObj);
00180 virtual void Update();
00181
00182 virtual void FitAll();
00183 virtual void FitXRange(CORBA::Double xMin, CORBA::Double xMax);
00184 virtual void FitYRange(CORBA::Double yMin, CORBA::Double yMax);
00185 virtual void FitRange(CORBA::Double xMin, CORBA::Double xMax,
00186 CORBA::Double yMin, CORBA::Double yMax);
00187 virtual void GetFitRanges(double& xMin, double& xMax, double& yMin, double& yMax);
00188
00189 virtual void Close();
00190
00191 Plot2d_ViewFrame* GetView() { return myView; }
00192 protected:
00193 Plot2d_ViewFrame* myView;
00194 public:
00195 virtual Storable* Create (int theNew);
00196 };
00197
00198
00199
00200 class VISU_I_EXPORT TableView_i : public virtual POA_VISU::TableView,
00201 public virtual View_i
00202 {
00203 public:
00204 typedef VISU::TableView TInterface;
00205
00206 TableView_i (SalomeApp_Application *theApplication);
00207 virtual ~TableView_i();
00208
00209 virtual VISU::VISUType GetType() { return VISU::TTABLEVIEW; };
00210
00211 virtual void SetTitle (const char* theTitle);
00212 virtual char* GetTitle();
00213
00214 virtual void Close();
00215 protected:
00216 VISU_TableDlg* myView;
00217 public:
00218 virtual Storable* Create (VISU::Table_ptr theTable);
00219 };
00220
00221
00222
00223 class VISU_I_EXPORT View3D_i : public virtual POA_VISU::View3D,
00224 public virtual View_i
00225 {
00226 public:
00227 typedef VISU::View3D TInterface;
00228
00229 View3D_i (SalomeApp_Application *theApplication);
00230 virtual ~View3D_i();
00231
00232 virtual VISU::VISUType GetType() { return VISU::TVIEW3D; };
00233
00234
00235 virtual void SetTitle (const char* theTitle);
00236 virtual char* GetTitle();
00237
00238 static void SetBackground (SUIT_ViewWindow* theViewWindow,
00239 const SALOMEDS::Color& theColor);
00240
00241 static SALOMEDS::Color GetBackground (SUIT_ViewWindow* theViewWindow);
00242
00243 virtual void EraseAll();
00244 virtual void DisplayAll();
00245 virtual void Erase (PrsObject_ptr thePrsObj);
00246 virtual void Display (PrsObject_ptr thePrsObj);
00247 virtual void DisplayOnly (PrsObject_ptr thePrsObj);
00248 virtual void Update();
00249
00250
00251 virtual void FitAll();
00252 virtual void SetView (VISU::View3D::ViewType theType);
00253
00254 static void SetPointOfView (SUIT_ViewWindow* theViewWindow,
00255 const CORBA::Double thePosition[3]);
00256 virtual void SetPointOfView (const VISU::View3D::XYZ theCoord);
00257
00258 static void GetPointOfView (SUIT_ViewWindow* theViewWindow,
00259 CORBA::Double thePosition[3]);
00260 virtual VISU::View3D::XYZ_slice* GetPointOfView();
00261
00262 static void SetViewUp (SUIT_ViewWindow* theViewWindow,
00263 const CORBA::Double theViewUp[3]);
00264 virtual void SetViewUp (const VISU::View3D::XYZ theDir);
00265
00266 static void GetViewUp (SUIT_ViewWindow* theViewWindow, CORBA::Double theViewUp[3]);
00267 virtual VISU::View3D::XYZ_slice* GetViewUp();
00268
00269 static void SetFocalPoint (SUIT_ViewWindow* theViewWindow, const CORBA::Double theFocalPnt[3]);
00270 virtual void SetFocalPoint (const VISU::View3D::XYZ theCoord);
00271
00272 static void GetFocalPoint (SUIT_ViewWindow* theViewWindow, CORBA::Double theFocalPnt[3]);
00273 virtual VISU::View3D::XYZ_slice* GetFocalPoint();
00274
00275 static void SetParallelScale (SUIT_ViewWindow* theViewWindow, CORBA::Double theScale);
00276 virtual void SetParallelScale (CORBA::Double theScale);
00277
00278 static CORBA::Double GetParallelScale (SUIT_ViewWindow* theViewWindow);
00279 virtual CORBA::Double GetParallelScale ();
00280
00281 static void ScaleView (SUIT_ViewWindow* theViewWindow,
00282 VISU::View3D::Axis theAxis, CORBA::Double theParam);
00283 virtual void ScaleView (VISU::View3D::Axis theAxis, CORBA::Double theParam);
00284 virtual void RemoveScale();
00285
00286 static std::string ToString (SUIT_ViewWindow* theViewWindow);
00287
00288 static void ToStream (SUIT_ViewWindow* theViewWindow, std::ostringstream& theStr);
00289
00290 static bool SaveViewParams (SUIT_ViewManager* theViewManager,
00291 const std::string& theName);
00292 virtual CORBA::Boolean SaveViewParams (const char* theViewParamsName);
00293
00294 static bool RestoreViewParams (SUIT_ViewManager* theViewManager,
00295 const std::string& theName);
00296 virtual CORBA::Boolean RestoreViewParams (const char* theViewParamsName);
00297
00298 static QString GenerateViewParamsName();
00299
00300 static void Restore (SUIT_ViewWindow* theViewWindow,
00301 const Storable::TRestoringMap& theMap);
00302
00303 virtual void Close();
00304
00305
00306 virtual PresentationType GetPresentationType(ScalarMap_ptr thePrs);
00307 virtual CORBA::Boolean IsShrinked (ScalarMap_ptr thePrs);
00308 virtual CORBA::Boolean IsShaded (ScalarMap_ptr thePrs);
00309 virtual CORBA::Double GetOpacity (ScalarMap_ptr thePrs);
00310 virtual CORBA::Double GetLineWidth (ScalarMap_ptr thePrs);
00311 virtual Quadratic2DPresentationType GetQuadratic2DPresentationType(ScalarMap_ptr thePrs);
00312
00313 virtual char* SetPresentationType(ScalarMap_ptr thePrs, PresentationType thePrsType);
00314 virtual char* SetShrinked (ScalarMap_ptr thePrs, CORBA::Boolean isShrinked);
00315 virtual char* SetShaded (ScalarMap_ptr thePrs, CORBA::Boolean isShaded);
00316 virtual char* SetOpacity (ScalarMap_ptr thePrs, CORBA::Double theOpacity);
00317 virtual char* SetLineWidth (ScalarMap_ptr thePrs, CORBA::Double theLineWidth);
00318 virtual char* SetQuadratic2DPresentationType(ScalarMap_ptr thePrs, Quadratic2DPresentationType theType);
00319
00320 protected:
00321 static int myNbViewParams;
00322
00323 public:
00324 virtual Storable* Create (int theNew);
00325 virtual void ToStream (std::ostringstream& theStr);
00326 virtual const char* GetComment() const;
00327 static const std::string myComment;
00328 };
00329 }
00330
00331 #endif