Salome HOME
patch for correct compilation on Linux
[modules/hydro.git] / src / HYDROData / HYDROData_BSplineOperation.cxx
index 128f4aec593a9fe7f293f13afe2af93464f503ef..293dbd442b6c6032e802982bbf1b17e46f87ffca 100644 (file)
@@ -30,32 +30,31 @@ HYDROData_BSplineOperation::HYDROData_BSplineOperation(
     myCurve = aGBC.Curve();
 }
 
-QPainterPath HYDROData_BSplineOperation::ComputePath() const
+void HYDROData_BSplineOperation::ComputePath( QPainterPath& thePath ) const
 {
-  QPainterPath aResult;
   if ( myCurve.IsNull() ) // returns an empty Path if original curve is invalid
-    return aResult;
+    return;
 
   GeomConvert_BSplineCurveToBezierCurve aConverter(myCurve);
   int a, aNumArcs = aConverter.NbArcs();
-  for(a = 1; a <= aNumArcs; a++) {
+  for(a = 1; a <= aNumArcs; a++)
+  {
     Handle(Geom_BezierCurve) anArc = aConverter.Arc(a);
     if (a == 1) { // set a start point
       gp_Pnt aStart = anArc->StartPoint();
-      aResult.moveTo(aStart.X(), aStart.Y());
+      thePath.moveTo(aStart.X(), aStart.Y());
     }
     gp_Pnt anEnd = anArc->EndPoint();
     if (anArc->NbPoles() == 3) { // quadric segment in the path (pole 1 is start, pole 3 is end)
       gp_Pnt aPole = anArc->Pole(2);
-      aResult.quadTo(aPole.X(), aPole.Y(), anEnd.X(), anEnd.Y());
+      thePath.quadTo(aPole.X(), aPole.Y(), anEnd.X(), anEnd.Y());
     } else if (anArc->NbPoles() == 4) { // cubic segment (usually this is used)
       gp_Pnt aPole1 = anArc->Pole(2);
       gp_Pnt aPole2 = anArc->Pole(3);
-      aResult.cubicTo(
+      thePath.cubicTo(
         aPole1.X(), aPole1.Y(), aPole2.X(), aPole2.Y(), anEnd.X(), anEnd.Y());
     } else { // error, another number of poles is not supported
-      return QPainterPath();
+      continue;
     }
   }
-  return aResult;
 }