Salome HOME
Minor change.
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_PolylineOp.cxx
index 2aa8ccac9b65d2e94649539338dc8b08ce95362d..66a3ca9f49a9d449d8ef6f8b7aaa8cfda263f260 100755 (executable)
 
 #include <OCCViewer_AISSelector.h>
 
+#include <Precision.hxx>
+
+static int ZValueIncrement = 0;
+
 HYDROGUI_PolylineOp::HYDROGUI_PolylineOp( HYDROGUI_Module* theModule, bool theIsEdit )
 : HYDROGUI_Operation( theModule ), myIsEdit(theIsEdit), myCurve(NULL), 
   myViewManager(NULL), myAISCurve(NULL)
@@ -57,7 +61,11 @@ HYDROGUI_PolylineOp::~HYDROGUI_PolylineOp()
 
 void HYDROGUI_PolylineOp::startOperation()
 {
-  CurveCreator_Curve* anOldCurve = myCurve;
+  if( myCurve )
+  {
+    delete myCurve;
+    myCurve = 0;
+  }
 
   HYDROGUI_Operation::startOperation();
 
@@ -67,12 +75,12 @@ void HYDROGUI_PolylineOp::startOperation()
   myEditedObject = Handle(HYDROData_Polyline)::DownCast( HYDROGUI_Tool::GetSelectedObject( module() ) );
   if( !myEditedObject.IsNull() )
   {
-    int anIntDim = myEditedObject->getDimension();
+    int anIntDim = myEditedObject->GetDimension();
     CurveCreator::Dimension aDim = CurveCreator::Dim3d;
     if( anIntDim == 2 )
       aDim = CurveCreator::Dim2d;
     myCurve = new CurveCreator_Curve(aDim);
-    QList<PolylineSection> aPolylineData = myEditedObject->getPolylineData();
+    QList<PolylineSection> aPolylineData = myEditedObject->GetPolylineData();
 
     CurveCreator_CurveEditor* anEdit = new CurveCreator_CurveEditor(myCurve);
     for( int i = 0 ; i < aPolylineData.size() ; i++ ){
@@ -99,10 +107,10 @@ void HYDROGUI_PolylineOp::startOperation()
     aPanel->setPolylineName(aNewName);
   }
   aPanel->setCurve(myCurve);
+
   if( myAISCurve )
     myAISCurve->setCurve(myCurve);
-  if( anOldCurve )
-    delete anOldCurve;
+
   displayPreview();
 }
 
@@ -144,6 +152,9 @@ bool HYDROGUI_PolylineOp::processApply( int& theUpdateFlags,
   }
   else{
     aPolylineObj = Handle(HYDROData_Polyline)::DownCast( aDocument->CreateObject( KIND_POLYLINE ) );
+
+    double aZValue = double( ++ZValueIncrement ) * 1e-2; // empiric value, to be revised
+    aPolylineObj->SetZValue( aZValue );
   }
 
   if( aPolylineObj.IsNull() )
@@ -154,7 +165,7 @@ bool HYDROGUI_PolylineOp::processApply( int& theUpdateFlags,
   int aDimInt = 3;
   if( myCurve->getDimension() == CurveCreator::Dim2d )
     aDimInt = 2;
-  aPolylineObj->setDimension(aDimInt);
+  aPolylineObj->SetDimension(aDimInt);
   QList<PolylineSection> aPolylineData;
   for( int i=0 ; i < myCurve->getNbSections() ; i++ ){
     PolylineSection aSect;
@@ -170,7 +181,7 @@ bool HYDROGUI_PolylineOp::processApply( int& theUpdateFlags,
     }
     aPolylineData << aSect;
   }
-  aPolylineObj->setPolylineData(aPolylineData);
+  aPolylineObj->SetPolylineData(aPolylineData);
 
   theUpdateFlags = UF_Model;
   module()->setObjectVisible( HYDROGUI_Tool::GetActiveGraphicsViewId( module() ), aPolylineObj, true );