Salome HOME
container for altitude points is replaced to vector
[modules/hydro.git] / src / HYDROData / HYDROData_SinusX.cxx
index 4b9dc6f4fc78bf464fd3c088133812c04964ea16..9fcbef117ca52015ba3832dbf3ba374bef8dbcaa 100644 (file)
@@ -123,11 +123,17 @@ void HYDROData_SinusX::SXToHydro(Handle(HYDROData_Document) theDocument, NCollec
     {
       Handle(HYDROData_Bathymetry) aBath = Handle(HYDROData_Bathymetry)::DownCast( theDocument->CreateObject( KIND_BATHYMETRY ) );
       HYDROData_Bathymetry::AltitudePoints aAPoints;
-      for (size_t j = 0; j < myCurveBlocks[i].myXYZPoints.size(); j++)
+      size_t n = myCurveBlocks[i].myXYZPoints.size();
+      aAPoints.reserve( n );
+      for (size_t j = 0; j < n; j++)
       {
         gp_XYZ aLocalPoint = gp_XYZ (myCurveBlocks[i].myXYZPoints[j]);
         theDocument->Transform(aLocalPoint, true);
-        aAPoints.Append(aLocalPoint);
+        HYDROData_Bathymetry::AltitudePoint p;
+        p.X = aLocalPoint.X();
+        p.Y = aLocalPoint.Y();
+        p.Z = aLocalPoint.Z();
+        aAPoints.push_back(p);
       }
 
       aBath->SetAltitudePoints(aAPoints);
@@ -366,10 +372,10 @@ void HYDROData_SinusX::HydroToSX(QFile& theFile, const NCollection_Sequence<Hand
       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"; 
+      for (size_t j = 0, m = anXYZPoints.size(); j < m; 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) ))
     {