Salome HOME
Porting on OCCT 7.0 and Qt 5. Make compilable version.
[modules/hydro.git] / src / HYDROData / HYDROData_PolylineXY.cxx
index c36a6c7ff77edba8f13997fdc979e8fc4a74b633..9987e16475caab8babcac885af8bd8590071ebb6 100644 (file)
@@ -126,7 +126,6 @@ TCollection_AsciiString getUniqueSectionName( const Handle(TDataStd_ExtStringLis
   return getUniqueSectionName( aNamesSeq );
 }
 
-IMPLEMENT_STANDARD_HANDLE(HYDROData_PolylineXY, HYDROData_IPolyline)
 IMPLEMENT_STANDARD_RTTIEXT(HYDROData_PolylineXY, HYDROData_IPolyline)
 
 HYDROData_PolylineXY::HYDROData_PolylineXY()
@@ -505,11 +504,15 @@ bool convertEdgesToSections( const TopoDS_Edge&
                   double pmin = p[0];
                   double pmax = p[1];
                   bool forward = true;
-                  if (! isOldSectionclosed) // no need to check first and last points on an open curve
+                  DEBTRACE("isOldSectionclosed: " << isOldSectionclosed);
+                  if (!isOldSectionclosed) // no need to check first and last points on an open curve
                     {
-                      pmin = p[1];
-                      pmax = p[0];
-                      forward = false;
+                      if (pmin > pmax)
+                        {
+                          pmin = p[1];
+                          pmax = p[0];
+                          forward = false;
+                        }
                     }
                   else // old section closed: check if we use first or last points...
                     {
@@ -538,6 +541,7 @@ bool convertEdgesToSections( const TopoDS_Edge&
                       else if ((abs(pmax - pfirst) <1.e-3) and (p[2] > pmin)) // forward, replace pmax par plast
                         pmax = plast;
                    }
+                  DEBTRACE("forward: "<< forward << " pmin " << pmin <<  " pmax " << pmax);
                   HYDROData_PolylineXY::Point aFirstPoint, aLastPoint;
                   if (forward)
                     {
@@ -553,6 +557,7 @@ bool convertEdgesToSections( const TopoDS_Edge&
 
                   HYDROData_PolylineXY::PointsList aSectPoints = theOldPolyline->GetPoints(isec, false);
                   int nbPoints = aSectPoints.Length();
+                  DEBTRACE("nbPoints " << nbPoints);
                   if (forward)
                     for (int i=1; i<=nbPoints; i++)
                       {