From: Paul RASCLE Date: Mon, 23 Nov 2020 09:39:39 +0000 (+0100) Subject: debug abort on stream linear interpolation when bathy displayed and modified X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=7c7a301221d760d08d41f168d8d237e4902f39fc;p=modules%2Fhydro.git debug abort on stream linear interpolation when bathy displayed and modified --- diff --git a/doc/salome/examples/axeRivesStreamLin.sx b/doc/salome/examples/axeRivesStreamLin.sx new file mode 100644 index 00000000..f940a051 --- /dev/null +++ b/doc/salome/examples/axeRivesStreamLin.sx @@ -0,0 +1,42 @@ +C Generated by HYDRO Module +C +B N +CN axeh +CP 0 1 +CP 0.0 +CP 0 + 11.988 5.188 0.000 + 18.200 13.917 0.000 + 30.176 14.032 0.000 + 35.019 9.625 0.000 + 40.619 4.871 0.000 +B N +CN riveg +CP 0 1 +CP 0.0 +CP 0 + 7.550 10.153 0.000 + 9.875 15.119 0.000 + 14.523 18.077 0.000 + 19.277 21.458 0.000 + 20.651 25.684 0.000 + 24.137 27.586 0.000 + 25.194 26.740 0.000 + 29.314 23.888 0.000 + 33.223 23.465 0.000 + 35.970 17.337 0.000 + 39.140 15.013 0.000 + 44.845 13.745 0.000 +B N +CN rived +CP 0 1 +CP 0.0 +CP 0 + 16.425 2.018 0.000 + 19.806 5.188 0.000 + 21.463 5.448 0.000 + 24.144 4.051 0.000 + 24.818 6.718 0.000 + 27.802 4.859 0.000 + 29.570 4.770 0.000 + 35.442 1.596 0.000 diff --git a/src/HYDROData/HYDROData_LISM.cxx b/src/HYDROData/HYDROData_LISM.cxx index 3e3b0c09..1207324a 100644 --- a/src/HYDROData/HYDROData_LISM.cxx +++ b/src/HYDROData/HYDROData_LISM.cxx @@ -24,6 +24,9 @@ #include #include +#define _DEVDEBUG_ +#include "HYDRO_trace.hxx" + IMPLEMENT_STANDARD_RTTIEXT( HYDROData_LISM, HYDROData_Bathymetry ) HYDROData_LISM::HYDROData_LISM() @@ -136,6 +139,7 @@ void HYDROData_LISM::SetHaxStep( double theHaxStep ) void HYDROData_LISM::Update() { + DEBTRACE("Update " << GetName().toStdString()); AltitudePoints anOutPoints; HYDROData_SequenceOfObjects aRefProfiles = GetProfiles(); int nbprofilepoints = GetNbProfilePoints(); @@ -176,4 +180,4 @@ void HYDROData_LISM::GetShapePresentations( HYDROData_Stream::PrsDefinition& prs { warnings = myWarnings; } - */ \ No newline at end of file + */ diff --git a/src/HYDROData/HYDROData_Stream.cxx b/src/HYDROData/HYDROData_Stream.cxx index 79b948c3..aaa28a1c 100644 --- a/src/HYDROData/HYDROData_Stream.cxx +++ b/src/HYDROData/HYDROData_Stream.cxx @@ -387,6 +387,25 @@ TopoDS_Shape HYDROData_Stream::GetOutletShape() const return HYDROData_Tool::getFirstShapeFromGroup( aGroups, 4); } +QString HYDROData_Stream::GetBathyName() +{ + QString name; + ObjectKind ok = getAltitudeObjectType(); + if (ok == KIND_DTM) + { + Handle(HYDROData_DTM) dtm = DTM(); + if (!dtm.IsNull()) + name = dtm->GetName(); + } + else if (ok == KIND_LISM) + { + Handle(HYDROData_LISM) lism = LISM(); + if (!lism.IsNull()) + name = lism->GetName(); + } + return name; +} + Handle(HYDROData_DTM) HYDROData_Stream::DTM() const { const_cast( this )->checkAndSetAltitudeObject(); diff --git a/src/HYDROData/HYDROData_Stream.h b/src/HYDROData/HYDROData_Stream.h index fb65c983..7dc6862c 100644 --- a/src/HYDROData/HYDROData_Stream.h +++ b/src/HYDROData/HYDROData_Stream.h @@ -287,6 +287,7 @@ public: HYDRODATA_EXPORT void GetWarnings(NCollection_DataMap>& warnings); + HYDRODATA_EXPORT QString GetBathyName(); protected: diff --git a/src/HYDROData/HYDROData_StreamLinearInterpolation.cxx b/src/HYDROData/HYDROData_StreamLinearInterpolation.cxx index 758fa277..86190d90 100644 --- a/src/HYDROData/HYDROData_StreamLinearInterpolation.cxx +++ b/src/HYDROData/HYDROData_StreamLinearInterpolation.cxx @@ -142,7 +142,7 @@ static void InsertPoints(std::vector& points, // existing points of } nbpoints-=nbPins; } - assert (nbpoints == 0); + //assert (nbpoints == 0); } static void PolyToCurve2d(const Handle(HYDROData_PolylineXY)& poly, Handle(Geom2d_Curve)& c2d) @@ -798,6 +798,7 @@ void HYDROData_StreamLinearInterpolation::Perform( HYDROData_Profile::ProfilePoints profile_points3d = HYDROData_Profile::CalculateProfilePoints(pl, LP.XY(), RP.XY()); // intermediate profile geolocalization 3D + DEBTRACE(" ---------------- fill outBathypoints"); for (int k = 1; k <= profile_points3d.Length(); k++) { HYDROData_Bathymetry::AltitudePoint AP(profile_points3d(k).X(), diff --git a/src/HYDROGUI/HYDROGUI_DeleteOp.cxx b/src/HYDROGUI/HYDROGUI_DeleteOp.cxx index 7164ea8a..8ef71460 100644 --- a/src/HYDROGUI/HYDROGUI_DeleteOp.cxx +++ b/src/HYDROGUI/HYDROGUI_DeleteOp.cxx @@ -36,6 +36,9 @@ #include +#define _DEVDEBUG_ +#include "HYDRO_trace.hxx" + HYDROGUI_DeleteOp::HYDROGUI_DeleteOp( HYDROGUI_Module* theModule ) : HYDROGUI_Operation( theModule ) { @@ -48,6 +51,7 @@ HYDROGUI_DeleteOp::~HYDROGUI_DeleteOp() void HYDROGUI_DeleteOp::startOperation() { + DEBTRACE("startOperation"); QList operations = study()->operations(); int n = operations.size(); if( n>=2 ) @@ -87,6 +91,7 @@ void HYDROGUI_DeleteOp::startOperation() } anObjNames.append( anObject->GetName() ); + DEBTRACE("obj name " << anObject->GetName().toStdString()); } if ( !anIsCanRemove ) diff --git a/src/HYDROGUI/HYDROGUI_Module.cxx b/src/HYDROGUI/HYDROGUI_Module.cxx index 776db8be..12bcdaa9 100755 --- a/src/HYDROGUI/HYDROGUI_Module.cxx +++ b/src/HYDROGUI/HYDROGUI_Module.cxx @@ -112,7 +112,7 @@ #include #include -//#define _DEVDEBUG_ +#define _DEVDEBUG_ #include "HYDRO_trace.hxx" static size_t ViewManagerId = 1; @@ -1315,7 +1315,7 @@ void HYDROGUI_Module::setObjectVisible( const size_t theViewId, const Handle(HYDROData_Entity)& theObject, const bool theState ) { - DEBTRACE("setObjectVisible, theViewId: " << theViewId); + DEBTRACE("setObjectVisible, theViewId: " << theViewId << " " << theState); if( !theObject.IsNull() ) { DEBTRACE("myObjectStateMap.size: " << myObjectStateMap.size()); @@ -1337,11 +1337,14 @@ void HYDROGUI_Module::setObjectVisible( const size_t theViewId, HYDROGUI_DataObject* hydroObject = getDataModel()->getDataObject( theObject ); if ( hydroObject ) { + DEBTRACE("hydroObject " << hydroObject); SUIT_AbstractModel* treeModel = dynamic_cast( getApp()->objectBrowser()->model() ); if ( treeModel ) { + DEBTRACE("treeModel " << treeModel); QString id = hydroObject->text( hydroObject->customData( Qtx::IdType ).toInt() ); Qtx::VisibilityState visState = treeModel->visibilityState( id ); + DEBTRACE("id " << id << " visState "<< visState); if ( visState != Qtx::UnpresentableState ) treeModel->setVisibilityState( id, theState ? Qtx::ShownState : Qtx::HiddenState ); } @@ -1458,6 +1461,7 @@ void HYDROGUI_Module::removeObjectShape( const size_t theView anObject = aShape->getObject(); if ( aShape && (!anObject.IsNull()) && IsEqual( anObject, theObject ) ) { + DEBTRACE("delete shape :" << aShape->getObject()->GetName().toStdString()); delete aShape; aViewShapes.removeAt( i ); continue; diff --git a/src/HYDROGUI/HYDROGUI_OCCDisplayer.cxx b/src/HYDROGUI/HYDROGUI_OCCDisplayer.cxx index f4831d03..b1f9dd5c 100644 --- a/src/HYDROGUI/HYDROGUI_OCCDisplayer.cxx +++ b/src/HYDROGUI/HYDROGUI_OCCDisplayer.cxx @@ -49,7 +49,7 @@ #include #include -//#define _DEVDEBUG_ +#define _DEVDEBUG_ #include "HYDRO_trace.hxx" HYDROGUI_OCCDisplayer::HYDROGUI_OCCDisplayer( HYDROGUI_Module* theModule ) @@ -153,6 +153,7 @@ void HYDROGUI_OCCDisplayer::EraseAll( const size_t theViewerId ) void HYDROGUI_OCCDisplayer::Erase( const HYDROData_SequenceOfObjects& theObjs, const size_t theViewerId ) { + DEBTRACE("Erase " << theObjs.Length() << " " << theViewerId); OCCViewer_Viewer* aViewer = module()->getOCCViewer( theViewerId ); if( !aViewer ) return; @@ -162,7 +163,7 @@ void HYDROGUI_OCCDisplayer::Erase( const HYDROData_SequenceOfObjects& theObjs, Handle(HYDROData_Entity) anObj = theObjs.Value( i ); if( anObj.IsNull() ) continue; - + DEBTRACE("Erasing objects..."); module()->removeObjectShape( (size_t)aViewer, anObj ); } aViewer->update(); diff --git a/src/HYDROGUI/HYDROGUI_Operations.cxx b/src/HYDROGUI/HYDROGUI_Operations.cxx index c828568a..fc8b141d 100644 --- a/src/HYDROGUI/HYDROGUI_Operations.cxx +++ b/src/HYDROGUI/HYDROGUI_Operations.cxx @@ -108,6 +108,9 @@ #include #include +#define _DEVDEBUG_ +#include "HYDRO_trace.hxx" + QAction* HYDROGUI_Module::createAction( const int theId, const QString& theSuffix, const QString& theImg, const int theKey, const bool isToggle, const QString& theSlot ) { @@ -476,6 +479,7 @@ void HYDROGUI_Module::enableLCMActions() void HYDROGUI_Module::resetViewState() { + DEBTRACE("HYDROGUI_Module::resetViewState"); OCCViewer_ViewManager* mgr = dynamic_cast(getApp()->viewManager( OCCViewer_Viewer::Type())); if( mgr ) { @@ -503,10 +507,14 @@ void HYDROGUI_Module::resetViewState() void HYDROGUI_Module::onOperation() { + DEBTRACE("HYDROGUI_Module::onOperation"); const QAction* anAction = dynamic_cast( sender() ); int anId = actionId( anAction ); if( anId >= 0 ) { + // --- bathymetry from stream interpolation must be hidden before edition to avoid aborts after on hide show + if (anId == EditStreamId) + HYDROGUI_StreamOp::hideBathy(this); resetViewState(); startOperation( anId ); } @@ -612,6 +620,7 @@ bool HYDROGUI_Module::onRedo( int theNumActions ) LightApp_Operation* HYDROGUI_Module::createOperation( const int theId ) const { + DEBTRACE("HYDROGUI_Module::createOperation "<< theId); LightApp_Operation* anOp = 0; HYDROGUI_Module* aModule = const_cast( this ); switch( theId ) diff --git a/src/HYDROGUI/HYDROGUI_ShapeBathymetry.cxx b/src/HYDROGUI/HYDROGUI_ShapeBathymetry.cxx index a6de2d91..57d564fb 100644 --- a/src/HYDROGUI/HYDROGUI_ShapeBathymetry.cxx +++ b/src/HYDROGUI/HYDROGUI_ShapeBathymetry.cxx @@ -31,7 +31,7 @@ #include #include -//#define _DEVDEBUG_ +#define _DEVDEBUG_ #include "HYDRO_trace.hxx" HYDROGUI_ShapeBathymetry::HYDROGUI_ShapeBathymetry( HYDROGUI_OCCDisplayer* theDisplayer, @@ -44,11 +44,13 @@ HYDROGUI_ShapeBathymetry::HYDROGUI_ShapeBathymetry( HYDROGUI_OCCDisplayer* myMax( 0 ), myRangeInitialized( false ) { + DEBTRACE("HYDROGUI_ShapeBathymetry " << this) setDisplayMode( AIS_PointCloud::DM_Points ); } HYDROGUI_ShapeBathymetry::~HYDROGUI_ShapeBathymetry() { + DEBTRACE("~HYDROGUI_ShapeBathymetry " << this); setToUpdateColorScale( true ); } diff --git a/src/HYDROGUI/HYDROGUI_ShowHideOp.cxx b/src/HYDROGUI/HYDROGUI_ShowHideOp.cxx index b5f3c595..86f6cad2 100644 --- a/src/HYDROGUI/HYDROGUI_ShowHideOp.cxx +++ b/src/HYDROGUI/HYDROGUI_ShowHideOp.cxx @@ -40,10 +40,14 @@ #include +#define _DEVDEBUG_ +#include "HYDRO_trace.hxx" + HYDROGUI_ShowHideOp::HYDROGUI_ShowHideOp( HYDROGUI_Module* theModule, int theId ) : HYDROGUI_Operation( theModule ), myId( theId ) { + DEBTRACE("HYDROGUI_ShowHideOp " << theId); QString aName; switch( myId ) { @@ -63,6 +67,7 @@ HYDROGUI_ShowHideOp::~HYDROGUI_ShowHideOp() void HYDROGUI_ShowHideOp::startOperation() { + DEBTRACE("startOperation"); HYDROGUI_Operation::startOperation(); HYDROGUI_Module* aModule = module(); diff --git a/src/HYDROGUI/HYDROGUI_StreamOp.cxx b/src/HYDROGUI/HYDROGUI_StreamOp.cxx index 89a5186d..5361f804 100755 --- a/src/HYDROGUI/HYDROGUI_StreamOp.cxx +++ b/src/HYDROGUI/HYDROGUI_StreamOp.cxx @@ -25,6 +25,7 @@ #include "HYDROGUI_Tool.h" #include "HYDROGUI_Tool2.h" #include "HYDROGUI_UpdateFlags.h" +#include "HYDROGUI_OCCDisplayer.h" #include #include @@ -44,6 +45,8 @@ #include #include #include +#include +#include #include #include #include @@ -57,11 +60,15 @@ #include #include +#define _DEVDEBUG_ +#include "HYDRO_trace.hxx" + void insertProfileInToOrder( const QString& theProfileName, const double& theProfilePar, QStringList& theProfiles, QList& theProfileParams ) { + DEBTRACE("insertProfileInToOrder"); bool anIsInserted = false; for ( int k = 0; k < theProfileParams.length(); ++k ) { @@ -82,21 +89,46 @@ void insertProfileInToOrder( const QString& theProfileName, } } -HYDROGUI_StreamOp::HYDROGUI_StreamOp( HYDROGUI_Module* theModule, bool theIsEdit ) -: HYDROGUI_Operation( theModule ), - myIsEdit( theIsEdit ), - myPreviewPrs( NULL ) +void HYDROGUI_StreamOp::hideBathy(HYDROGUI_Module *theModule) +{ + DEBTRACE("HYDROGUI_StreamOp::hideBathy"); + Handle(HYDROData_Stream) editedObject = + Handle(HYDROData_Stream)::DownCast(HYDROGUI_Tool::GetSelectedObject(theModule)); + if (!editedObject.IsNull()) + { + QString bathyName = editedObject->GetBathyName(); + DEBTRACE("bathyName " << bathyName.toStdString()); + if (!bathyName.isEmpty()) + { + Handle(HYDROData_Entity) aBathyObject = HYDROGUI_Tool::FindObjectByName(theModule, bathyName); + if (!aBathyObject.IsNull()) + { + DEBTRACE("Hide " << bathyName.toStdString()); + int anUpdateFlags = UF_OCCViewer; + size_t aViewerId = HYDROGUI_Tool::GetActiveOCCViewId(theModule); + theModule->setObjectVisible(aViewerId, aBathyObject, false); + theModule->update( anUpdateFlags ); + } + } + } +} + +HYDROGUI_StreamOp::HYDROGUI_StreamOp(HYDROGUI_Module *theModule, bool theIsEdit) : + HYDROGUI_Operation(theModule), myIsEdit(theIsEdit), myPreviewPrs( NULL) { - setName( theIsEdit ? tr( "EDIT_STREAM" ) : tr( "CREATE_STREAM" ) ); + DEBTRACE("HYDROGUI_StreamOp"); + setName(theIsEdit ? tr("EDIT_STREAM") : tr("CREATE_STREAM")); } HYDROGUI_StreamOp::~HYDROGUI_StreamOp() { + DEBTRACE("~HYDROGUI_StreamOp"); erasePreview(); } void HYDROGUI_StreamOp::startOperation() { + DEBTRACE("startOperation"); HYDROGUI_Operation::startOperation(); int mode = 0; //DTM mode by def @@ -120,6 +152,7 @@ void HYDROGUI_StreamOp::startOperation() { mode = myEditedObject->GetInterpolationMethod(); anObjectName = myEditedObject->GetName(); + DEBTRACE("anObjectName " << anObjectName.toStdString()); //aPanel->setMode(mode); // Hydraulic axis @@ -148,9 +181,7 @@ void HYDROGUI_StreamOp::startOperation() HYDROData_Stream::HasIntersection( aHydraulicAxis, aProfile, aPlane, aProfilePar ); myProfileParams << aProfilePar; } - } - } } @@ -191,18 +222,21 @@ void HYDROGUI_StreamOp::startOperation() void HYDROGUI_StreamOp::abortOperation() { + DEBTRACE("abortOperation"); erasePreview(); HYDROGUI_Operation::abortOperation(); } void HYDROGUI_StreamOp::commitOperation() { + DEBTRACE("commitOperation"); erasePreview(); HYDROGUI_Operation::commitOperation(); } HYDROGUI_InputPanel* HYDROGUI_StreamOp::createInputPanel() const { + DEBTRACE("createInputPanel"); HYDROGUI_StreamDlg* aPanel = new HYDROGUI_StreamDlg( module(), getName() ); connect( aPanel, SIGNAL( AddProfiles() ), this, SLOT( onAddProfiles() ) ); @@ -229,7 +263,13 @@ HYDROGUI_InputPanel* HYDROGUI_StreamOp::createInputPanel() const void HYDROGUI_StreamOp::apply() { + DEBTRACE("apply"); QApplication::setOverrideCursor( Qt::WaitCursor ); + if (myEditedObject) + { + QString anObjectName = myEditedObject->GetName(); + DEBTRACE("anObjectName " << anObjectName.toStdString()); + } startDocOperation(); @@ -282,6 +322,7 @@ bool HYDROGUI_StreamOp::processApply( int& theUpdateFlags, QString& theErrorMsg, QStringList& theBrowseObjectsEntries ) { + DEBTRACE("processApply"); HYDROGUI_StreamDlg* aPanel = ::qobject_cast( inputPanel() ); if ( !aPanel ) return false; @@ -362,7 +403,6 @@ bool HYDROGUI_StreamOp::processApply( int& theUpdateFlags, HYDROGUI_Tool::FindObjectByName( module(), aPanel->getLeftBankName(), KIND_POLYLINEXY ) ); Handle(HYDROData_PolylineXY) aRightBank = Handle(HYDROData_PolylineXY)::DownCast( HYDROGUI_Tool::FindObjectByName( module(), aPanel->getRightBankName(), KIND_POLYLINEXY ) ); - //myEditedObject->Se myEditedObject->SetLeftBank(aLeftBank); myEditedObject->SetRightBank(aRightBank); @@ -418,6 +458,7 @@ bool HYDROGUI_StreamOp::processApply( int& theUpdateFlags, void HYDROGUI_StreamOp::createPreview() { + DEBTRACE("createPreview"); HYDROGUI_StreamDlg* aPanel = ::qobject_cast( inputPanel() ); int mode = aPanel->getMode(); @@ -573,6 +614,7 @@ void HYDROGUI_StreamOp::createPreview() void HYDROGUI_StreamOp::erasePreview() { + DEBTRACE("erasePreview"); if( myPreviewPrs ) { delete myPreviewPrs; @@ -582,6 +624,7 @@ void HYDROGUI_StreamOp::erasePreview() void HYDROGUI_StreamOp::onAddProfiles() { + DEBTRACE("onAddProfiles"); //TODO skip if mode == 1?? Handle(HYDROData_PolylineXY) aHydAxis = Handle(HYDROData_PolylineXY)::DownCast( HYDROGUI_Tool::FindObjectByName( module(), myHydAxis, KIND_POLYLINEXY ) ); @@ -674,6 +717,7 @@ void HYDROGUI_StreamOp::onAddProfiles() void HYDROGUI_StreamOp::onRemoveProfiles( const QStringList& theProfilesToRemove ) { + DEBTRACE("onRemoveProfiles"); QStringList aToRemove = theProfilesToRemove; aToRemove.removeDuplicates(); @@ -708,6 +752,7 @@ void HYDROGUI_StreamOp::onRemoveProfiles( const QStringList& theProfilesToRemove void HYDROGUI_StreamOp::onDDZValueChanged( double d ) { + DEBTRACE("onDDZValueChanged"); HYDROGUI_StreamDlg* aPanel = ::qobject_cast( inputPanel() ); if (!aPanel) return; @@ -717,6 +762,7 @@ void HYDROGUI_StreamOp::onDDZValueChanged( double d ) void HYDROGUI_StreamOp::onSSValueChanged( double d ) { + DEBTRACE("onSSValueChanged"); HYDROGUI_StreamDlg* aPanel = ::qobject_cast( inputPanel() ); if (!aPanel) return; @@ -725,6 +771,7 @@ void HYDROGUI_StreamOp::onSSValueChanged( double d ) void HYDROGUI_StreamOp::onAxisChanged( const QString& theNewAxis ) { + DEBTRACE("onAxisChanged"); HYDROGUI_StreamDlg* aPanel = ::qobject_cast( inputPanel() ); if (!aPanel) return; @@ -808,6 +855,7 @@ void HYDROGUI_StreamOp::onAxisChanged( const QString& theNewAxis ) void HYDROGUI_StreamOp::onLeftBankChanged( const QString& theNewAxis ) { + DEBTRACE("onLeftBankChanged"); HYDROGUI_StreamDlg* aPanel = ::qobject_cast( inputPanel() ); if (!aPanel) return; @@ -817,6 +865,7 @@ void HYDROGUI_StreamOp::onLeftBankChanged( const QString& theNewAxis ) void HYDROGUI_StreamOp::onRightBankChanged( const QString& theNewAxis ) { + DEBTRACE("onRightBankChanged"); HYDROGUI_StreamDlg* aPanel = ::qobject_cast( inputPanel() ); if (!aPanel) return; @@ -826,6 +875,7 @@ void HYDROGUI_StreamOp::onRightBankChanged( const QString& theNewAxis ) void HYDROGUI_StreamOp::onProfilePointsChanged( int d ) { + DEBTRACE("onProfilePointsChanged"); HYDROGUI_StreamDlg* aPanel = ::qobject_cast( inputPanel() ); if (!aPanel) return; @@ -835,11 +885,13 @@ void HYDROGUI_StreamOp::onProfilePointsChanged( int d ) void HYDROGUI_StreamOp::onModeChanged( bool mode ) { + DEBTRACE("onModeChanged"); createPreview(); } void HYDROGUI_StreamOp::updatePanelData() { + DEBTRACE("updatePanelData"); HYDROGUI_StreamDlg* aPanel = ::qobject_cast( inputPanel() ); if ( !aPanel ) return; diff --git a/src/HYDROGUI/HYDROGUI_StreamOp.h b/src/HYDROGUI/HYDROGUI_StreamOp.h index 2f2616d7..9e73cdda 100755 --- a/src/HYDROGUI/HYDROGUI_StreamOp.h +++ b/src/HYDROGUI/HYDROGUI_StreamOp.h @@ -34,6 +34,8 @@ public: HYDROGUI_StreamOp( HYDROGUI_Module* theModule, bool isEdit ); virtual ~HYDROGUI_StreamOp(); + static void hideBathy(HYDROGUI_Module* theModule); + protected: virtual void startOperation();