Salome HOME
0022777: [CEA 1291] Display the name of an object in the 3D View
[modules/geom.git] / src / GEOM / GEOM_Field.cxx
index bfc485c60e461fbdb836711afc891b47bbdc7cd8..ea75736512af57df942c724307531e6602607a58 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2013  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2015  CEA/DEN, EDF R&D, OPEN CASCADE
 //
 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
@@ -6,7 +6,7 @@
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -570,24 +570,17 @@ int GEOM_FieldStep::GetID()
 
 void GEOM_FieldStep::SetStamp(const int stamp)
 {
-  Handle(GEOM_Function) fun = GetLastFunction();
-  if ( fun.IsNull() ) return;
-  if ( fun->GetType() == GEOM_Field::FUN_ADD_STEP )
-  {
-    // it's creation of the step, dump is performed outside
-    GEOM_IField data( fun );
-    data.SetStepStamp( stamp );
-  }
-  else
+  if ( GetStamp() != stamp )
   {
     // it's stamp modification: field.setStamp(step, stamp)
-    fun = AddFunction( GEOM_Field::GetFieldID(), GEOM_Field::FUN_CHANGE_STEP_STAMP );
+    Handle(GEOM_Function) fun =
+      AddFunction( GEOM_Field::GetFieldID(), GEOM_Field::FUN_CHANGE_STEP_STAMP );
 
     GEOM_IField data( fun );
     data.SetStepStamp( stamp );
 
     TPythonDump( fun ) <<
-      GetField() << ".setStamp( " << data.GetStepID() << ", " << stamp << " )";
+      GetField() << ".setStamp( " << GetID() << ", " << stamp << " )";
   }
 }
 
@@ -602,7 +595,7 @@ int GEOM_FieldStep::GetStamp()
   Handle(GEOM_Function) fun = getFunction( GEOM_Field::FUN_CHANGE_STEP_STAMP, this );
   if ( !fun.IsNull() )
     return GEOM_IField( fun ).GetStepStamp();
-  return std::numeric_limits<int>::max(); // very strange
+  return std::numeric_limits<int>::max();
 }
 
 //=======================================================================
@@ -635,7 +628,7 @@ GEOM_FieldStep::getFunctionToSetValuesAndDump( const TCollection_AsciiString& va
 
 //=======================================================================
 //function : SetValues
-//purpose  : Sets int or bool values
+//purpose  : Set int or bool values
 //=======================================================================
 
 bool GEOM_FieldStep::SetValues( const Handle(TColStd_HArray1OfInteger)& values )