Salome HOME
SIP: HYDROData_Digue is included.
[modules/hydro.git] / src / HYDROPy / HYDROData_CalculationCase.sip
index affe7735a17c2d6aa0be80878190a230b17dd1d0..b6c119eb556932fc20d5cb735153f1e2ba70f90e 100644 (file)
@@ -44,8 +44,293 @@ class HYDROData_CalculationCase : HYDROData_Entity
     }
 %End
 
+public:
+
+  enum PointClassification
+  {
+    POINT_OUT,  ///< point is out of zone face
+    POINT_IN,   ///< point is inside of zone face
+    POINT_ON    ///< point is on the edge of zone face
+  };
+
 public:      
+  /**
+   * Add new one reference geometry object for calculation case.
+   */
+  bool AddGeometryObject( HYDROData_Object theObject ) [bool ( const Handle_HYDROData_Object& )];
+  %MethodCode
+    Handle(HYDROData_Object) aRef =
+      Handle(HYDROData_Object)::DownCast( createHandle( a0 ) );
+    if ( !aRef.IsNull() )
+    {
+      Py_BEGIN_ALLOW_THREADS
+      sipRes = sipSelfWasArg ? sipCpp->HYDROData_CalculationCase::AddGeometryObject( aRef ):
+                               sipCpp->AddGeometryObject( aRef );
+      Py_END_ALLOW_THREADS
+    }
+  %End
+
+  /**
+   * Returns all reference geometry objects of calculation case.
+   */
+  HYDROData_SequenceOfObjects GetGeometryObjects() const;
+
+  /**
+   * Removes reference geometry object from calculation case.
+   */
+  void RemoveGeometryObject( HYDROData_Object theObject ) [void ( const Handle_HYDROData_Object& )];
+  %MethodCode
+    Handle(HYDROData_Object) aRef =
+      Handle(HYDROData_Object)::DownCast( createHandle( a0 ) );
+    if ( !aRef.IsNull() )
+    {
+      Py_BEGIN_ALLOW_THREADS
+      if ( sipSelfWasArg ) {
+        sipCpp->HYDROData_CalculationCase::RemoveGeometryObject( aRef );
+      } else {
+        sipCpp->RemoveGeometryObject( aRef );
+      }
+      Py_END_ALLOW_THREADS
+    }
+  %End
+
+  /**
+   * Removes all reference geometry objects from calculation case.
+   */
+  void RemoveGeometryObjects();
+
+
+  /**
+   * Add new one reference geometry group for calculation case.
+   */
+  bool AddGeometryGroup( HYDROData_ShapesGroup theGroup ) [bool ( const Handle_HYDROData_ShapesGroup& )];
+  %MethodCode
+    Handle(HYDROData_ShapesGroup) aRef =
+      Handle(HYDROData_ShapesGroup)::DownCast( createHandle( a0 ) );
+    if ( !aRef.IsNull() )
+    {
+      Py_BEGIN_ALLOW_THREADS
+      sipRes = sipSelfWasArg ? sipCpp->HYDROData_CalculationCase::AddGeometryGroup( aRef ):
+                               sipCpp->AddGeometryGroup( aRef );
+      Py_END_ALLOW_THREADS
+    }
+  %End
+
+  /**
+   * Returns all reference geometry groups of calculation case.
+   */
+  HYDROData_SequenceOfObjects GetGeometryGroups() const;
+
+  /**
+   * Removes reference geometry group from calculation case.
+   */
+  void RemoveGeometryGroup( HYDROData_ShapesGroup theGroup ) [void ( const Handle_HYDROData_ShapesGroup& )];
+  %MethodCode
+    Handle(HYDROData_ShapesGroup) aRef =
+      Handle(HYDROData_ShapesGroup)::DownCast( createHandle( a0 ) );
+    if ( !aRef.IsNull() )
+    {
+      Py_BEGIN_ALLOW_THREADS
+      if ( sipSelfWasArg ) {
+        sipCpp->HYDROData_CalculationCase::RemoveGeometryGroup( aRef );
+      } else {
+        sipCpp->RemoveGeometryGroup( aRef );
+      }
+      Py_END_ALLOW_THREADS
+    }
+  %End
+
+  /**
+   * Removes all reference geometry groups from calculation case.
+   */
+  void RemoveGeometryGroups();
+
+
+  /**
+   * Sets reference boundary polyline object for calculation case.
+   */
+  void SetBoundaryPolyline( HYDROData_PolylineXY thePolyline ) [void ( const Handle_HYDROData_PolylineXY& )];
+  %MethodCode
+    Handle(HYDROData_PolylineXY) aRef =
+      Handle(HYDROData_PolylineXY)::DownCast( createHandle( a0 ) );
+    if ( !aRef.IsNull() )
+    {
+      Py_BEGIN_ALLOW_THREADS
+      if ( sipSelfWasArg ) {
+        sipCpp->HYDROData_CalculationCase::SetBoundaryPolyline( aRef );
+      } else {
+        sipCpp->SetBoundaryPolyline( aRef );
+      }
+      Py_END_ALLOW_THREADS
+    }
+  %End
+
+  /**
+   * Returns reference boundary polyline object of calculation case.
+   */
+  HYDROData_PolylineXY GetBoundaryPolyline() const [Handle_HYDROData_PolylineXY ()];
+  %MethodCode
+    Handle(HYDROData_PolylineXY) aRef;
+    
+    Py_BEGIN_ALLOW_THREADS
+    aRef = sipSelfWasArg ? sipCpp->HYDROData_CalculationCase::GetBoundaryPolyline() : 
+                           sipCpp->GetBoundaryPolyline();
+    Py_END_ALLOW_THREADS
+    
+    sipRes = (HYDROData_PolylineXY*)createPointer( aRef );
+  %End
+
+  /**
+   * Remove reference boundary polyline object from calculation case.
+   */
+  void RemoveBoundaryPolyline();
+
 
+  /**
+   * Add new one child region for calculation case.
+   * The new region is added into the list of reference regions.
+   * The label of theZone is changed during this operation
+   * because of new region becomes the new parent for this zone.
+   */
+  HYDROData_Region AddNewRegion( HYDROData_Zone theZone ) [Handle_HYDROData_Region ( const Handle_HYDROData_Zone& )];
+  %MethodCode
+    Handle(HYDROData_Zone) aRef =
+      Handle(HYDROData_Zone)::DownCast( createHandle( a0 ) );
+    Handle(HYDROData_Region) aRes;
+    
+    if ( !aRef.IsNull() )
+    {
+      Py_BEGIN_ALLOW_THREADS
+      aRes = sipSelfWasArg ? sipCpp->HYDROData_CalculationCase::AddNewRegion( aRef ) : 
+                             sipCpp->AddNewRegion( aRef );
+      Py_END_ALLOW_THREADS
+    }
+    
+    sipRes = (HYDROData_Region*)createPointer( aRes );
+  %End
+
+  /**
+   * Add new one reference region for calculation case.
+   * The label of theRegion is changed in case if old parent is not this calculation.
+   */
+  bool AddRegion( HYDROData_Region theRegion ) [bool ( const Handle_HYDROData_Region& )];
+  %MethodCode
+    Handle(HYDROData_Region) aRef =
+      Handle(HYDROData_Region)::DownCast( createHandle( a0 ) );
+    if ( !aRef.IsNull() )
+    {
+      Py_BEGIN_ALLOW_THREADS
+      sipRes = sipSelfWasArg ? sipCpp->HYDROData_CalculationCase::AddRegion( aRef ):
+                               sipCpp->AddRegion( aRef );
+      Py_END_ALLOW_THREADS
+    }
+  %End
+
+  /**
+   * Returns all reference regions of calculation case.
+   */
+  HYDROData_SequenceOfObjects GetRegions() const;
+
+  /**
+   * Updates names of regions to correct order.
+   */
+  void UpdateRegionsOrder();
+
+  /**
+   * Removes reference region from calculation case.
+   */
+  void RemoveRegion( HYDROData_Region theRegion ) [void ( const Handle_HYDROData_Region& )];
+  %MethodCode
+    Handle(HYDROData_Region) aRef =
+      Handle(HYDROData_Region)::DownCast( createHandle( a0 ) );
+    if ( !aRef.IsNull() )
+    {
+      Py_BEGIN_ALLOW_THREADS
+      if ( sipSelfWasArg ) {
+        sipCpp->HYDROData_CalculationCase::RemoveRegion( aRef );
+      } else {
+        sipCpp->RemoveRegion( aRef );
+      }
+      Py_END_ALLOW_THREADS
+    }
+  %End
+
+  /**
+   * Removes all reference regions from calculation case.
+   */
+  void RemoveRegions();
+
+  
+  /**
+   * Returns all reference geometry groups of calculation case.
+   */
+  HYDROData_SequenceOfObjects GetSplittedGroups() const;
+
+  /**
+   * Removes all reference geometry groups from calculation case.
+   */
+  void RemoveSplittedGroups();
+
+
+  /**
+   * Exports the calculation case data (shell and groups) to GEOM module.
+   * \param theGeomEngine GEOM module engine
+   * \param theStudy SALOMEDS study, is used for publishing of GEOM objects
+   * \return true in case of success
+   */
+//TODO:  virtual bool Export( GEOM::GEOM_Gen_var theGeomEngine,
+//                       SALOMEDS::Study_ptr theStudy );
+
+public:      
+  // Public methods to work with Calculation services
+
+  /**
+   * Returns altitude for given point.
+   * \param thePoint the point to examine
+   * \return result altitude value
+   */
+  double GetAltitudeForPoint( const gp_XY& thePoint ) const;
+
+  /**
+   * Returns zone to which the point is belongs.
+   * \param thePoint the point to examine
+   * \return result zone
+   */
+  HYDROData_Zone GetZoneFromPoint( const gp_XY& thePoint ) const [Handle_HYDROData_Zone ( const gp_XY& )];
+  %MethodCode
+    Handle(HYDROData_Zone) aRes;
+    
+    Py_BEGIN_ALLOW_THREADS
+    aRes = sipSelfWasArg ? sipCpp->HYDROData_CalculationCase::GetZoneFromPoint( *a0 ) : 
+                           sipCpp->GetZoneFromPoint( *a0 );
+    Py_END_ALLOW_THREADS
+    
+    sipRes = (HYDROData_Zone*)createPointer( aRes );
+  %End
+
+  /**
+   * Returns classification of point for given zone.
+   * \param thePoint the point to examine
+   * \param theZone the zone to examine
+   * \return result classification
+   */
+  PointClassification GetPointClassification(
+    const gp_XY&   thePoint,
+    HYDROData_Zone theZone ) const 
+    [PointClassification ( const gp_XY&, const Handle_HYDROData_Zone& )];
+    
+  %MethodCode
+    Handle(HYDROData_Zone) aRef =
+      Handle(HYDROData_Zone)::DownCast( createHandle( a1 ) );
+   
+    if ( !aRef.IsNull() )
+    {
+      Py_BEGIN_ALLOW_THREADS
+      sipRes = sipSelfWasArg ? sipCpp->HYDROData_CalculationCase::GetPointClassification( *a0, aRef ) : 
+                               sipCpp->GetPointClassification( *a0, aRef );
+      Py_END_ALLOW_THREADS
+    }
+  %End
 
 protected: