From e1d46e66d9b3c89854d2b81c8b1673791f78d390 Mon Sep 17 00:00:00 2001 From: stv Date: Tue, 31 Mar 2015 09:24:58 +0300 Subject: [PATCH] Selection for image presentation & updates for interpolated stream profiles and stream. --- src/HYDROData/HYDROData_Stream.cxx | 7 +- src/HYDROGUI/HYDROGUI_ImagePrs.cxx | 72 ++++++------------- src/HYDROGUI/HYDROGUI_ImagePrs.h | 3 - .../HYDROGUI_ProfileInterpolateOp.cxx | 7 +- src/HYDROGUI/HYDROGUI_RiverBottomOp.cxx | 19 ----- 5 files changed, 33 insertions(+), 75 deletions(-) diff --git a/src/HYDROData/HYDROData_Stream.cxx b/src/HYDROData/HYDROData_Stream.cxx index 0a35a208..33de721c 100644 --- a/src/HYDROData/HYDROData_Stream.cxx +++ b/src/HYDROData/HYDROData_Stream.cxx @@ -1177,7 +1177,12 @@ bool HYDROData_Stream::Interpolate( HYDROData_IProfilesInterpolator* theInterpol if ( !isAdded ) { aProfile->Remove(); } + else + aProfile->Update(); } + if ( isOK ) + Update(); + return isOK; -} \ No newline at end of file +} diff --git a/src/HYDROGUI/HYDROGUI_ImagePrs.cxx b/src/HYDROGUI/HYDROGUI_ImagePrs.cxx index 03061e55..d10a6f91 100644 --- a/src/HYDROGUI/HYDROGUI_ImagePrs.cxx +++ b/src/HYDROGUI/HYDROGUI_ImagePrs.cxx @@ -16,19 +16,19 @@ #include IMPLEMENT_STANDARD_TYPE(HYDROGUI_ImagePrs) -IMPLEMENT_STANDARD_SUPERTYPE_ARRAY() - STANDARD_TYPE(AIS_InteractiveObject), - STANDARD_TYPE(SelectMgr_SelectableObject), - STANDARD_TYPE(PrsMgr_PresentableObject), - STANDARD_TYPE(MMgt_TShared), - STANDARD_TYPE(Standard_Transient), -IMPLEMENT_STANDARD_SUPERTYPE_ARRAY_END() -IMPLEMENT_STANDARD_TYPE_END(HYDROGUI_ImagePrs) - -IMPLEMENT_DOWNCAST(HYDROGUI_ImagePrs,Standard_Transient) -IMPLEMENT_STANDARD_RTTI(HYDROGUI_ImagePrs) - -HYDROGUI_ImagePrs::HYDROGUI_ImagePrs() + IMPLEMENT_STANDARD_SUPERTYPE_ARRAY() + STANDARD_TYPE(AIS_InteractiveObject), + STANDARD_TYPE(SelectMgr_SelectableObject), + STANDARD_TYPE(PrsMgr_PresentableObject), + STANDARD_TYPE(MMgt_TShared), + STANDARD_TYPE(Standard_Transient), + IMPLEMENT_STANDARD_SUPERTYPE_ARRAY_END() + IMPLEMENT_STANDARD_TYPE_END(HYDROGUI_ImagePrs) + + IMPLEMENT_DOWNCAST(HYDROGUI_ImagePrs,Standard_Transient) + IMPLEMENT_STANDARD_RTTI(HYDROGUI_ImagePrs) + + HYDROGUI_ImagePrs::HYDROGUI_ImagePrs() : AIS_InteractiveObject() { } @@ -88,49 +88,19 @@ void HYDROGUI_ImagePrs::ComputeSelection( const Handle(SelectMgr_Selection)& the } } -void HYDROGUI_ImagePrs::HilightSelected( const Handle(PrsMgr_PresentationManager3d)& aPrsMgr, const SelectMgr_SequenceOfOwner& ) -{ - Handle(Prs3d_Presentation) aPrs = GetSelectPresentation( aPrsMgr ); - if ( aPrs.IsNull() ) - return; - - Handle(Graphic3d_Group) aGroup = Prs3d_Root::CurrentGroup( aPrs ); - - Handle(Graphic3d_AspectLine3d) aLineAspect = - new Graphic3d_AspectLine3d( Quantity_NOC_WHITE, Aspect_TOL_SOLID, 1.0 ); - - aGroup->SetGroupPrimitivesAspect( aLineAspect ); - - Handle(Graphic3d_ArrayOfPolylines) aSegments = new Graphic3d_ArrayOfPolylines( 5 ); - aSegments->AddVertex( convert( myContour[0] ) ); - aSegments->AddVertex( convert( myContour[1] ) ); - aSegments->AddVertex( convert( myContour[2] ) ); - aSegments->AddVertex( convert( myContour[3] ) ); - aSegments->AddVertex( convert( myContour[0] ) ); - - aGroup->AddPrimitiveArray( aSegments ); -} - -void HYDROGUI_ImagePrs::ClearSelected() -{ - Handle(Prs3d_Presentation) aSelectionPrs = GetSelectPresentation( 0 ); - if ( !aSelectionPrs.IsNull() ) - aSelectionPrs->Clear(); -} - void HYDROGUI_ImagePrs::Compute( const Handle(PrsMgr_PresentationManager3d)&, const Handle(Prs3d_Presentation)& aPrs, - const Standard_Integer theMode ) + const Standard_Integer aMode ) { - aPrs->Clear(); - Handle(Graphic3d_Group) aGroup = Prs3d_Root::CurrentGroup( aPrs ); + aPrs->Clear(); + Handle(Graphic3d_Group) aGroup = Prs3d_Root::CurrentGroup( aPrs ); if ( aMode == 0 ) { - Handle(Graphic3d_AspectLine3d) aLineAspect = - new Graphic3d_AspectLine3d( Quantity_NOC_WHITE, Aspect_TOL_SOLID, 1.0 ); +// Handle(Graphic3d_AspectLine3d) aLineAspect = +// new Graphic3d_AspectLine3d( Quantity_NOC_WHITE, Aspect_TOL_SOLID, 1.0 ); - aGroup->SetGroupPrimitivesAspect( aLineAspect ); +// aGroup->SetGroupPrimitivesAspect( aLineAspect ); Handle(Graphic3d_ArrayOfPolylines) aSegments = new Graphic3d_ArrayOfPolylines( 5 ); aSegments->AddVertex( convert( myContour[0] ) ); @@ -141,11 +111,11 @@ void HYDROGUI_ImagePrs::Compute( const Handle(PrsMgr_PresentationManager3d)&, aGroup->AddPrimitiveArray( aSegments ); } - else if ( aMode == 3 ) + else { Graphic3d_MaterialAspect aMat( Graphic3d_NOM_PLASTIC ); Handle(Graphic3d_AspectFillArea3d) aFillAspect = - new Graphic3d_AspectFillArea3d( Aspect_IS_SOLID, Quantity_NOC_WHITE, Quantity_NOC_BLACK, Aspect_TOL_SOLID, 1.0, aMat, aMat ); + new Graphic3d_AspectFillArea3d( Aspect_IS_SOLID, Quantity_NOC_WHITE, Quantity_NOC_BLACK, Aspect_TOL_SOLID, 1.0, aMat, aMat ); Handle(Graphic3d_TextureMap) aTex = new Graphic3d_Texture2Dmanual( myImage ); aTex->DisableModulate(); diff --git a/src/HYDROGUI/HYDROGUI_ImagePrs.h b/src/HYDROGUI/HYDROGUI_ImagePrs.h index a9ea5768..3ad570f9 100644 --- a/src/HYDROGUI/HYDROGUI_ImagePrs.h +++ b/src/HYDROGUI/HYDROGUI_ImagePrs.h @@ -29,9 +29,6 @@ public: const Handle(Prs3d_Presentation)&, const Standard_Integer = 0 ); virtual void ComputeSelection( const Handle(SelectMgr_Selection)&, const Standard_Integer ); - virtual void ClearSelected(); - virtual void HilightSelected( const Handle(PrsMgr_PresentationManager3d)&, const SelectMgr_SequenceOfOwner& ); - DEFINE_STANDARD_RTTI(HYDROGUI_ImagePrs) private: diff --git a/src/HYDROGUI/HYDROGUI_ProfileInterpolateOp.cxx b/src/HYDROGUI/HYDROGUI_ProfileInterpolateOp.cxx index 7caefc3b..34fc43ce 100644 --- a/src/HYDROGUI/HYDROGUI_ProfileInterpolateOp.cxx +++ b/src/HYDROGUI/HYDROGUI_ProfileInterpolateOp.cxx @@ -154,7 +154,12 @@ bool HYDROGUI_ProfileInterpolateOp::processApply( int& theUpdateFlags, QString& commit(); } - return errMessage.isEmpty(); + bool res = errMessage.isEmpty(); + + if ( res ) + theUpdateFlags = UF_Model | UF_OCCViewer | UF_OCC_Forced | UF_VTKViewer; + + return res; } void HYDROGUI_ProfileInterpolateOp::updatePreview() diff --git a/src/HYDROGUI/HYDROGUI_RiverBottomOp.cxx b/src/HYDROGUI/HYDROGUI_RiverBottomOp.cxx index ac898851..87ce6116 100644 --- a/src/HYDROGUI/HYDROGUI_RiverBottomOp.cxx +++ b/src/HYDROGUI/HYDROGUI_RiverBottomOp.cxx @@ -63,25 +63,15 @@ void HYDROGUI_RiverBottomOp::startOperation() HYDROGUI_RiverBottomDlg* aPanel = ::qobject_cast( inputPanel() ); aPanel->reset(); - /* - QString aRiver; - Handle(HYDROData_River) aRiverObj = Handle(HYDROData_River)::DownCast( HYDROGUI_Tool::GetSelectedObject( module() ) ); - if ( !aRiverObj.IsNull() ) - aRiver = aRiverObj->GetName(); - - aPanel->setRiverName( aRiver ); - */ } void HYDROGUI_RiverBottomOp::abortOperation() { -// erasePreview(); HYDROGUI_Operation::abortOperation(); } void HYDROGUI_RiverBottomOp::commitOperation() { -// erasePreview(); HYDROGUI_Operation::commitOperation(); } @@ -109,15 +99,6 @@ bool HYDROGUI_RiverBottomOp::processApply( int& theUpdateFlags, QString& theErro aRiver->GenerateBottomPolyline(); aRiver->Update(); -// Handle(HYDRO_RiverBottom) aBottom = createNewObject(); -// aBottom->SetName( QString( "%1_Bottom" ).arg( aRiver->GetName() ) ); - -// erasePreview(); - -// module()->setObjectVisible( HYDROGUI_Tool::GetActiveOCCViewId( module() ), aBottom, true ); -// theBrowseObjectsEntries.append( HYDROGUI_DataObject::dataObjectEntry( aBottom ) ); - -// module()->setIsToUpdate( aBottom ); theUpdateFlags = UF_Model | UF_OCCViewer | UF_OCC_Forced | UF_VTKViewer; -- 2.39.2