Salome HOME
Lot 2: change bathy associated to natural object propagated to all cases without...
[modules/hydro.git] / src / HYDROData / HYDROData_ProfileUZ.cxx
old mode 100755 (executable)
new mode 100644 (file)
index 1189970..8ef3dfb
@@ -36,7 +36,6 @@
 #include <HYDROData_PolylineXY.h>
 
 
-IMPLEMENT_STANDARD_HANDLE(HYDROData_ProfileUZ, HYDROData_IPolyline)
 IMPLEMENT_STANDARD_RTTIEXT(HYDROData_ProfileUZ, HYDROData_IPolyline)
 
 HYDROData_ProfileUZ::HYDROData_ProfileUZ()
@@ -82,6 +81,7 @@ double HYDROData_ProfileUZ::GetDepthFromDistance( const PointsList& thePoints,
       aResDepth = ( aPrevPoint.Y() + aRatio * aCurPoint.Y() ) / ( 1 + aRatio );
       break;
     }
+    else aResDepth = aCurPoint.Y();  // TODO: workaround for normalized flat altitudes
 
     aPrevPoint = aCurPoint;
   }
@@ -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;
 
@@ -278,14 +278,19 @@ HYDROData_ProfileUZ::PointsList HYDROData_ProfileUZ::GetPoints( const int /*theS
   return aResList;
 }
 
-void HYDROData_ProfileUZ::CalculateAndAddPoints(const NCollection_Sequence<gp_XYZ>& theXYZPoints, Handle_HYDROData_PolylineXY& thePolylineXY)
+void HYDROData_ProfileUZ::CalculateAndAddPoints(const NCollection_Sequence<gp_XYZ>& theXYZPoints, 
+  Handle(HYDROData_PolylineXY)& thePolylineXY,
+  bool fillPolyXY)
 {
    // Fill 2D polyline
-  for ( int i = 1; i <= theXYZPoints.Size(); i++ ) {
-    const HYDROData_Profile::ProfilePoint& aBottomPoint = theXYZPoints.Value( i );
-    thePolylineXY->AddPoint( 0, HYDROData_PolylineXY::Point( aBottomPoint.X(), aBottomPoint.Y() ) );
+  if (fillPolyXY)
+  {
+    for ( int i = 1; i <= theXYZPoints.Size(); i++ ) {
+      const HYDROData_Profile::ProfilePoint& aBottomPoint = theXYZPoints.Value( i );
+      thePolylineXY->AddPoint( 0, HYDROData_PolylineXY::Point( aBottomPoint.X(), aBottomPoint.Y() ) );
+    }
   }
-  
+
   // Calculate profile UZ points
 
   // First point