Salome HOME
17.12.2013. Added Partition algorithm (draft version).
[modules/hydro.git] / src / HYDROPy / HYDROData_Bathymetry.sip
index 8666ba56f60e203520e7a1469649e20a79aab00c..abeab659e8840347ae336df4a66dcfe753993b97 100644 (file)
@@ -22,6 +22,7 @@
 
 %ExportedHeaderCode
 #include <HYDROData_Bathymetry.h>
+#include <gp_XY.hxx>
 #include <gp_XYZ.hxx>
 %End
 
@@ -32,14 +33,20 @@ HYDROData_Bathymetry::AltitudePoints convertFromPythonAltitudeList( PyObject* th
 
 %End
 
-class HYDROData_Bathymetry : HYDROData_Object
+class HYDROData_Bathymetry : HYDROData_Entity
 {
 
 %ConvertToSubClassCode
-    if ( !Handle(HYDROData_Bathymetry)::DownCast( sipCpp ).IsNull() )
-      sipClass = sipClass_HYDROData_Bathymetry;
-    else
-      sipClass = NULL;
+    switch ( sipCpp->GetKind() )
+    {
+      case KIND_BATHYMETRY:
+        sipClass = sipClass_HYDROData_Bathymetry;
+        break;
+
+      default:
+        // We don't recognise the type.
+        sipClass = NULL;
+    }
 %End
 
 %TypeHeaderCode
@@ -95,12 +102,6 @@ HYDROData_Bathymetry::AltitudePoints convertFromPythonAltitudeList( PyObject* th
 
 %End
 
-
-public:
-
-  const ObjectKind          GetKind() const;
-
-
 public:      
   // Public methods to work with Bathymetry altitudes.
 
@@ -160,6 +161,7 @@ public:
     sipRes = convertToPythonAltitudeList( aPoints );
     
   %End
+
   /**
    * Remove all altitude points.
    */
@@ -171,6 +173,16 @@ public:
    * \return altitude value
    */
   double           GetAltitudeForPoint( const QPointF& thePoint ) const;
+  %MethodCode
+  
+    // The C++ API gets the gp_XY object, we convert it from QPointF.
+    gp_XY aPoint( a0->x(), a0->y() );
+    
+    Py_BEGIN_ALLOW_THREADS
+    sipRes = sipSelfWasArg ? sipCpp->HYDROData_Bathymetry::GetAltitudeForPoint( aPoint ) : 
+                             sipCpp->GetAltitudeForPoint( aPoint );
+    Py_END_ALLOW_THREADS
+  %End
 
 
 public: