Salome HOME
Profile object creation.
[modules/hydro.git] / src / HYDROData / HYDROData_BSplineOperation.cxx
index df0b2e44fa4dc521ec71d83776c1d3676e092603..128f4aec593a9fe7f293f13afe2af93464f503ef 100644 (file)
@@ -1,41 +1,41 @@
-#include<HYDROData_BSplineOperation.h>
 
-#include<TColgp_HArray1OfPnt.hxx>
-#include<GeomAPI_Interpolate.hxx>
-#include<GeomConvert_BSplineCurveToBezierCurve.hxx>
-#include<Geom_BezierCurve.hxx>
+#include <HYDROData_BSplineOperation.h>
+
+#include <TColgp_HArray1OfPnt.hxx>
+
+#include <GeomAPI_Interpolate.hxx>
+#include <GeomConvert_BSplineCurveToBezierCurve.hxx>
+#include <Geom_BezierCurve.hxx>
+
+#include <QPainterPath>
 
 HYDROData_BSplineOperation::HYDROData_BSplineOperation(
-  const QList<double>& thePoints,
-  const double theZValue,
-  const bool theIsClosed)
+  const NCollection_Sequence<gp_XYZ>& thePoints,
+  const bool                          theIsClosed )
 {
   // fill array for algorithm by the received coordinates
-  int aLen = thePoints.size() / 2;
-  Handle(TColgp_HArray1OfPnt) aHCurvePoints = new TColgp_HArray1OfPnt (1, aLen);
-  QList<double>::const_iterator aListIter = thePoints.begin();
-  for (int ind = 1; ind <= aLen; ind++) {
-    gp_Pnt aPnt(gp::Origin());
-    aPnt.SetX(*aListIter);
-    aListIter++;
-    aPnt.SetY(*aListIter);
-    aListIter++;
-    aPnt.SetZ(theZValue);
-    aHCurvePoints->SetValue(ind, aPnt);
+  int aNbPoints = thePoints.Size();
+
+  Handle(TColgp_HArray1OfPnt) aHCurvePoints = new TColgp_HArray1OfPnt( 1, aNbPoints );
+  for ( int i = 1; i <= aNbPoints; i++ )
+  {
+    gp_Pnt aPnt( thePoints.Value( i ) );
+    aHCurvePoints->SetValue( i, aPnt );
   }
+
   // compute BSpline
-  GeomAPI_Interpolate aGBC(aHCurvePoints, theIsClosed, gp::Resolution());
+  GeomAPI_Interpolate aGBC( aHCurvePoints, theIsClosed, gp::Resolution() );
   aGBC.Perform();
-  if (aGBC.IsDone()) {
+  if ( aGBC.IsDone() )
     myCurve = aGBC.Curve();
-  }
 }
 
 QPainterPath HYDROData_BSplineOperation::ComputePath() const
 {
   QPainterPath aResult;
-  if (myCurve.IsNull()) // returns an empty Path if original curve is invalid
+  if ( myCurve.IsNull() ) // returns an empty Path if original curve is invalid
     return aResult;
+
   GeomConvert_BSplineCurveToBezierCurve aConverter(myCurve);
   int a, aNumArcs = aConverter.NbArcs();
   for(a = 1; a <= aNumArcs; a++) {