Salome HOME
lot 10 - warnings for DTM - untested
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_ChannelOp.cxx
index 8c3e73e469f05fa438f03d039ef3e31990548a51..a0a699c031317e49f3d01689bfac69bcaf74667a 100644 (file)
@@ -36,6 +36,7 @@
 
 #include <LightApp_Application.h>
 #include <LightApp_UpdateFlags.h>
+#include <HYDROData_ChannelAltitude.h>
 
 #include <TopoDS.hxx>
 
@@ -123,6 +124,18 @@ void HYDROGUI_ChannelOp::startOperation()
   else
     aPanel->setEquiDistance( 1.0 );
 
+  if( !myEditedObject.IsNull() )
+  {
+    bool invDirection = false;
+    Handle(HYDROData_IAltitudeObject) anObjAltitude = myEditedObject->GetAltitudeObject();
+    Handle(HYDROData_ChannelAltitude) aChannelAlt = Handle(HYDROData_ChannelAltitude)::DownCast(anObjAltitude);
+    if (!aChannelAlt.IsNull())
+      invDirection = aChannelAlt->GetInvertDirection();
+    aPanel->setInvertDirection( invDirection );
+  }
+  else
+    aPanel->setInvertDirection( false );
+
   aPanel->blockSignals( false );
 
   onCreatePreview();
@@ -216,6 +229,11 @@ bool HYDROGUI_ChannelOp::processApply( int& theUpdateFlags,
     myEditedObject->RemoveProfile();
     myEditedObject->SetProfile( aProfile );
     myEditedObject->SetEquiDistance( aPanel->getEquiDistance() );
+    ///
+    Handle(HYDROData_IAltitudeObject) anObjAltitude = myEditedObject->GetAltitudeObject();
+    Handle(HYDROData_ChannelAltitude) aChannelAlt = Handle(HYDROData_ChannelAltitude)::DownCast(anObjAltitude);
+    if (!aChannelAlt.IsNull())
+      aChannelAlt->SetInvertDirection(aPanel->getInvertDirection());
   }
 
   if ( myEditedObject->IsMustBeUpdated( HYDROData_Entity::Geom_2d ) )