Salome HOME
Merge remote-tracking branch 'origin/BR_1321_ECW' into BR_DEMO
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_ProfileOp.cxx
index 11a60f85217ae0411dd43c1cf4168220d1c7ce27..732637ac6fff4743b91d5caf9b0efed484960130 100644 (file)
@@ -25,6 +25,7 @@
 #include <HYDROData_Document.h>
 #include <HYDROData_Profile.h>
 #include <HYDROGUI_CurveCreatorProfile.h>
+#include <HYDROGUI_DeleteOp.h>
 #include <CurveCreator_Displayer.hxx>
 
 #include <LightApp_Application.h>
@@ -201,20 +202,19 @@ bool HYDROGUI_ProfileOp::processApply( int& theUpdateFlags,
 
   HYDROData_ProfileUZ::PointsList aProfileParamPoints;
 
-  CurveCreator::Coordinates aCurveCoords = myProfile->getPoints( 0 );
-  if ( aCurveCoords.size() <= 2 )
+  Handle(TColgp_HArray1OfPnt) aCurveCoords = myProfile->GetDifferentPoints( 0 );
+  if ( aCurveCoords.IsNull() || aCurveCoords->Size() <= 2 )
   {
     theErrorMsg = tr( "NUMBER_OF_PROFILE_POINTS_INCORRECT" );
     return false;
   }
 
-  for ( int k = 0 ; k + 1 < aCurveCoords.size() ; k++ )
+  for ( int k = aCurveCoords->Lower(); k <= aCurveCoords->Upper() ; k++ )
   {
     HYDROData_ProfileUZ::Point aProfileParamPoint;
 
-    aProfileParamPoint.SetX( aCurveCoords.at( k ) );
-    k++;
-    aProfileParamPoint.SetY( aCurveCoords.at( k ) );
+    aProfileParamPoint.SetX( aCurveCoords->Value( k ).X() );
+    aProfileParamPoint.SetY( aCurveCoords->Value( k ).Y() );
 
     aProfileParamPoints.Append( aProfileParamPoint );
   }
@@ -279,3 +279,12 @@ void HYDROGUI_ProfileOp::erasePreview()
     }
   }
 }
+
+bool HYDROGUI_ProfileOp::isValid( SUIT_Operation* theOtherOp ) const
+{
+  HYDROGUI_DeleteOp* aDelOp = dynamic_cast<HYDROGUI_DeleteOp*>( theOtherOp );
+  if( aDelOp )
+    return true;
+  else
+    return false;
+}