From 0b1867b383087c4965ea14e56773f0396c3f890c Mon Sep 17 00:00:00 2001 From: adv Date: Thu, 26 Dec 2013 07:18:02 +0000 Subject: [PATCH] Groups creation moved to new API. --- src/HYDROData/HYDROData_Channel.cxx | 76 ++++++++--------------------- src/HYDROData/HYDROData_Channel.h | 10 ---- 2 files changed, 21 insertions(+), 65 deletions(-) diff --git a/src/HYDROData/HYDROData_Channel.cxx b/src/HYDROData/HYDROData_Channel.cxx index 15335a69..f8e30fbb 100644 --- a/src/HYDROData/HYDROData_Channel.cxx +++ b/src/HYDROData/HYDROData_Channel.cxx @@ -118,32 +118,47 @@ void HYDROData_Channel::Update() SetShape3D( aChannelConstructor.Get3dPresentation() ); SetTopShape( aChannelConstructor.Get2dPresentation() ); + // Create groups for channel + TopoDS_Wire aLeftBank = aChannelConstructor.GetLeftBank(); + TopoDS_Wire aRightBank = aChannelConstructor.GetRightBank(); + TopoDS_Wire anInlet = aChannelConstructor.GetInlet(); + TopoDS_Wire anOutlet = aChannelConstructor.GetOutlet(); + + TopTools_SequenceOfShape aLeftBankEdges; + HYDROData_ShapesTool::ExploreShapeToShapes( aLeftBank, TopAbs_EDGE, aLeftBankEdges ); + + TopTools_SequenceOfShape aRightBankEdges; + HYDROData_ShapesTool::ExploreShapeToShapes( aRightBank, TopAbs_EDGE, aRightBankEdges ); + + TopTools_SequenceOfShape anInletEdges; + HYDROData_ShapesTool::ExploreShapeToShapes( anInlet, TopAbs_EDGE, anInletEdges ); + + TopTools_SequenceOfShape anOutletEdges; + HYDROData_ShapesTool::ExploreShapeToShapes( anOutlet, TopAbs_EDGE, anOutletEdges ); - /*TODO: groups via new API QString aLeftGroupName = GetName() + "_Left_Bank"; Handle(HYDROData_ShapesGroup) aLeftGroup = createGroupObject(); aLeftGroup->SetName( aLeftGroupName ); - aLeftGroup->SetShapes( aProjLeftEdges ); + aLeftGroup->SetShapes( aLeftBankEdges ); QString aRightGroupName = GetName() + "_Right_Bank"; Handle(HYDROData_ShapesGroup) aRightGroup = createGroupObject(); aRightGroup->SetName( aRightGroupName ); - aRightGroup->SetShapes( aProjRightEdges ); + aRightGroup->SetShapes( aRightBankEdges ); QString anInGroupName = GetName() + "_Inlet"; Handle(HYDROData_ShapesGroup) anInGroup = createGroupObject(); anInGroup->SetName( anInGroupName ); - anInGroup->SetShapes( aProjInletEdges ); + anInGroup->SetShapes( anInletEdges ); QString anOutGroupName = GetName() + "_Outlet"; Handle(HYDROData_ShapesGroup) anOutGroup = createGroupObject(); anOutGroup->SetName( anOutGroupName ); - anOutGroup->SetShapes( aProjOutletEdges ); - */ + anOutGroup->SetShapes( anOutletEdges ); } QColor HYDROData_Channel::DefaultFillingColor() @@ -253,52 +268,3 @@ ObjectKind HYDROData_Channel::getAltitudeObjectType() const return KIND_OBSTACLE_ALTITUDE; } -void HYDROData_Channel::findEdges( const TopTools_SequenceOfShape& theInShapes, - const TopTools_ListOfShape& theEdges3D, - TopTools_SequenceOfShape& theOutShapes ) const -{ - theOutShapes.Clear(); - if ( theEdges3D.IsEmpty() || theInShapes.IsEmpty() ) - return; - - const TopoDS_Shape& aFirstShape3D = theEdges3D.First(); - const TopoDS_Shape& aLastShape3D = theEdges3D.Last(); - - TopoDS_Vertex aFirstVert, aLastVert, aDummyVert; - if ( !HYDROData_ShapesTool::Vertices( aFirstShape3D, aFirstVert, aDummyVert ) || - !HYDROData_ShapesTool::Vertices( aLastShape3D, aDummyVert, aLastVert ) ) - return; - - bool isStarted = false; - for ( int i = 1, n = theInShapes.Length(); i <= n; ++i ) - { - const TopoDS_Shape& anInShape = theInShapes.Value( i ); - - TopoDS_Vertex aShapeFirstVert, aShapeLastVert; - if ( !HYDROData_ShapesTool::Vertices( anInShape, aShapeFirstVert, aShapeLastVert ) ) - continue; - - if ( !isStarted ) - { - isStarted = HYDROData_ShapesTool::IsVerticesEquals( aFirstVert, aShapeFirstVert, true ); - } - - if ( isStarted ) - { - theOutShapes.Append( anInShape ); - - if ( HYDROData_ShapesTool::IsVerticesEquals( aLastVert, aShapeLastVert, true ) ) - break; - } - } -} - -void HYDROData_Channel::findEdges( const TopTools_SequenceOfShape& theProjShapes, - const TopoDS_Shape& theEdge3D, - TopTools_SequenceOfShape& theOutShapes ) const -{ - TopTools_ListOfShape aTmpList; - aTmpList.Append( theEdge3D ); - findEdges( theProjShapes, aTmpList, theOutShapes ); -} - diff --git a/src/HYDROData/HYDROData_Channel.h b/src/HYDROData/HYDROData_Channel.h index e9301036..269d0db9 100644 --- a/src/HYDROData/HYDROData_Channel.h +++ b/src/HYDROData/HYDROData_Channel.h @@ -126,16 +126,6 @@ protected: */ virtual ObjectKind getAltitudeObjectType() const; -private: - - void findEdges( const TopTools_SequenceOfShape& theInShapes, - const TopTools_ListOfShape& theEdges3D, - TopTools_SequenceOfShape& theOutShapes ) const; - - void findEdges( const TopTools_SequenceOfShape& theInShapes, - const TopoDS_Shape& theEdge3D, - TopTools_SequenceOfShape& theOutShapes ) const; - protected: friend class HYDROData_Iterator; -- 2.39.2