]> SALOME platform Git repositories - modules/hydro.git/commitdiff
Salome HOME
#refs 647
authorisn <isn@opencascade.com>
Mon, 24 Aug 2015 10:41:27 +0000 (13:41 +0300)
committerisn <isn@opencascade.com>
Mon, 24 Aug 2015 10:51:58 +0000 (13:51 +0300)
src/HYDROData/HYDROData_Bathymetry.cxx
src/HYDROData/HYDROData_Bathymetry.h
src/HYDROData/HYDROData_IPolyline.h
src/HYDROData/HYDROData_PolylineXY.cxx
src/HYDROData/HYDROData_PolylineXY.h
src/HYDROData/HYDROData_ProfileUZ.cxx
src/HYDROData/HYDROData_ProfileUZ.h
src/HYDROData/HYDROData_SinusX.cxx

index a43700c9c21eeed59fa2ddf9935cba8d48845181..e48d04ffd93f6e3eae9ced1edeb14187b0a66f12 100644 (file)
@@ -99,7 +99,7 @@ void HYDROData_Bathymetry::SetAltitudePoints( const AltitudePoints& thePoints )
   SetToUpdate( true );
 }
 
-HYDROData_Bathymetry::AltitudePoints HYDROData_Bathymetry::GetAltitudePoints() const
+HYDROData_Bathymetry::AltitudePoints HYDROData_Bathymetry::GetAltitudePoints(bool IsConvertToGlobal) const
 {
   AltitudePoints aPoints;
 
@@ -111,6 +111,7 @@ HYDROData_Bathymetry::AltitudePoints HYDROData_Bathymetry::GetAltitudePoints() c
   if ( !aLabel.FindAttribute( TDataStd_RealArray::GetID(), aCoordsArray ) )
     return aPoints;
 
+  Handle(HYDROData_Document) aDoc = HYDROData_Document::Document( myLab );
   for ( int i = aCoordsArray->Lower(), n = aCoordsArray->Upper(); i <= n; )
   {
     if ( i + 3 > n + 1 )
@@ -121,6 +122,8 @@ HYDROData_Bathymetry::AltitudePoints HYDROData_Bathymetry::GetAltitudePoints() c
     aPoint.SetY( aCoordsArray->Value( i++ ) );
     aPoint.SetZ( aCoordsArray->Value( i++ ) );
 
+    if( IsConvertToGlobal )
+      aDoc->Transform( aPoint, false );
     aPoints.Append( aPoint );
   }
 
index 9cd17328fe7200ad90cfc09f4a0d4b4785fb6410..5c3551997e1ba8ec082dd48654cfe3726f97cb9e 100644 (file)
@@ -81,7 +81,7 @@ public:
    * Returns altitude points list.
    * \return points list
    */
-  HYDRODATA_EXPORT virtual AltitudePoints   GetAltitudePoints() const;
+  HYDRODATA_EXPORT virtual AltitudePoints   GetAltitudePoints(bool IsConvertToGlobal = false) const;
 
   /**
    * Remove all altitude points.
index 1c4728995fbed9fcc1ec5ac261a6769f1690611c..5d15d916eb8d27d4d5986827672b61248050305f 100644 (file)
@@ -195,7 +195,7 @@ public:
    *                        only for section with this index
    * \return list of points
    */
-  HYDRODATA_EXPORT virtual PointsList GetPoints( const int theSectionIndex = -1 ) const = 0;
+  HYDRODATA_EXPORT virtual PointsList GetPoints( const int theSectionIndex = -1, bool IsConvertToGlobal = false ) const = 0;
 
 protected:
 
index 37559e3f3a43775ac7c1ef4a4c9501e839f5c9e2..839e949a123ba47ce64dd36d253f7dca79cb6e93 100755 (executable)
@@ -1076,7 +1076,7 @@ void HYDROData_PolylineXY::RemovePoint( const int theSectionIndex,
   SetToUpdate( true );
 }
 
-HYDROData_PolylineXY::PointsList HYDROData_PolylineXY::GetPoints( const int theSectionIndex ) const
+HYDROData_PolylineXY::PointsList HYDROData_PolylineXY::GetPoints( const int theSectionIndex, bool IsConvertToGlobal ) const
 {
   PointsList aResList;
 
@@ -1092,9 +1092,12 @@ HYDROData_PolylineXY::PointsList HYDROData_PolylineXY::GetPoints( const int theS
 
   TColStd_ListIteratorOfListOfReal anIterX( aListX->List() );
   TColStd_ListIteratorOfListOfReal anIterY( aListY->List() );
+  Handle(HYDROData_Document) aDoc = HYDROData_Document::Document( myLab );
   for ( ; anIterX.More() && anIterY.More(); anIterX.Next(), anIterY.Next() )
   {
     Point aPoint( anIterX.Value(), anIterY.Value() );
+    if (IsConvertToGlobal)
+      aDoc->Transform( aPoint, false );
     aResList.Append( aPoint );
   }
 
index c088b987d3659dcd5d2ceddb9599ce270080765d..4e70f42bbc06fb1e882f03cac022ba4b141f0cd9 100644 (file)
@@ -280,7 +280,7 @@ public:
    *                        only for section with this index
    * \return list of points
    */
-  HYDRODATA_EXPORT virtual PointsList GetPoints( const int theSectionIndex = -1 ) const;
+  HYDRODATA_EXPORT virtual PointsList GetPoints( const int theSectionIndex = -1, bool IsConvertToGlobal = false ) const;
 
 
   /**
index 1189970cb45bfe753c1ae92687a2a2eec03186eb..49fa3899596e151e8b3e7ec993ebc9765598062f 100755 (executable)
@@ -258,7 +258,7 @@ void HYDROData_ProfileUZ::RemovePoint( const int /*theSectionIndex*/,
   }
 }
 
-HYDROData_ProfileUZ::PointsList HYDROData_ProfileUZ::GetPoints( const int /*theSectionIndex*/ ) const
+HYDROData_ProfileUZ::PointsList HYDROData_ProfileUZ::GetPoints( const int /*theSectionIndex*/, bool /*IsConvertToGlobal*/ ) const
 {
   PointsList aResList;
 
index fd543f0723745efbb7263fcd9cca01da943e39a6..aa9ebbc938b8c1886b26948b5d6ecc82c6463ea2 100644 (file)
@@ -168,7 +168,7 @@ public:
    *                        only for section with this index
    * \return list of points
    */
-  HYDRODATA_EXPORT virtual PointsList GetPoints( const int theSectionIndex = -1 ) const;
+  HYDRODATA_EXPORT virtual PointsList GetPoints( const int theSectionIndex = -1, bool IsConvertToGlobal = false ) const;
 
   HYDRODATA_EXPORT virtual void CalculateAndAddPoints(const NCollection_Sequence<gp_XYZ>& theXYZPoints, Handle_HYDROData_PolylineXY& thePolylineXY);
 
index 86a5b1518e092ef95e35b6753b4cd1037093f376..879b12d5f8ba1c715a97a07c9a90973999c14d89 100644 (file)
@@ -341,17 +341,17 @@ void HYDROData_SinusX::HydroToSX(QFile& theFile, const NCollection_Sequence<Hand
     Handle_HYDROData_Entity anEnt = theEntities.Value(i);
     if (anEnt->IsKind( STANDARD_TYPE(HYDROData_Bathymetry) ))
     {
-       Handle(HYDROData_Bathymetry) aBathy = Handle(HYDROData_Bathymetry)::DownCast( anEnt );
-       HYDROData_Bathymetry::AltitudePoints anXYZPoints = aBathy->GetAltitudePoints();
-       //Write to stream
-       aTextStream << "B S\n";
-       aTextStream << "CN " << aBathy->GetName() << "\n";
-       aTextStream << "CP 0 0\n";
-       aTextStream << "CP 0\n";
-       for (int j = anXYZPoints.Lower(); j <= anXYZPoints.Upper(); j++)
-         aTextStream << " " << QString::number(anXYZPoints(j).X(), 'f', 3)  
-                     << " " << QString::number(anXYZPoints(j).Y(), 'f', 3)  
-                     << " " << QString::number(anXYZPoints(j).Z(), 'f', 3) << "\n"; 
+      Handle(HYDROData_Bathymetry) aBathy = Handle(HYDROData_Bathymetry)::DownCast( anEnt );
+      HYDROData_Bathymetry::AltitudePoints anXYZPoints = aBathy->GetAltitudePoints(true);
+      //Write to stream
+      aTextStream << "B S\n";
+      aTextStream << "CN " << aBathy->GetName() << "\n";
+      aTextStream << "CP 0 0\n";
+      aTextStream << "CP 0\n";
+      for (int j = anXYZPoints.Lower(); j <= anXYZPoints.Upper(); j++)
+        aTextStream << " " << QString::number(anXYZPoints(j).X(), 'f', 3)  
+                    << " " << QString::number(anXYZPoints(j).Y(), 'f', 3)  
+                    << " " << QString::number(anXYZPoints(j).Z(), 'f', 3) << "\n"; 
     }
     else if (anEnt->IsKind( STANDARD_TYPE(HYDROData_PolylineXY) ))
     {
@@ -363,7 +363,7 @@ void HYDROData_SinusX::HydroToSX(QFile& theFile, const NCollection_Sequence<Hand
         bool IsSpline = false;
         if (aPolyXY->GetSectionType(j) == HYDROData_PolylineXY::SECTION_SPLINE)
           IsSpline = true;
-        HYDROData_PolylineXY::PointsList anXYPoints = aPolyXY->GetPoints(j);
+        HYDROData_PolylineXY::PointsList anXYPoints = aPolyXY->GetPoints(j, true);
         //Write to stream
         aTextStream << "B N\n";
         aTextStream << "CN " << aPolyXY->GetName() << "\n";