ObjectPtr Model_Objects::object(const std::string& theGroupID, const int theIndex)
{
- createHistory(theGroupID);
- //TODO: mpv stabilization hotfix
- if (myHistory[theGroupID].size() <= theIndex)
+ if (theIndex == -1)
return ObjectPtr();
+ createHistory(theGroupID);
return myHistory[theGroupID][theIndex];
}
if (aGroup->Get() == ModelAPI_ResultBody::group().c_str()) {
aNewBody = createBody(theFeature->data(), aResIndex);
} else if (aGroup->Get() == ModelAPI_ResultPart::group().c_str()) {
- //aNewBody = createPart(theFeature->data(), aResIndex);
- theFeature->execute(); // create the part result
+ std::shared_ptr<ModelAPI_ResultPart> aNewP = createPart(theFeature->data(), aResIndex);
+ theFeature->setResult(aNewP, aResIndex);
+ if (!aNewP->partDoc().get())
+ theFeature->execute(); // create the part result: it is better to restore the previous result if it is possible
break;
} else if (aGroup->Get() == ModelAPI_ResultConstruction::group().c_str()) {
theFeature->execute(); // construction shapes are needed for sketch solver