Salome HOME
Merge remote-tracking branch 'origin/BR_1321_ECW' into BR_DEMO
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_ProfileOp.cxx
index d7995dd18a865a612f8529c91ec4b32ccba1b137..732637ac6fff4743b91d5caf9b0efed484960130 100644 (file)
 #include <HYDROGUI_Module.h>
 #include <HYDROGUI_ProfileOp.h>
 #include <HYDROGUI_ProfileDlg.h>
-#include <HYDROGUI_Tool.h>
+#include <HYDROGUI_Tool2.h>
 #include <HYDROGUI_UpdateFlags.h>
 #include <HYDROGUI_DataObject.h>
 #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 );
   }
@@ -228,7 +228,7 @@ bool HYDROGUI_ProfileOp::processApply( int& theUpdateFlags,
 
   if ( !myIsEdit )
   {
-    aProfileObj->SetBorderColor( HYDROData_Profile::DefaultBorderColor() );
+    aProfileObj->SetBorderColor( aProfileObj->DefaultBorderColor() );
   }
 
   // At first we update the child u,z profile object
@@ -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;
+}