]> SALOME platform Git repositories - modules/hydro.git/commitdiff
Salome HOME
lot 19 wrappers
authorisn <isn@opencascade.com>
Wed, 23 Jan 2019 17:06:41 +0000 (20:06 +0300)
committerisn <isn@opencascade.com>
Mon, 28 Jan 2019 11:52:17 +0000 (14:52 +0300)
src/HYDROData/HYDROData_Bathymetry.cxx
src/HYDROData/HYDROData_Bathymetry.h
src/HYDROPy/HYDROData_Bathymetry.sip

index c274ff5d3ef56c9412ae24e19eec13508bbe8fb9..d3de1f7617eb0319eb40d654bf6cfecd4edbcb8f 100755 (executable)
@@ -465,6 +465,20 @@ bool interpolZtriangle(const gp_XY& point, vtkPolyData* delaunay2D, vtkIdList* t
 }
 #endif
 
+
+NCollection_Sequence<double> HYDROData_Bathymetry::GetAltitudesForPoints( const NCollection_Sequence<gp_XY>& thePoints, int theMethod) const
+{
+  DEBTRACE("HYDROData_Bathymetry::GetAltitudesForPoints " << GetName().toStdString());
+  NCollection_Sequence<double> aResSeq;
+  for ( int i = 1, n = thePoints.Length(); i <= n; ++i )
+  {
+    const gp_XY& thePnt = thePoints.Value(i);
+    double anAltitude = GetAltitudeForPoint( thePnt, theMethod );
+    aResSeq.Append( anAltitude );
+  }
+  return aResSeq;
+}
+
 double HYDROData_Bathymetry::GetAltitudeForPoint(const gp_XY& thePoint, int theMethod) const
 {
   DEBTRACE("GetAltitudeForPoint p(" << thePoint.X() << ", " << thePoint.Y() << "), interpolation method: " << theMethod);
index 67a5868c816d078bd57fb859e85108e8fd1f9b8b..34b4a4ad18347e0b6753900e9947cc8ad6a93a04 100644 (file)
@@ -98,6 +98,8 @@ public:
   HYDRODATA_EXPORT virtual HYDROData_QuadtreeNode* GetQuadtreeNodes() const;
   HYDRODATA_EXPORT virtual HYDROData_QuadtreeNode* ComputeQuadtreeNodes( int key) const;
 
+  HYDRODATA_EXPORT virtual NCollection_Sequence<double> GetAltitudesForPoints( const NCollection_Sequence<gp_XY>& thePoints, int theMethod = 0) const;
+
 #ifndef LIGHT_MODE
   HYDRODATA_EXPORT virtual vtkPolyData* GetVtkDelaunay2D() const;
   HYDRODATA_EXPORT virtual vtkPolyData* ComputeVtkDelaunay2D(int key) const;
index 0c78ace313722d45a7bddb5d99a97bb9aa98a54d..d1cb1eac83c332895b674bb4bdee3379dd302000 100644 (file)
@@ -53,6 +53,33 @@ public:
   virtual void SetAltitudePoints( const HYDROData_Bathymetry::AltitudePoints& );
   HYDROData_Bathymetry::AltitudePoints GetAltitudePoints() const;
 
+  NCollection_Sequence<double> GetAltitudesForPoints( const NCollection_Sequence<double>& theCoordsX,
+                                                      const NCollection_Sequence<double>& theCoordsY,
+                                                      int                                 theMethod = 0) const
+  [NCollection_Sequence<double> ( const NCollection_Sequence<gp_XY>&, int)];
+  %MethodCode
+
+    NCollection_Sequence<gp_XY> aPnts;
+
+    int aLen = qMin( a0->Length(), a1->Length() );
+    for ( int i = 1; i <= aLen; ++i )
+    {
+      gp_XY aPnt( a0->Value( i ), a1->Value( i ) );
+      aPnts.Append( aPnt );
+    }
+
+    int aMethod = a2;
+    
+    NCollection_Sequence<double> aRes;
+    Py_BEGIN_ALLOW_THREADS
+    aRes = sipSelfWasArg ? sipCpp->HYDROData_Bathymetry::GetAltitudesForPoints( aPnts, aMethod ) : 
+                           sipCpp->GetAltitudesForPoints( aPnts, aMethod );
+    Py_END_ALLOW_THREADS
+    
+    sipRes = new NCollection_Sequence<double>( aRes );
+  %End
+
+
   void RemoveAltitudePoints();
 
 public: