Salome HOME
17.12.2013. Added Partition algorithm (draft version).
[modules/hydro.git] / src / HYDROPy / HYDROData_Zone.sip
index e70baae0e675e3027ea0f6e301355abc9089e74b..4b28e6d8451b06d6c5b8ac9585623294ac6cda57 100644 (file)
@@ -44,72 +44,90 @@ class HYDROData_Zone : HYDROData_Entity
     }
 %End
 
+public:
+
+  // Enumeration of mergin types for conflict bathymetries
+  enum MergeBathymetriesType
+  {
+    Merge_ZMIN,   // The minimum values
+    Merge_ZMAX,   // The maximum values
+    Merge_Object  // Only one bathymetry will be taken into account
+  };
+
 public:      
 
   /**
-   * Returns number of geometry objects for zone.
+   * Sets the merging type for conflict bathymetries.
+   * By default it is set to Merge_ZMIN.
    */
-  int NbGeometryObjects() const;
+  void SetMergeType( const MergeBathymetriesType& theType );
 
   /**
-   * dd new one geometry object for zone.
+   * Returns the merging type for conflict bathymetries.
    */
-  void AddGeometryObject( HYDROData_Object theRegion ) [void (const Handle_HYDROData_Object&)];
-  %MethodCode
-
-    Handle(HYDROData_Object) aGeomObj =
-      Handle(HYDROData_Object)::DownCast( createHandle( a0 ) );
-    if ( !aGeomObj.IsNull() )
-    {
-      Py_BEGIN_ALLOW_THREADS
-      sipSelfWasArg ? sipCpp->HYDROData_Zone::AddGeometryObject( aGeomObj ) : 
-                      sipCpp->AddGeometryObject( aGeomObj );
-      Py_END_ALLOW_THREADS
-    }
+  MergeBathymetriesType GetMergeType() const;
 
-  %End
 
   /**
-   * Replace the geometry object for zone.
+   * Sets the reference bathymetry to resolve the conflict.
+   * This object is used only in case of "Merge_Object" merge type.
    */
-  void SetGeometryObject( const int        theIndex, 
-                          HYDROData_Object theObject ) [void (const int, const Handle_HYDROData_Object&)];
+  void SetMergeBathymetry( HYDROData_Bathymetry theBathymetry ) [void (const Handle_HYDROData_Bathymetry&)];
   %MethodCode
 
-    Handle(HYDROData_Object) aGeomObj =
-      Handle(HYDROData_Object)::DownCast( createHandle( a1 ) );
-    if ( !aGeomObj.IsNull() )
+    Handle(HYDROData_Bathymetry) aRefBath =
+      Handle(HYDROData_Bathymetry)::DownCast( createHandle( a0 ) );
+    if ( !aRefBath.IsNull() )
     {
       Py_BEGIN_ALLOW_THREADS
-      sipSelfWasArg ? sipCpp->HYDROData_Zone::SetGeometryObject( a0, aGeomObj ) : 
-                      sipCpp->SetGeometryObject( a0, aGeomObj );
+      sipSelfWasArg ? sipCpp->HYDROData_Zone::SetMergeBathymetry( aRefBath ) : 
+                      sipCpp->SetMergeBathymetry( aRefBath );
       Py_END_ALLOW_THREADS
     }
 
   %End
 
   /**
-   * Sets the geometry object for zone.
+   * Returns the reference bathymetry to resolve the conflict.
    */
-  //void SetGeometryObjects( const HYDROData_SequenceOfObjects& theObjects );
-
-  /**
-   * Returns geometry object of zone by index.
-   */
-  HYDROData_Object GetGeometryObject( const int theIndex ) const [Handle_HYDROData_Object (const int)];
+  HYDROData_Bathymetry GetMergeBathymetry() const [Handle_HYDROData_Bathymetry ()];
   %MethodCode
 
-    Handle(HYDROData_Object) aGeomObj;
+    Handle(HYDROData_Bathymetry) aRefBath;
     
     Py_BEGIN_ALLOW_THREADS
-    aGeomObj = sipSelfWasArg ? sipCpp->HYDROData_Zone::GetGeometryObject( a0 ) : 
-                               sipCpp->GetGeometryObject( a0 );
+    aRefBath = sipSelfWasArg ? sipCpp->HYDROData_Zone::GetMergeBathymetry() : 
+                               sipCpp->GetMergeBathymetry();
     Py_END_ALLOW_THREADS
     
-    sipRes = (HYDROData_Object*)createPointer( aGeomObj );
+    sipRes = (HYDROData_Bathymetry*)createPointer( aRefBath );
   
   %End
 
+  /**
+   * Removes the reference bathymetry for resolving the conflict.
+   */
+  void RemoveMergeBathymetry();
+
+
+  /**
+   * dd new one geometry object for zone.
+   */
+  void AddGeometryObject( HYDROData_Object theRegion ) [void (const Handle_HYDROData_Object&)];
+  %MethodCode
+
+    Handle(HYDROData_Object) aGeomObj =
+      Handle(HYDROData_Object)::DownCast( createHandle( a0 ) );
+    if ( !aGeomObj.IsNull() )
+    {
+      Py_BEGIN_ALLOW_THREADS
+      sipSelfWasArg ? sipCpp->HYDROData_Zone::AddGeometryObject( aGeomObj ) : 
+                      sipCpp->AddGeometryObject( aGeomObj );
+      Py_END_ALLOW_THREADS
+    }
+
+  %End
+
   /**
    * Returns all geometry objects of zone.
    */