Salome HOME
refs #482: new function for export calculation case
[modules/hydro.git] / src / HYDROPy / HYDROData_Channel.sip
index 6c81449e18eac4dc8f522b79168244527eadf93d..724734b16e5674ac56c22bd7a000a806d2b3c3b5 100644 (file)
@@ -30,6 +30,24 @@ class HYDROData_Channel : public HYDROData_ArtificialObject
 #include "HYDROData_Channel.h"
 %End
 
+%ConvertToSubClassCode
+    // HYDROData_Channel sub-classes provide a unique kind ID.
+    switch ( sipCpp->GetKind() )
+    {
+      case KIND_DIGUE:
+        sipClass = sipClass_HYDROData_Digue;
+        break;
+
+      case KIND_UNKNOWN:
+        sipClass = sipClass_HYDROData_ArtificialObject;
+        break;
+
+      default:
+        // We don't recognise the type.
+        sipClass = NULL;
+    }
+%End
+
 public:
   /**
    * Returns default filling color for new channel.
@@ -48,33 +66,79 @@ public:
   /**
    * Sets reference guide line object for channel.
    */
-  virtual bool SetGuideLine( const Handle(HYDROData_Polyline3D)& theGuideLine );
+  bool SetGuideLine( HYDROData_Polyline3D theGuideLine )
+  [bool ( const Handle_HYDROData_Polyline3D& )];
+  %MethodCode
+    Handle(HYDROData_Polyline3D) aRef =
+      Handle(HYDROData_Polyline3D)::DownCast( createHandle( a0 ) );
+    if ( !aRef.IsNull() )
+    {
+      Py_BEGIN_ALLOW_THREADS
+      sipRes = sipSelfWasArg ? sipCpp->HYDROData_Channel::SetGuideLine( aRef ):
+                               sipCpp->SetGuideLine( aRef );
+      Py_END_ALLOW_THREADS
+    }
+  %End
 
   /**
    * Returns reference guide line object of channel.
    */
-  virtual Handle(HYDROData_Polyline3D) GetGuideLine() const;
+  HYDROData_Polyline3D GetGuideLine() const
+  [Handle_HYDROData_Polyline3D ()];
+  %MethodCode
+    Handle(HYDROData_Polyline3D) aRef;
+    
+    Py_BEGIN_ALLOW_THREADS
+    aRef = sipSelfWasArg ? sipCpp->HYDROData_Channel::GetGuideLine() : 
+                           sipCpp->GetGuideLine();
+    Py_END_ALLOW_THREADS
+    
+    sipRes = (HYDROData_Polyline3D*)createPointer( aRef );
+  %End
 
   /**
    * Remove reference guide line object from channel.
    */
-  virtual void RemoveGuideLine();
+  void RemoveGuideLine();
 
 
   /**
    * Sets reference profile object for channel.
    */
-  virtual bool SetProfile( const Handle(HYDROData_Profile)& theProfile );
+  bool SetProfile( HYDROData_Profile theProfile )
+  [bool ( const Handle_HYDROData_Profile& )];
+  %MethodCode
+    Handle(HYDROData_Profile) aRef =
+      Handle(HYDROData_Profile)::DownCast( createHandle( a0 ) );
+    if ( !aRef.IsNull() )
+    {
+      Py_BEGIN_ALLOW_THREADS
+      sipRes = sipSelfWasArg ? sipCpp->HYDROData_Channel::SetProfile( aRef ):
+                               sipCpp->SetProfile( aRef );
+      Py_END_ALLOW_THREADS
+    }
+  %End
 
   /**
    * Returns reference profile object of channel.
    */
-  virtual Handle(HYDROData_Profile) GetProfile() const;
+  HYDROData_Profile GetProfile() const
+  [Handle_HYDROData_Profile ()];
+  %MethodCode
+    Handle(HYDROData_Profile) aRef;
+    
+    Py_BEGIN_ALLOW_THREADS
+    aRef = sipSelfWasArg ? sipCpp->HYDROData_Channel::GetProfile() : 
+                           sipCpp->GetProfile();
+    Py_END_ALLOW_THREADS
+    
+    sipRes = (HYDROData_Profile*)createPointer( aRef );
+  %End
 
   /**
    * Remove reference profile object from channel.
    */
-  virtual void RemoveProfile();
+  void RemoveProfile();
 
 
 protected: