]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
GUITHARE issue 20930: Add possibility to change time axis unity. CTH_2_5_2 CTH_2_5_3 CTH_2_6_0
authorouv <oleg.uvarov@opencascade.com>
Tue, 22 Jun 2021 14:40:37 +0000 (17:40 +0300)
committerouv <oleg.uvarov@opencascade.com>
Tue, 22 Jun 2021 14:40:37 +0000 (17:40 +0300)
src/Plot2d/Plot2d_Curve.cxx
src/Plot2d/Plot2d_Curve.h
src/Plot2d/Plot2d_ViewFrame.cxx
src/Plot2d/Plot2d_ViewFrame.h
src/Plot3d/Plot3d_Actor.cxx
src/Plot3d/Plot3d_Actor.h

index c1807dbe61070d3ef8584ed6e9f7a321177a1165..427680c8833c162ee8b72bb9f8db858925a38858 100755 (executable)
@@ -260,12 +260,12 @@ void Plot2d_Curve::setData( const double* hData, const double* vData,
 /*!
 Gets curve's data : abscissas of points
 */
-double* Plot2d_Curve::horData() const
+double* Plot2d_Curve::horData( const double theMultiplier ) const
 {
   int aNPoints = nbPoints();
   double* aX = new double[aNPoints];
   for (int i = 0; i < aNPoints; i++) {
-    aX[i] = myPoints[i].x;
+    aX[i] = myPoints[i].x * theMultiplier;
   }
   return aX;
 }
index 48ecfb1ffbbb0cbab936c9a15a374dc807d8fbcc..e1ab97e757c15e4d405a7ba55d9c8b069a93d6fa 100755 (executable)
@@ -75,7 +75,7 @@ public:
 
   void               setData( const double*, const double*, 
                                                long, const QStringList& = QStringList(), const int* theColorIds = 0 );
-  double*            horData() const;
+  double*            horData( const double ) const;
   double*            verData() const;
   int*               colorData() const;
 
index 4ffc36b6459895fcf06150c28e65bf488adfaed0..ccba2772a364203d1ddb6237f4d5835f737f3dfd 100755 (executable)
@@ -180,7 +180,10 @@ Plot2d_ViewFrame::Plot2d_ViewFrame( QWidget* parent, const QString& title )
        myXGridMinorEnabled( false ), myYGridMinorEnabled( false ), myY2GridMinorEnabled( false ),
        myXGridMaxMajor( 8 ), myYGridMaxMajor( 8 ), myY2GridMaxMajor( 8 ),
        myXGridMaxMinor( 5 ), myYGridMaxMinor( 5 ), myY2GridMaxMinor( 5 ),
-       myXMode( 0 ), myYMode( 0 ), mySecondY( false ), myKeepCurrentRange( false ),
+       myXMode( 0 ), myYMode( 0 ),
+       myXDistance( 0 ), myYDistance( 0 ), myYDistance2( 0 ),
+       mySecondY( false ), myKeepCurrentRange( false ),
+       myXMultiplier( 1 ),
        myTitleAutoUpdate( true ), myXTitleAutoUpdate( true ), myYTitleAutoUpdate( true ),
        myTitleChangedByUser( false ), myXTitleChangedByUser( false ), myYTitleChangedByUser( false ),
        myY2TitleChangedByUser( false ), myIsTimeColorization( false ), myTimePosition( -1 ), myInactiveColor( Qt::gray )
@@ -309,7 +312,7 @@ void Plot2d_ViewFrame::setSecondY( const bool& theSecondY )
 /*!
   Get second Y
 */
-bool Plot2d_ViewFrame::getSecondY()
+bool Plot2d_ViewFrame::getSecondY() const
 {
   return mySecondY;
 }
@@ -325,11 +328,27 @@ void Plot2d_ViewFrame::setKeepCurrentRange( const bool& theKeepCurrentRange )
 /*!
   Get flag which indicate keep current range or not
 */
-bool Plot2d_ViewFrame::getKeepCurrentRange()
+bool Plot2d_ViewFrame::getKeepCurrentRange() const
 {
   return myKeepCurrentRange;
 }
 
+/*!
+  Set X axis multiplier
+*/
+void Plot2d_ViewFrame::setXMultiplier( const double theXMultiplier )
+{
+  myXMultiplier = theXMultiplier;
+}
+
+/*!
+  Get X axis multiplier
+*/
+double Plot2d_ViewFrame::getXMultiplier() const
+{
+  return myXMultiplier;
+}
+
 /*!
   Erase presentation
 */
@@ -674,7 +693,7 @@ void Plot2d_ViewFrame::displayCurve( Plot2d_Curve* curve, bool update )
       curve->buildSymbolsColorMap( myPlot, MAX_ATTEMPTS );
     }
     setCurveType( aPCurve, myCurveType );
-    aPCurve->setData( curve->horData(), curve->verData(), curve->nbPoints() );
+    aPCurve->setData( curve->horData( 1.0 / myXMultiplier ), curve->verData(), curve->nbPoints() );
     aPCurve->setYAxis( curve->getYAxis() );
     aPCurve->setSymbolsColorData( curve->colorData(), curve->nbPoints() );
     aPCurve->setSymbolsColorMap( curve->getColorMap() );
@@ -768,7 +787,7 @@ void Plot2d_ViewFrame::updateCurve( Plot2d_Curve* curve, bool update )
                QBrush( curve->getColor() ), 
                QPen( curve->getColor(), 1 ), // width's set to 1 for correct printing
                QSize( myMarkerSize, myMarkerSize ) ) );
-      aPCurve->setData( curve->horData(), curve->verData(), curve->nbPoints() );
+      aPCurve->setData( curve->horData( 1.0 / myXMultiplier ), curve->verData(), curve->nbPoints() );
       Plot2d_PlotCurve* aPlot2dCurve = dynamic_cast< Plot2d_PlotCurve* >( aPCurve );
       if ( aPlot2dCurve )
       {
index 20e633cb7d858ecc50eee98339cd8d8ec9b28de0..f0a814c21326c2dbb64c02f61d7b3d1dc43dec5b 100755 (executable)
@@ -130,10 +130,13 @@ public:
   QString getTitle( ObjectType type ) const;
 
   void    setSecondY( const bool& theSecondY );
-  bool    getSecondY();
+  bool    getSecondY() const;
 
-  bool    getKeepCurrentRange();
   void    setKeepCurrentRange( const bool& theKeepCurrentRange );
+  bool    getKeepCurrentRange() const;
+
+  void    setXMultiplier( const double theXMultiplier );
+  double  getXMultiplier() const;
 
   bool    isTitleChangedByUser( const ObjectType type );
   void    forgetLocalUserChanges( const ObjectType type );
@@ -244,7 +247,9 @@ protected:
   double         myXDistance, myYDistance, myYDistance2;
   bool           mySecondY;
   bool           myKeepCurrentRange;
-  
+
+  double         myXMultiplier; // 0.001 for ms, 1 for seconds, 60 for minutes, 3600 for hours
+
   bool           myTitleAutoUpdate, myXTitleAutoUpdate, myYTitleAutoUpdate;
   bool           myTitleChangedByUser, myXTitleChangedByUser, myYTitleChangedByUser,
                  myY2TitleChangedByUser;
index f79a9dcaa502e4d29708547364beada4af7b068d..21a525249acf060979ea71b017385c0d3fc3032a 100644 (file)
@@ -90,6 +90,8 @@ Plot3d_Actor::Plot3d_Actor()
   myStartPoint = 0;
   myEndPoint = 0;
 
+  myTimeUnit = -1;
+
   // Scalar bar
   myToDisplayScalarBar = false;
 
@@ -699,3 +701,21 @@ void Plot3d_Actor::GetRealBounds( double theBounds[6] ) const
   theBounds[4] = myRealBounds[4];
   theBounds[5] = myRealBounds[5];
 }
+
+//=============================================================================
+// Function : SetTimeUnit
+// Purpose  : 
+//=============================================================================
+void Plot3d_Actor::SetTimeUnit( const int theTimeUnit )
+{
+  myTimeUnit = theTimeUnit;
+}
+
+//=============================================================================
+// Function : GetTimeUnit
+// Purpose  : 
+//=============================================================================
+int Plot3d_Actor::GetTimeUnit() const
+{
+  return myTimeUnit;
+}
index 40fac912a3edbff6d74058fb4d0d4b55dcd80521..95a0a469f61624b66d882cce1c8fdefaeb9824b2 100644 (file)
@@ -115,6 +115,9 @@ public:
 
   void                                GetRealBounds( double theBounds[6] ) const;
 
+  void                                SetTimeUnit( const int );
+  int                                 GetTimeUnit() const;
+
 protected:
   int                                 myNX;
   int                                 myNY;
@@ -151,6 +154,8 @@ protected:
   int                                 myEndPoint;
 
   double                              myRealBounds[6];
+
+  int                                 myTimeUnit; // defined and used in GUITHARE
 };
 
 #endif