ret = algo->CheckHypothesis((*_father), _subShape, hyp_status);
if (!ret) return false;
- TopoDS_Shape shape = _subShape;
-
- _computeError = SMESH_ComputeError::New(COMPERR_OK,"",algo);
+ if ( !aResMap.count(this) )
+ {
+ _computeError = SMESH_ComputeError::New(COMPERR_OK,"",algo);
+ ret = algo->Evaluate((*_father), _subShape, aResMap);
- ret = algo->Evaluate((*_father), shape, aResMap);
+ aResMap.insert( make_pair( this,vector<int>(0)));
+ }
}
return ret;