return aRedisplayed;
}
if (aAIS_Obj != aAISObj) {
+ erase(theObject, theUpdateViewer);
appendResultObject(theObject, aAIS_Obj);
}
aAISIO = aAIS_Obj->impl<Handle(AIS_InteractiveObject)>();
#ifdef CLEAR_OUTDATED_SELECTION_BEFORE_REDISPLAY
myWorkshop->selector()->deselectPresentation(aAISIO);
#endif
- aContext->Redisplay(aAISIO, false);
+ if (aContext->IsDisplayed(aAISIO))
+ aContext->Redisplay(aAISIO, false);
+ else
+ aContext->Display(aAISIO, false);
#ifdef TINSPECTOR
if (getCallBack()) getCallBack()->Redisplay(aAISIO);
if (!aVisible && aResult.get() && aResult->groupName() == ModelAPI_ResultBody::group()) {
ResultBodyPtr aCompsolidResult = std::dynamic_pointer_cast<ModelAPI_ResultBody>(aResult);
if (aCompsolidResult.get() != NULL) { // change colors for all sub-solids
- bool anAllSubsVisible = aCompsolidResult->numberOfSubs() > 0;
- for(int i = 0; i < aCompsolidResult->numberOfSubs() && anAllSubsVisible; i++) {
+ int aNumberOfSubs = aCompsolidResult->numberOfSubs();
+ bool anAllSubsVisible = aNumberOfSubs > 0;
+ for(int i = 0; i < aNumberOfSubs && anAllSubsVisible; i++) {
anAllSubsVisible = theDisplayer->isVisible(aCompsolidResult->subResult(i));
}
aVisible = anAllSubsVisible;