ILMAB project.

Fix dumping of SetStamp()
This commit is contained in:
eap 2013-10-03 14:10:26 +00:00
parent 161068a9fd
commit ca07021429

View File

@ -570,18 +570,11 @@ int GEOM_FieldStep::GetID()
void GEOM_FieldStep::SetStamp(const int stamp) void GEOM_FieldStep::SetStamp(const int stamp)
{ {
Handle(GEOM_Function) fun = GetLastFunction(); if ( GetStamp() != stamp )
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
{ {
// it's stamp modification: field.setStamp(step, 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 ); GEOM_IField data( fun );
data.SetStepStamp( stamp ); data.SetStepStamp( stamp );
@ -602,7 +595,7 @@ int GEOM_FieldStep::GetStamp()
Handle(GEOM_Function) fun = getFunction( GEOM_Field::FUN_CHANGE_STEP_STAMP, this ); Handle(GEOM_Function) fun = getFunction( GEOM_Field::FUN_CHANGE_STEP_STAMP, this );
if ( !fun.IsNull() ) if ( !fun.IsNull() )
return GEOM_IField( fun ).GetStepStamp(); return GEOM_IField( fun ).GetStepStamp();
return std::numeric_limits<int>::max(); // very strange return std::numeric_limits<int>::max();
} }
//======================================================================= //=======================================================================