]> SALOME platform Git repositories - modules/hydro.git/commitdiff
Salome HOME
Minor changes.
authoradv <adv@opencascade.com>
Tue, 3 Dec 2013 07:11:29 +0000 (07:11 +0000)
committeradv <adv@opencascade.com>
Tue, 3 Dec 2013 07:11:29 +0000 (07:11 +0000)
src/HYDROData/HYDROData_Channel.cxx

index 9ad19c9716e70bc452562c8769c18b2d4c74dad0..40c496aa61520c5b4b15dc4c608f8ebef14a4bec 100644 (file)
@@ -59,9 +59,7 @@ TopoDS_Shape HYDROData_Channel::GetShape3D() const
 
 void HYDROData_Channel::Update()
 {
-  removeTopShape();
-  removeShape3D();
-  SetToUpdate( false );
+  HYDROData_ArtificialObject::Update();
 
   Handle(HYDROData_Polyline3D) aGuideLine = GetGuideLine();
   Handle(HYDROData_Profile) aProfile = GetProfile();
@@ -73,17 +71,21 @@ void HYDROData_Channel::Update()
 
 bool HYDROData_Channel::SetGuideLine( const Handle(HYDROData_Polyline3D)& theGuideLine )
 {
-  if ( theGuideLine.IsNull()  )
+  Handle(HYDROData_Polyline3D) aPrevGuideLine = GetGuideLine();
+
+  if ( theGuideLine.IsNull() )
+  {
+    RemoveGuideLine();
+    return !aPrevGuideLine.IsNull();
+  }
+
+  if ( IsEqual( aPrevGuideLine, theGuideLine ) )
     return false;
-  
+
   TopoDS_Wire aHydraulicWire = TopoDS::Wire( theGuideLine->GetTopShape() );
   if ( aHydraulicWire.IsNull() )
     return false; // The polyline must be a single wire
 
-  Handle(HYDROData_Polyline3D) aPrevGuideLine = GetGuideLine();
-  if ( IsEqual( aPrevGuideLine, theGuideLine ) )
-    return true;
-
   SetReferenceObject( theGuideLine, DataTag_GuideLine );
 
   // Indicate model of the need to update the chanel presentation
@@ -112,12 +114,16 @@ void HYDROData_Channel::RemoveGuideLine()
 
 bool HYDROData_Channel::SetProfile( const Handle(HYDROData_Profile)& theProfile )
 {
-  if ( theProfile.IsNull()  )
-    return false;
-  
   Handle(HYDROData_Profile) aPrevProfile = GetProfile();
+
+  if ( theProfile.IsNull() )
+  {
+    RemoveProfile();
+    return !aPrevProfile.IsNull();
+  }
+
   if ( IsEqual( aPrevProfile, theProfile ) )
-    return true;
+    return false;
 
   SetReferenceObject( theProfile, DataTag_Profile );