Salome HOME
bug #278: forced update is implemented
[modules/hydro.git] / src / HYDROPy / HYDROData_Bathymetry.sip
index 2d5911e0616177bcb90444e1f8a99997b78de379..6943e63d281348795e2deb8f92360a3d14080d3d 100644 (file)
 //
 
 %ExportedHeaderCode
-
 #include <HYDROData_Bathymetry.h>
-
+#include <gp_XY.hxx>
 #include <gp_XYZ.hxx>
-
 %End
 
 %ModuleCode
@@ -35,14 +33,20 @@ HYDROData_Bathymetry::AltitudePoints convertFromPythonAltitudeList( PyObject* th
 
 %End
 
-class HYDROData_Bathymetry : HYDROData_Object
+class HYDROData_Bathymetry : HYDROData_IAltitudeObject
 {
 
 %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
@@ -98,20 +102,27 @@ HYDROData_Bathymetry::AltitudePoints convertFromPythonAltitudeList( PyObject* th
 
 %End
 
-
-public:
-
-  //virtual const ObjectKind GetKind() const { return KIND_BATHYMETRY; }
-
-
 public:      
   // Public methods to work with Bathymetry altitudes.
 
   /**
-   * Returns altitude points list.
-   * \return points list
+   * Returns altitude for given point.
+   * \param thePoint the point to examine
+   * \return altitude value
    */
-  static double             GetInvalidAltitude();
+  double           GetAltitudeForPoint( const QPointF& thePoint ) const [double (const gp_XY&)];
+  %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
+
+
 
   /**
    * Replace current altitude points by new one.
@@ -156,24 +167,19 @@ public:
     HYDROData_Bathymetry::AltitudePoints aPoints;
     
     Py_BEGIN_ALLOW_THREADS
-    aPoints = sipSelfWasArg ? sipCpp->HYDROData_Bathymetry::GetAltitudePoints() : sipCpp->GetAltitudePoints();
+    aPoints = sipSelfWasArg ? sipCpp->HYDROData_Bathymetry::GetAltitudePoints() : 
+                              sipCpp->GetAltitudePoints();
     Py_END_ALLOW_THREADS
 
     sipRes = convertToPythonAltitudeList( aPoints );
     
   %End
+
   /**
    * Remove all altitude points.
    */
   void              RemoveAltitudePoints();
 
-  /**
-   * Returns altitude for given point.
-   * \param thePoint the point to examine
-   * \return altitude value
-   */
-  double           GetAltitudeForPoint( const QPointF& thePoint ) const;
-
 
 public:
   // Public methods to work with files.
@@ -189,8 +195,6 @@ public:
 
 protected:
 
-  //friend class HYDROData_Iterator;
-
   /**
    * Creates new object in the internal data structure. Use higher level objects 
    * to create objects with real content.