]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
implementation of get/setVisualParameters() functions.
authorasv <asv@opencascade.com>
Fri, 27 Jan 2006 09:28:48 +0000 (09:28 +0000)
committerasv <asv@opencascade.com>
Fri, 27 Jan 2006 09:28:48 +0000 (09:28 +0000)
src/GLViewer/GLViewer_ViewFrame.cxx
src/GLViewer/GLViewer_ViewFrame.h
src/OCCViewer/OCCViewer_ViewWindow.cxx
src/OCCViewer/OCCViewer_ViewWindow.h
src/Plot2d/Plot2d_ViewWindow.cxx
src/Plot2d/Plot2d_ViewWindow.h
src/VTKViewer/VTKViewer_ViewWindow.cxx
src/VTKViewer/VTKViewer_ViewWindow.h

index 6600bb35f6690cd3127030a756654761c9447426..c72b71eb93de4f680d5f69df3d67c13e2ac4c952 100644 (file)
@@ -547,3 +547,16 @@ void GLViewer_ViewFrame::wheelEvent( QWheelEvent* e )
     break;
   }
 }
+
+/*! The method returns the visual parameters of this view as a formated string
+ */
+QString GLViewer_ViewFrame::getVisualParameters()
+{
+  return " ";
+}
+
+/* The method restors visual parameters of this view from a formated string
+ */
+void GLViewer_ViewFrame::setVisualParameters( const QString& parameters )
+{
+}
index d90dfd3f5ddcb6b4b25512bb245df9fb4cc9795c..8b9267a426f91537b5355bd8d0b9b2b655ef63e6 100644 (file)
@@ -72,6 +72,9 @@ public:
   QSize                   sizeHint() const;
   
   virtual void            onUpdate( int );
+
+  virtual QString         getVisualParameters();
+  virtual void            setVisualParameters( const QString& parameters );  
   
 signals:
   void                    vfDrawExternal( QPainter* );
index 4900fd9de51ef680d34f8bdfaf908b7383989030..d3e98ac4b597bf5237992f3191626dee59e506c9 100755 (executable)
@@ -851,37 +851,7 @@ void OCCViewer_ViewWindow::onClipping( bool on )
 //****************************************************************
 void OCCViewer_ViewWindow::onMemorizeView()
 {
-  double centerX, centerY, projX, projY, projZ, twist;
-  double atX, atY, atZ, eyeX, eyeY, eyeZ;
-
-  Handle(V3d_View) aView3d = myViewPort->getView();
-
-  aView3d->Center( centerX, centerY );
-  aView3d->Proj( projX, projY, projZ );
-  aView3d->At( atX, atY, atZ );
-  aView3d->Eye( eyeX, eyeY, eyeZ );
-  twist = aView3d->Twist();
-
-  viewAspect params;
-  QString aName = QTime::currentTime().toString() + QString::fromLatin1( " h:m:s" );
-
-  params.scale    = aView3d->Scale();
-  params.centerX  = centerX;
-  params.centerY  = centerY;
-  params.projX    = projX;
-  params.projY    = projY;
-  params.projZ    = projZ;
-  params.twist    = twist;
-  params.atX      = atX;
-  params.atY      = atY;
-  params.atZ      = atZ;
-  params.eyeX     = eyeX;
-  params.eyeY     = eyeY;
-  params.eyeZ     = eyeZ;
-  params.name    = aName;
-
-  myModel->appendViewAspect( params );
-
+  myModel->appendViewAspect( getViewParams() );
 }
 
 //****************************************************************
@@ -980,3 +950,81 @@ void  OCCViewer_ViewWindow::setCuttingPlane( bool on, const double x,  const dou
   v->Update();
   v->Redraw();
 }
+
+/*! The method returns the visual parameters of this view as a viewAspect object
+ */
+viewAspect OCCViewer_ViewWindow::getViewParams() const
+{
+  double centerX, centerY, projX, projY, projZ, twist;
+  double atX, atY, atZ, eyeX, eyeY, eyeZ;
+
+  Handle(V3d_View) aView3d = myViewPort->getView();
+
+  aView3d->Center( centerX, centerY );
+  aView3d->Proj( projX, projY, projZ );
+  aView3d->At( atX, atY, atZ );
+  aView3d->Eye( eyeX, eyeY, eyeZ );
+  twist = aView3d->Twist();
+
+  QString aName = QTime::currentTime().toString() + QString::fromLatin1( " h:m:s" );
+
+  viewAspect params;
+  params.scale    = aView3d->Scale();
+  params.centerX  = centerX;
+  params.centerY  = centerY;
+  params.projX    = projX;
+  params.projY    = projY;
+  params.projZ    = projZ;
+  params.twist    = twist;
+  params.atX      = atX;
+  params.atY      = atY;
+  params.atZ      = atZ;
+  params.eyeX     = eyeX;
+  params.eyeY     = eyeY;
+  params.eyeZ     = eyeZ;
+  params.name    = aName;
+
+  return params;
+}
+
+
+/*! The method returns the visual parameters of this view as a formated string
+ */
+QString OCCViewer_ViewWindow::getVisualParameters()
+{
+  viewAspect params = getViewParams();
+  return QString( "%1*%2*%3*%4*%5*%6*%7*%8*%9*%10*%11*%12*%13" ).arg( 
+    params.scale ).arg( params.centerX ).arg( params.centerY ).arg( params.projX ).arg( 
+    params.projY ).arg( params.projZ ).arg( params.twist ).arg( params.atX ).arg( 
+    params.atY ).arg( params.atZ ).arg( params.eyeX ).arg( params.eyeY ).arg( params.eyeZ );
+}
+
+/* The method restors visual parameters of this view from a formated string
+ */
+void OCCViewer_ViewWindow::setVisualParameters( const QString& parameters )
+{
+  QStringList paramsLst = QStringList::split( '*', parameters, true );
+  if ( paramsLst.size() == 13 ) {
+    printf( "-- OCC::setVisualParameters = %f %f %f %f %f %f %f %f %f %f %f %f %f\n", paramsLst[0].toDouble(),
+           paramsLst[1].toDouble(), paramsLst[2].toDouble(), paramsLst[3].toDouble(), paramsLst[4].toDouble(), 
+           paramsLst[5].toDouble(), paramsLst[6].toDouble(), paramsLst[7].toDouble(), paramsLst[8].toDouble(), 
+           paramsLst[9].toDouble(), paramsLst[10].toDouble(), paramsLst[11].toDouble(), paramsLst[12].toDouble() );
+
+    viewAspect params;
+    params.scale    = paramsLst[0].toDouble();
+    params.centerX  = paramsLst[1].toDouble();
+    params.centerY  = paramsLst[2].toDouble();
+    params.projX    = paramsLst[3].toDouble();
+    params.projY    = paramsLst[4].toDouble();
+    params.projZ    = paramsLst[5].toDouble();
+    params.twist    = paramsLst[6].toDouble();
+    params.atX      = paramsLst[7].toDouble();
+    params.atY      = paramsLst[8].toDouble();
+    params.atZ      = paramsLst[9].toDouble();
+    params.eyeX     = paramsLst[10].toDouble();
+    params.eyeY     = paramsLst[11].toDouble();
+    params.eyeZ     = paramsLst[12].toDouble();
+
+    performRestoring( params );
+  }
+}
index b4f2bc8dbee214a351c32a6417925f72edadf392..b6bda965a519a1d39348da8eadcb122a12a5f6fb 100755 (executable)
@@ -62,6 +62,9 @@ public:
 
   void setCuttingPlane( bool on, const double x = 0 , const double y = 0 , const double z = 0,
                                  const double dx = 0, const double dy = 0, const double dz = 1);
+
+  virtual QString   getVisualParameters();
+  virtual void      setVisualParameters( const QString& parameters );
  
 public slots:
   void onFrontView();
@@ -119,6 +122,8 @@ protected:
  
   virtual OperationType getButtonState(QMouseEvent* theEvent);
 
+  viewAspect getViewParams() const;
+
   OperationType         myOperation;
   OCCViewer_Viewer*     myModel;
   OCCViewer_ViewPort3d* myViewPort;
index 5c558ea0fb21e689596ce80f454a791bc2dec426..7d21b50cad63a825cd5eae798dc642add5446194 100755 (executable)
@@ -465,3 +465,16 @@ QString Plot2d_ViewWindow::filter() const
 {
   return SUIT_ViewWindow::filter() + ";;" + tr( "POSTSCRIPT_FILES" );
 }
+
+/*! The method returns the visual parameters of this view as a formated string
+ */
+QString Plot2d_ViewWindow::getVisualParameters()
+{
+  return " ";
+}
+
+/* The method restors visual parameters of this view from a formated string
+ */
+void Plot2d_ViewWindow::setVisualParameters( const QString& parameters )
+{
+}
index 571d692bf599445df6813cd2ad43dbfbef7be8a3..ec0e5bf64d363c4639d43461651b0e8d8d45174b 100755 (executable)
@@ -46,6 +46,9 @@ public:
   QToolBar*         getToolBar() { return myToolBar; };
   void              contextMenuPopup( QPopupMenu* thePopup );
 
+  virtual QString   getVisualParameters();
+  virtual void      setVisualParameters( const QString& parameters );
+
 protected:
   virtual QImage    dumpView();
   virtual QString   filter() const;
index d4500095a314523e6bee492b6484f8b5280d5e92..d8f6072353d9e9749dc0218e424419404ea5f30f 100755 (executable)
@@ -559,3 +559,56 @@ QImage VTKViewer_ViewWindow::dumpView()
   QPixmap px = QPixmap::grabWindow( myRenderWindow->winId() );
   return px.convertToImage();
 }
+
+/*! The method returns the visual parameters of this view as a formated string
+ */
+QString VTKViewer_ViewWindow::getVisualParameters()
+{
+  double pos[3], focalPnt[3], viewUp[3], parScale, scale[3];
+
+  vtkCamera* camera = myRenderer->GetActiveCamera();
+  camera->GetPosition( pos );
+  camera->GetFocalPoint( focalPnt );
+  camera->GetViewUp( viewUp );
+  parScale = camera->GetParallelScale();
+  GetScale( scale );
+
+  return QString( "%1*%2*%3*%4*%5*%6*%7*%8*%9*%10*%11*%12*%13" ).arg( 
+    pos[0] ).arg( pos[1] ).arg( pos[2] ).arg( focalPnt[0] ).arg( focalPnt[1] ).arg( 
+    focalPnt[2] ).arg( viewUp[0] ).arg( viewUp[1] ).arg( viewUp[2] ).arg( parScale ).arg(
+    scale[0] ).arg( scale[1] ).arg( scale[2] );
+}
+
+/* The method restors visual parameters of this view from a formated string
+ */
+void VTKViewer_ViewWindow::setVisualParameters( const QString& parameters )
+{
+  QStringList paramsLst = QStringList::split( '*', parameters, true );
+  if ( paramsLst.size() == 13 ) {
+    printf( "-- VTK::setVisualParameters = %f %f %f %f %f %f %f %f %f %f %f %f %f\n", paramsLst[0].toDouble(),
+           paramsLst[1].toDouble(), paramsLst[2].toDouble(), paramsLst[3].toDouble(), paramsLst[4].toDouble(), 
+           paramsLst[5].toDouble(), paramsLst[6].toDouble(), paramsLst[7].toDouble(), paramsLst[8].toDouble(), 
+           paramsLst[9].toDouble(), paramsLst[10].toDouble(), paramsLst[11].toDouble(), paramsLst[12].toDouble() );
+
+    double pos[3], focalPnt[3], viewUp[3], parScale, scale[3];
+    pos[0] = paramsLst[0].toDouble();
+    pos[0] = paramsLst[1].toDouble();
+    pos[0] = paramsLst[2].toDouble();
+    focalPnt[0] = paramsLst[3].toDouble();
+    focalPnt[0] = paramsLst[4].toDouble();
+    focalPnt[0] = paramsLst[5].toDouble();
+    viewUp[0] = paramsLst[6].toDouble();
+    viewUp[0] = paramsLst[7].toDouble();
+    viewUp[0] = paramsLst[8].toDouble();
+    parScale = paramsLst[9].toDouble();
+    scale[0] = paramsLst[10].toDouble();
+    scale[0] = paramsLst[11].toDouble();
+    scale[0] = paramsLst[12].toDouble();
+    vtkCamera* camera = myRenderer->GetActiveCamera();
+    camera->SetPosition( pos );
+    camera->SetFocalPoint( focalPnt );
+    camera->SetViewUp( viewUp );
+    camera->SetParallelScale( parScale );
+    SetScale( scale );
+  }
+}
index 951d96d4cbb7d39632c47385fd2657fcffca2436..5c02b79a6ecdabda7a25679a9522553b174c777a 100755 (executable)
@@ -70,6 +70,9 @@ public:
   void AddActor( VTKViewer_Actor*, bool update = false );
   void RemoveActor( VTKViewer_Actor*, bool update = false);
 
+  virtual QString   getVisualParameters();
+  virtual void      setVisualParameters( const QString& parameters );
+
 public slots:
   void onFrontView();
   void onBackView();