From: adv Date: Thu, 16 Jan 2014 11:44:21 +0000 (+0000) Subject: Access methods for object groups added. X-Git-Tag: BR_hydro_v_1_0~80 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=9c1e99248063fe530c60a15b68ef3a909f319f12;p=modules%2Fhydro.git Access methods for object groups added. --- diff --git a/src/HYDROData/HYDROData_Object.cxx b/src/HYDROData/HYDROData_Object.cxx index 719c105b..e018ca24 100644 --- a/src/HYDROData/HYDROData_Object.cxx +++ b/src/HYDROData/HYDROData_Object.cxx @@ -132,6 +132,38 @@ HYDROData_SequenceOfObjects HYDROData_Object::GetGroups() const return GetReferenceObjects( DataTag_EdgesGroup ); } +Handle(HYDROData_ShapesGroup) HYDROData_Object::GetGroup( const int theGroupId ) const +{ + Handle(HYDROData_ShapesGroup) aResGroup; + + HYDROData_SequenceOfObjects aGroups = GetGroups(); + if ( theGroupId < 0 || theGroupId >= aGroups.Length() ) + return aResGroup; + + aResGroup = Handle(HYDROData_ShapesGroup)::DownCast( aGroups.Value( theGroupId + 1 ) ); + + return aResGroup; +} + +int HYDROData_Object::GetGroupId( const Handle(HYDROData_ShapesGroup)& theGroup ) const +{ + int aRes = -1; + + HYDROData_SequenceOfObjects aGroups = GetGroups(); + for ( int i = 1, n = aGroups.Length(); i <= n; ++i ) + { + Handle(HYDROData_ShapesGroup) aGroup = + Handle(HYDROData_ShapesGroup)::DownCast( aGroups.Value( i ) ); + if ( IsEqual( theGroup, aGroup ) ) + { + aRes = i - 1; + break; + } + } + + return aRes; +} + bool HYDROData_Object::SetAltitudeObject( const Handle(HYDROData_IAltitudeObject)& theAltitude ) { diff --git a/src/HYDROData/HYDROData_Object.h b/src/HYDROData/HYDROData_Object.h index 312368eb..d59e4708 100644 --- a/src/HYDROData/HYDROData_Object.h +++ b/src/HYDROData/HYDROData_Object.h @@ -88,11 +88,22 @@ public: */ HYDRODATA_EXPORT virtual Handle(HYDROData_DummyObject3D) GetObject3D() const; + /** * Returns sequence of object groups. */ HYDRODATA_EXPORT virtual HYDROData_SequenceOfObjects GetGroups() const; + /** + * Returns group data model object by it id. + */ + HYDRODATA_EXPORT virtual Handle(HYDROData_ShapesGroup) GetGroup( const int theGroupId ) const; + + /** + * Returns group id by data model object. + */ + HYDRODATA_EXPORT virtual int GetGroupId( const Handle(HYDROData_ShapesGroup)& theGroup ) const; + /** * Set reference altitude object for geometry object. diff --git a/src/HYDROPy/HYDROData_Object.sip b/src/HYDROPy/HYDROData_Object.sip index 39f89026..399ce5b6 100644 --- a/src/HYDROPy/HYDROData_Object.sip +++ b/src/HYDROPy/HYDROData_Object.sip @@ -138,6 +138,48 @@ public: */ virtual QColor GetBorderColor() const; + + /** + * Returns sequence of object groups. + */ + HYDROData_SequenceOfObjects GetGroups() const; + + /** + * Returns group data model object by it id. + */ + HYDROData_ShapesGroup GetGroup( const int theGroupId ) const [Handle_HYDROData_ShapesGroup ()]; + %MethodCode + + Handle(HYDROData_ShapesGroup) aRefGroup; + + Py_BEGIN_ALLOW_THREADS + aRefGroup = sipSelfWasArg ? sipCpp->HYDROData_Object::GetGroup( a0 ) : + sipCpp->GetGroup( a0 ); + Py_END_ALLOW_THREADS + + sipRes = (HYDROData_ShapesGroup*)createPointer( aRefGroup ); + + %End + + /** + * Returns group id by data model object. + */ + int GetGroupId( HYDROData_ShapesGroup theGroup ) const [int (const Handle_HYDROData_ShapesGroup&)]; + %MethodCode + + Handle(HYDROData_ShapesGroup) aRefGroup = + Handle(HYDROData_ShapesGroup)::DownCast( createHandle( a0 ) ); + if ( !aRefGroup.IsNull() ) + { + Py_BEGIN_ALLOW_THREADS + sipRes = sipSelfWasArg ? sipCpp->HYDROData_Object::GetGroupId( aRefGroup ) : + sipCpp->GetGroupId( aRefGroup ); + Py_END_ALLOW_THREADS + } + + %End + + protected: /**