X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROPy%2FHYDROData_Channel.sip;h=724734b16e5674ac56c22bd7a000a806d2b3c3b5;hb=19a3b00b657cd97859502f8bf693f0d1caf800d7;hp=6c81449e18eac4dc8f522b79168244527eadf93d;hpb=1ec37f9d5e793698adfc0c1897d097ce14d287f1;p=modules%2Fhydro.git diff --git a/src/HYDROPy/HYDROData_Channel.sip b/src/HYDROPy/HYDROData_Channel.sip index 6c81449e..724734b1 100644 --- a/src/HYDROPy/HYDROData_Channel.sip +++ b/src/HYDROPy/HYDROData_Channel.sip @@ -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: